1. Sample 도메인 작성의 필요성
일종의 기준을 잡기위한 용도
컨벤션의 기준이 되고
새로운 도메인을 작성할때 참고하는 용도
2. Sample Domain 패키지,클래스 작성
헥사고날 아키텍처 기반의 패키지 구조로 패키지 및 Sample 클래스를 작성
우선, 클래스 껍데기만 설계
아래와 같이 작성함

각 패키지 별로
- adapter/inbound.web/
- dto/: HTTP 요청/응답 DTO
- SampleInboundWebAdapter: REST API 컨트롤러
- adapter/outbound.persistence/
- jpa/
- SampleEntity: JPA 엔티티
- SampleRepository: Spring Data JPA 인터페이스
- SamplePersistenceAdapter: 영속성 포트 구현체
- jpa/
- application/port/
- port/
- inbound/SampleUseCase: 유스케이스 인터페이스
- outbound/SamplePersistencePort: 영속성 포트 인터페이스
- usecase/
- SampleUseCaseImpl: 유스케이스 구현체 (비즈니스 로직)
- port/
- model/
- Sample: 도메인 모델
- SampleMapper: 객체 변환 유틸리티
이렇게 설계하고 API 호출의 흐름은 다름과 같이 하려고 한다.
[클라이언트]
↓ HTTP 요청
1. SampleInboundWebAdapter
- SampleRequest 수신
↓ useCase 호출
2. SampleUseCaseImpl
- Mapper: Request → Domain Model
- 비즈니스 로직 실행
- Domain Model 처리
↓ persistencePort 호출
3. SamplePersistenceAdapter
- Mapper: Domain Model → Entity
- repository 호출
↓ JPA 쿼리 실행
4. SampleRepository
- DB Select/Insert/Update
↓ 쿼리 결과 반환
5. SamplePersistenceAdapter
- Mapper: Entity → Domain Model
↓ persistencePort 응답
6. SampleUseCaseImpl
- 비즈니스 로직 완료
- Mapper: Domain Model → Response
↓ useCase 응답
7. SampleInboundWebAdapter
- SampleResponse 응답
↓ HTTP 응답
[클라이언트]
'개발일지' 카테고리의 다른 글
| [개발일지_safeHome] 6.JPA Audit 설정 추가 (0) | 2025.12.15 |
|---|---|
| [개발일지_safeHome] 5. sample 도메인 개발 (모델, 엔티티) (0) | 2025.12.14 |
| [개발일지_safeHome] 4. sample 도메인 추가(로컬 DB 세팅, write/read 세팅, sample 테이블 추가) (0) | 2025.12.10 |
| [개발일지_safeHome] 2. 백엔드 프로젝트 생성 (0) | 2025.12.02 |
| [개발일지_safeHome] 1. safeHome 토이 프로젝트 시작 (0) | 2025.12.02 |