초기 설정 및 기본 사용법
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와 연동하는 메서드
'코드스테이츠_국비교육 > [Section3]' 카테고리의 다른 글
49.01_[Spring MVC] JPA 기반 데이터 액세스 계층_개요(미완)_22.11.01 (0) | 2022.11.02 |
---|---|
48.02_[Spring MVC] Spring Data JDBC_Pagination API_22.10.31 (0) | 2022.10.31 |
47.03_[Spring MVC] Spring Data JDBC_서비스 및 레포지토리 구현_22.10.28 (0) | 2022.10.30 |
47.02_[Spring MVC] Spring Data JDBC_도메인 엔티티 클래스 정의_22.10.28 (0) | 2022.10.30 |
47.01_[Spring MVC] Spring Data JDBC_JDBC 기반 설계(DDD)_22.10.28 (0) | 2022.10.30 |