헥사고날 아키텍처(Ports & Adapters)
시작하기에 앞서 지난 글에서 DDD(Domain-Driven Design)는 업무 규칙을 도메인 모델 가까이에 두는 접근이라고 정리했다. 그런데 Order가 자신의 상태 전이를 잘 지키고 있어도, 그 옆에 ORM 호출과 HTTP 요청이 함께 들어오기 시작하면 다른 문제가 생긴다. 예를 들어 주문을 생성할 때 다음 코드들이 한 서비스에 모이기 쉽다. 주문
Jul 22, 20266 min read

Search for a command to run...
Articles tagged with #design-patterns
시작하기에 앞서 지난 글에서 DDD(Domain-Driven Design)는 업무 규칙을 도메인 모델 가까이에 두는 접근이라고 정리했다. 그런데 Order가 자신의 상태 전이를 잘 지키고 있어도, 그 옆에 ORM 호출과 HTTP 요청이 함께 들어오기 시작하면 다른 문제가 생긴다. 예를 들어 주문을 생성할 때 다음 코드들이 한 서비스에 모이기 쉽다. 주문

시작하기에 앞서 프로젝트가 작을 때는 테이블과 화면을 기준으로 코드를 나누어도 크게 불편하지 않다. UserService, OrderService, OrderRepository 정도로 시작해서 기능을 하나씩 붙여도 잘 동작하고 유지보수에도 문제가 없다. 문제는 할인 조건, 주문 상태, 환불 가능 기간처럼 중요 로직이 늘어날 때다. 로직이 컨트롤러와 서비스,