Application
Use case orchestration
DTO를 command로 바꾸고 트랜잭션과 호출 순서를 조정한다.
유스케이스 흐름, 도메인 판단, 저장소 구현을 같은 코드에 섞으면 변경 이유가 불분명해진다.
Application
DTO를 command로 바꾸고 트랜잭션과 호출 순서를 조정한다.
Domain
상태 변경 가능 여부와 불변식을 스스로 판단한다.
Infrastructure
ORM과 DB 세부 구현은 port 뒤에 숨긴다.
| 변경 위치 | 책임 | 좋은 신호 | 나쁜 신호 |
|---|---|---|---|
| 주문 취소 | Aggregate method | 도메인 테스트만으로 검증 | Service 파일이 상태 직접 변경 |
| 저장/조회 | Repository adapter | port가 명령 행위 이름 사용 | TypeORM 타입이 domain까지 노출 |
| 트랜잭션 | Application service | use case 단위 commit/rollback | aggregate가 Nest provider 호출 |
경계 기준 도메인 규칙은 aggregate에, 저장소 세부사항은 adapter에, 유스케이스 흐름은 application service에 둔다.