코드스테이츠_국비교육/[Section3]

48.01_[Spring MVC] Spring Data JDBC_정리_22.10.31

생각없이 해도 생각보다 좋다. 2022. 10. 31. 22:17

초기 설정 및 기본 사용법

1. 의존 라이브러리 추가

-Spring Boot Starter Data JDBC

-H2 (In-memory DB)

 

2. H2 사용 설정

-application.yml 파일 설정

-동작 유무 확인; 애플리케이션 실행 로그

-동작 유무 확인; H2 DB 접속

 

3. 패키지 구조 설정 및 클래스 생성

-Controller : 서비스 연동, mapper 사용

-Dto : getter, setter, id 필드 필요 유무 파악, Validation

-Entity : getter, setter, id 필드 필요 유무 파악

-Mapper : @Mapper 및 spring 설정, 추상 메서드 생성

-Service : controller 대응 메서드 설정

 

4. 클래스 수정 및 추가

-Entity(수정) : @Id 설정

-Repository(추가) : 인터페이스, CrudRepository 상속

-Service(수정) : repository 필드 및 생성자 선언, Crud 작업 수행(repository 메서드 활용)

 

5. H2 DB table 생성

-schema.sql 파일 생성 및 코드 작성 : 매핑되는 테이블 명, id 명 주의

-application.yml 파일 설정

 

DDD(도메인 주도 설계) 및 세부 기능 구현

1. 애플리케이션 DDD

-애플리케이션 도메인 분류

-애플리케이션 기능 애그리거트 구분 및 하위 도메인 설정

-애그리거트 루트 설정

-애그리거트 루트, 하위 도메인, 애그리거트 간 관계 디자인

 

2. 애그리거트 객체 구현

-애그리거트 객체 생성 및 매핑

: 애그리거트 루트 객체, 하위 도메인 객체

: 엔티티 객체 생성 + @Id 혹은 @Table 의 응용

: 매핑 규칙 주의(루트-루트, 루트-엔티티)

-Entity & Entity 매핑 : 객체 참조(collection 참조형 활용)

-Root & Root 매핑 : Id 참조
-애그리거트 내 매핑

: entity-entity 매핑, entity-root 매핑(객체 참조)

-애그리거트 간 매핑 (1 : N)

: root-root 매핑(Id 참조)

: AggregateReference 활용(idColumn, keyColumn 지정)

-애그리거트 간 매핑 (N : N)

: root-root 매핑(Id 참조)

: 중간 매개체 엔티티 생성(1:N:1)

: 애그리거트 내 매핑 + 애그리거트 간 매핑

: @MappedCollection 이용 (A : B = C)

 

3. Entity 객체 정보(기능) 구현

-해당 entity 고유 정보 생성 및 구현 : 필드 생성 및 내부 클래스 활용

 

최종 사용법

0. 기본 설정

-의존 라이브러리 추가

-패키지 구조 설정

-Controller, Dto, Entity, Mapper, Serivice 생성

-DB 설정 및 Schema.sql 작성

 

1. Entity 객체

-mapping 설정 ( Class - DB table )

-mapping 설정 ( Entity - Entity )

-고유 기능 설정 ( 필드 및 내부 클래스 )

 

2. Repository 인터페이스

-CrudRepository 상속

-추가 고유 기능 설정 : 쿼리 메서드 혹은 @Query 사용

 

3. Service 구현

-Repository : DI, repository 메서드활용

-DB 확인 메서드 : DB에 데이터가 있는지 확인하는 메서드 생성

-CRUD 작업 메서드 : DB와 연동하는 메서드