Controller
HTTP 요청과 응답 DTO를 다루되 주문 취소 가능 여부 같은 도메인 판단을 직접 계산하지 않는다.
입출력 경계컨트롤러는 요청을 받고, 애플리케이션 서비스는 흐름을 조율하며, 애그리게이트와 값 객체가 규칙을 지키고, 인프라는 리포지토리 인터페이스 뒤에서 데이터베이스 세부사항을 처리한다.
ControllerHTTP 요청과 응답 DTO를 다루되 주문 취소 가능 여부 같은 도메인 판단을 직접 계산하지 않는다.
입출력 경계UserService와 핸들러DTO를 도메인 객체로 바꾸고 리포지토리를 호출하며, 트랜잭션과 유스케이스 순서를 조율한다.
흐름 조정
Order.addOrderItem(), cancel() 같은
메서드에 불변 조건과 비즈니스 규칙을 캡슐화한다.
도메인 계층은 IUserRepository만 알고, TypeORM이나
Mongoose 구현체는 인프라 계층에 둔다.
주문, 재고, 결제처럼 용어와 모델이 달라지는 경계를 분리해 큰 시스템의 의미 충돌을 줄인다.
언어의 경계