외부(Actor)
↓
[adapter] ← 어댑터 계층 (입출력 담당)
↓
[application] ← 애플리케이션 계층 (도메인 조립, 유스케이스)
↓
[domain] ← 도메인 계층 (비즈니스 규칙)
구조의 핵심:
의존성 방향이 항상 내부로 흐름
→ 외부(web, db)는 안쪽(domain)에 의존하지 않음
→ 내부(domain)는 외부 기술을 전혀 모름
비즈니스 로직은 domain에 집중
→ 기술, API, DB는 어댑터가 담당
domain 패키지 (도메인 계층)핵심 역할:
비즈니스 규칙, 엔티티, 값 객체(Value Object), 애그리게잇(Aggregate Root), 도메인 서비스 등
즉, “시스템이 해결하려는 문제 자체의 로직”이 존재하는 계층이야.
예시 구성:
domain
├── Order.java
├── OrderItem.java
└── Address.java
설명:
특징:
application 패키지 (애플리케이션 계층)