정의 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크 JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원 모든 JDBC 코드 및 매개 변수의 중복작업을 제거 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있는 장점 특징 장점 : 복잡한 쿼리나 다이나믹한 쿼리에 강하다. 프로그램 코드와 SQL 쿼리의 분리로 코드의 간결성 및 유지보수성 향상 resultType, resultClass등 Vo를 사용하지 않고 조회결과를 사용자 정의 DTO, MAP 등으로 맵핑하여 사용 빠른 개발이 가능하여 생산성이 향상 단점 : 비슷한 쿼리는 남발하게 된다.
정의 Spring IoC 컨테이너가 관리하는 자바 객체 빈 X : 우리가 new 연산자로 어떤 객체를 생성했을 때 객체 빈 O : ApplicationContext.getBean()으로 얻어질 수 있는 객체 Spring에서의 빈은 ApplicationContext가 알고있는 객체 ApplicationContext가 만들어서 그 안에 담고있는 객체 빈을 만드는 방법 ① Component Scanning @ComponentScan 어노테이션과 @Component 어노테이션을 사용해서 빈을 등록하도록 하는 방법 @ComponentScan : 어노테이션은 어느 지점부터 컴포넌트를 찾으라고 알려주는 역할 @Component : 실제로 찾아서 빈으로 등록할 클래스 라이프 사이클 콜백 : Spring IoC 컨테이너..
ORM(Object Relational Mapping) 어플리케이션의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 의미 Java의 데이터 클래스와 관계형 데이터베이스의 테이블을 매핑 객체지향 프로그래밍과 관계형 데이터베이스의 차이로 발생하는 제약사항을 해결해주는 역할을 수행 대표적으로 JPA,Hibernate 등이 있음 (Persistent API) ORM의 장점 SQL 쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있음 개발자가 보다 비즈니스 로직에 집중할 수 있음 재사용 및 유지보수가 편리 ORM은 독립적으로 작성되어 있어 재사용이 가능 매핑정보를 명확하게 설계하기 떄문에 따로 데이터베이스를 볼 필요가 없음 DBMS에 대한 종속성이 줄어듬 DBMS를 교체하는 작업을 비교적 적은 리..
Entity(Domain) 데이터베이스에 쓰일 컬럼과 여러 엔티티 간의 연관관계를 정의 데이터베이스의 테이블을 하나의 엔티티로 생각해도 무방함 실제 데이터베이스의 테이블과 1:1로 매핑됨 이 클래스의 필드는 각 테이블 내부의 컬럼(Columnn)을 의미 DAO(Data Access Object) 데이터베이스에 접근하는 객체를 의미 Service가 DB에 연결할 수 있게 해주는 역할 DB를 사용하여 데이터를 조회하거나 조작하는 기능을 전담 DTO(Data Transfer Object) DTO는 VO(Value Object)로 불리기도 하며, 계층간 데이터 교환을 위한 객체를 의미 VO의 경우 Read Only의 개념을 가지고 있음 Repository Entity에 의해 생성된 데이터베이스에 접근하는 메소드..
Lombok 반복되는 메소드를 Annotation을 사용하여 자동으로 작성해주는 라이브러리 일반적으로 VO,DTO,Model,Entity 등의 데이터 클래스에서 주로 사용됨 대표적으로 많이 사용되는 Annotation @Getter 해당 클래스에 선언되어 있는 필드를 기반으로 'getField','setField' 와 같은 식으로 자동으로 메소드를 생성 @Setter 해당 클래스에 선언되어 있는 필드를 기반으로 'getField','setField' 와 같은 식으로 자동으로 메소드를 생성 @NoArgConstructor 파라미터가 없는 생성자를 생성 @AllArgConstructor 모든 필드값을 파라미터로 갖는 생성자를 생성 @RequiredArgsConstructor 필드값 중 final 이나 @No..