목록분류 전체보기 (163)
거누의 개발노트
면접에서 꼭 질문하는 꼬리에 꼬리를 무는 객체지향에대해서 공부해 보려고 한다. 객체 지향 프로그래밍(Object Oriented Programming) 먼저 객체란 우리가 실생활에서 쓰는 모든 것을 객체라고 한다. 간단한 예로 선풍기, 노트북 주변에 있는 모든것들이 객체가 될 수 있다. 사물뿐만 아니라 동물, 사람도 마찬가지로 객체가 될 수 있는 것이다. 그래서 객체 지향 프로그래밍은 먼저 객체를 파악하고, 이 객체들이 무슨 역할을 하는지 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말한다. 결론, 필요한 데이터를 추상화 시켜서 상태와 행위를 가진 객체를 만들고 그 객체들간의 상호작용을 통해 로직을 구성하는 방법론인거다. 추상화 그럼 추상화시킨다는 말은 어떤 의미일까? 공통의 속성이나 기..
Git에 프로젝트를 올리면 apllication.properties 같이 데이터베이스 정보나 AWS정보가 같이 올라간다. .gitignore 파일을 이용하면 파일이 원격레포지토리에서 보이지 않게 된다. /.nb-gradle/ ### VS Code ### .vscode/ **/application.properties 먼저 이런식으로 작성하고 git push 해주면되는데 .gitignore파일에 등록하지 못하고 깃에 올려 버렸다면 잘 적용이 되지 않을 것이다. 그래서 역시 구글링을 하게 되는데... https://youngjinmo.github.io/2021/03/apply-new-gitignore/ Gitignore 새로 반영하기 이미 변경관리에 의해 관리되고 있는 파일이라면 이후에 gitignore에 추..
1. 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 2. 도메인 객체 생성 @Getter @NoArgsConstructor @Entity public class Comment extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String comment; @Column(nullable = false) private Long postId; public Comment(CommentDto commentDto){ this.comment =..
Spring 프레임워크로 간단한 웹 서버를 구현해 보고있다. 처음으로 JPA를 사용해봤고 정리해봤다. https://geonoo.tistory.com/147?category=1077864 [Spring] Java Persistence API - JPA Java Persistence API(JPA) JPA는 현재 자바 진영의 ORM 기술 표준으로, 인터페이스의 모음이다. 실제로 구현된것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다. Persistence(영속 geonoo.tistory.com ORM은 RDB의 테이블을 객체로 매핑하는 기술로 해당 기술을 이용한 대표적인 라이브러리가 JPA가 있다. 쉽게 설명해서 웹 서비스를 개발 할 때 SQL문을 필수적으로 작성해야 했다. 데이터베..
Java Persistence API(JPA) JPA는 현재 자바 진영의 ORM 기술 표준으로, 인터페이스의 모음이다. 실제로 구현된것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다. Persistence(영속성)은 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미한다. 간단하게,JPA는 JAVA 데이터베이스 관련한 API라고 생각하면 이해가 쉽다. 그런데 클래스랑 데이터베이스의 테이블이랑 어떻게 매핑을 할까? 여기서 ORM이라는 기술이 나온다. ORM(Object-Relational Mapping) 객체와 관계형데이터베이스의 테이블을 매핑한다는 뜻으로, 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이다. JPA를 사용하는 이유 ..
IDE : IntelliJ IDEA Spring Boot 환경 구성하기 1. new Project - Name : 프로젝트 이름을 적어준다. - Location : 프로젝트를 저장할 공간 설정 - Language : 프로그래밍 언어 설정 - Type : 빌드 도구 선택 - Group : - 프로젝트를 정의하는 고유한 식별자 정보, Java package name rules - Artifact : Jar의 이름 - JDK : 버전 확인/선택 - JAVA : 버전 확인/선택 빌드 도구? https://geonoo.tistory.com/145 [Spring] 빌드? 빌드도구? - gradle, maven 빌드? 프로그래머가 작성한 소스 코드를 실행할 수 있는 독립적인 형태(.war, .jar)로 변환하는 과정..
빌드? 프로그래머가 작성한 소스 코드를 실행할 수 있는 독립적인 형태(.war, .jar)로 변환하는 과정 및 결과를 말한다. 변환하는 과정에는 컴파일 과정도 포함이 된다. 예를 들어 개발자가 이클립스나 인텔리제이와 같은 IDE로 java코드를 작성하면 개발자는 '실행'버튼을 눌러서 코드의 결과물을 볼 수 있다. 그런데 개발자가 아닌 사용자가 코드의 결과물을 보려면? 사용자가 자바를 설치하고 IDE를 설치하고 해당 코드를 가져와서 실행을 눌러야 하는가? 아니다, 사용자는 어떠한 형태로든 빌드 된 결과물(.war, .jar 등)을 실행만 하면 된다. 그리고 이러한 빌드 결과물을 실제 서버에 업로드하는 것을 배포라고 한다. JAR? .jar 확장자 파일에는 Class와 같은 Java 리소스와 속성 파일, 라..
글을 쓰려면 언어를 알아야 한다. 프로그램을 작성하려면 프로그래밍 언어를 알아야 한다. 프로그래밍 언어의 발전 - 간략 설명 1970년대 시스템 프로그램을 만들 용도로, 어셈블러, 컴파일러, 텍스트 편집기 같은 프로그래머 도구와 운영체제까지 작성할 목적으로 사용할 언어들이 만들어졌다. 그 중 C언어가 가장 성공적이었다고 함 C언어는 1973년 벨 연구소에서 일하던 데니스 리치가 개발 아직도 폭넓게 이용하며, 가장인기있는 언어 중 하나이다. C언어는 개발 이후 미미하게 변경돼서 오늘날의 C언어 프로그램은 30~40년 전의 코드와 비슷하다. 1980년대 규모가 매우 큰 프로그램의 복잡성 관리를 위해 설계된 언어들이 개발되었다. 대표적으로 C++ 이 있다. C++은 비야네 스트롭스트룹?이 개발 했는데, 이 사..