ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DDD 도메인 주도 설계(Domain-Driven Design)란?
    아키텍처 2023. 6. 4. 22:41

    1. 도메인 주도 설계란?

     

    위키백과에 따르면,

    DDD (도메인 주도 설계)는 해당 도메인과 일치하도록 소프트웨어를 모델링하는 데 중점을 둔 소프트웨어 설계 접근 방식이다.

     

    무슨 말인지 이해가 안가니 하나 하나 알아보도록 하자.

     

    아래 내용들은 최범균 님의 '도메인 주도 개발 시작하기' 책을 참고한 내용들이 많음을 미리 일러둔다.

     

     

    1.1 도메인이란?

     

     책 구매시 온라인 서점을 통해 책 검색, 목차, 서평 확인, 구매 등 기능 사용을 한다.

     여기서 얘기하는 온라인 서점은

    소프트웨어로 해결하고자 하는 문제 영역, 도메인(domain)에 해당한다.

    한 도메인은 다시 하위 도메인으로 나누는 것이 가능하다.

     

    1.2 도메인 모델

     

     도메인 모델은 특정 도메인을 개념적으로 표현한 것

     

    1.3 도메인 모델 패턴

     

    Presentation

     사용자의 요청을 처리하고, 사용자에게 정보를 보여준다. 여기서 사용자는 소프트웨어를 사용하는 사람뿐만 아니라

    외부 시스템일 수도 있다.

     

    Application

     사용자가 요청한 기능을 실행한다.

     업무(비즈니스) 로직을 직접 구현하지 않으며, 도메인 계층을 조합해서 기능을 실행한다.

     

    Domain

     시스템이 제공할 도메인 규칙을 구현한다.

     

    Infrastructure

     데이트베이스나 메시징 시스템과 같은 외부 시스템과의 연동을 처리한다.

     

    1.4 엔티티와 밸류

     

     엔티티

     고유의 식별자를 갖는 객체로 자신의 라이프 사이클을 갖는다.

     주문, 회원, 상품과 같이 도메인의 고유한 개념을 표현한다. 

     도메인 모델의 데이터를 포함하며, 해당 데이터와 관련된 기능을 함께 제공한다.

     

     밸류

     고유 식별자를 갖지 않는 객체로 주요 개념적으로 하나의 값을 표현할 때

    사용된다. 배송지 주소를 표현하기 위한 주소나 구매 금액을 위한 금액과 같은 타입이 밸류 타입이다.

    엔티티의 속성으로 사용할 뿐만 아니라 다른 밸류 타입의 속성으로도 사용할 수 있다.

Designed by Tistory.