ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • part 2. 아키텍처 개요
    책 정리/도메인 주도 개발 시작하기 2023. 7. 16. 00:53

    아키텍처 개요

    네 개의 영역

    • 표현 영역 : HTTP 요청을 응용영역이 필요로 하는 형식으로 변환해서 응용 영역에 전달하고 응용영역 응답을 HTTP응답으로 변환하여 전송
    • 응용영역 : 로직을 직접 수행하기 보다는 도메인 모델에 로직 수행을 위임한다.
    • 도메인영역 : 도메인 모델을 구현. 주문도메인은 ‘배송지 변경’, ‘결제 완료’, ‘주문 총액 계산’과 같은 핵심 로직을 도메인에서 구현
    • 인프라스트럭처 : 논리적인 개념을 표현하기보다는 실제 구현을 다룸

    계층구조 아키텍처

    • 의존관계에 주의하라
      • 테스트의 어려움
      • 기능 확장의 어려움

    DIP

    도메인 영역의 주요 구성요소

    • 도메인 모델의 인티티는 단순히 데이터를 담고 있는 데이터 구조라기보다는 데이터와 함께 기능을 제공하는 객체이다. 도메인 관점에서 기능을 구현하고 기능 구현을 캡슐화해서 데이터가 임의로 변경되는 것을 막는다.
    • 밸류는 불변으로 구현할 것을 권장하며, 엔티티의 밸류타입 데이터를 변경할 때는 객체자체를 완전히 교체한다는 것을 의미한다.
    • 애그리거트는 군집에 속한 객체를 관리하는 루트 엔티티를 갖는다. 애그리거트를 구현할때는 고려할 점이 많다. 애그리거트를 어떻게 구성하는냐에 따라 구현이 복잡해지긱도, 트랜잭션 범위가 달라지기도 한다.
    • 리포지터리는 애그리거트 단위로 도메인 객체를 저장하고 조회하는 기능을 정의한다.

    요청 처리 흐름

    인프라스트럭처 개요

    • 모조건 인프라스트럭처에 대한 의존을 없앨 필요는 없다.
    • @Transactional, @entity등 사용자가 편리하게 이용할 수 있는 기능은 응용영역에서 사용하거나 도메인에서 사용해도 무방하다.

    모듈 구성

    • 도메인 모듈은 도메인이 속한 애그리거트를 기준으로 다시 패키지를 구성한다.

    댓글

Designed by Tistory.