ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 도메인 주도 설계 (DDD)
    개발 관련/개념 2021. 4. 11. 10:30

     

     

    https://10consulting.com/2019/05/02/domain-driven-design-and-event-storming-workshop/

     

    하나의 도메인 = 세상의 어떤 것

    추상화 → 도메인을 표현한 모델 도출

     

    도메인 모델

    특정한 다이어그램이 전달하고자 한 아이디어, 전문가의 지식에서 선택적으로 추상화하여 엄격하게 조직화한 것

     

    다이어그램

    모델을 가시적으로 표현하고 전달하는 역할

     

    모델

    소프트웨어 전문 영역과 도메인 전문 영역이 교차하는 지점

    대상 도메인에 대한 내부적 표현, 설계 & 개발 프로세스 내내 반드시 필요

     

     

    소프트웨어 설계 = 집의 구조를 만드는 것, 큰 그림
    코드 설계 = 세부 사항에 관한 작업
    도메인 주도 설계 = 설계와 개발 방식 연관, 함께 작동 (좋은 설계 → 개발 가속화, 개발 피드백 → 설계 강화)

     

    ex. 비행 항로 제어 시스템 구축 프로젝트

    도메인 = 항공 교통 모니터링

    도메인 전문가 = 항공 교통 관제사

     

     

    "도메인 주도 설계의 핵심 원칙 = 모델 기반의 언어를 사용하는 것"

    팀이 사용하는 모든 의사소통의 형식에 항상 모델 기반 언어를 사용할 것!

    유비쿼터스 언어 = 도메인 기반 모델을 표현한 언어, 프로젝트 전반에 걸쳐 모든 사용자에 의해 항상 사용되어야 함

     

     

    도메인을 정확하게 반영하는 올바른 모델 → 개발자에게 전달 → 모델에 대한 피드백

     

     

    소프트웨어 시스템의 각 부분은 도메인 모델이 그대로 반영되도록 설계해야 함 → 매핑 명확

    구현, 모델 밀접하게 연관 → 객체지향 프로그래밍(OOP)

    객체지향 프로그래밍 = 객체의 클래스, 클래스들의 연관, 객체의 인스턴스, 서로 주고 받는 메시지를 지원

     

     

    기본적으로 DDD는,

    사용자들이 밀접하게 관계되어 있는 도메인 이슈에 집중해야 한다는 원칙을 둔다

     

     

    도메인

    이해하기 위해 혼신의 힘을 다해야만 하는 가장 중요한 부분

    전문가들에게는 개념적 형태로 표현해 내기 위해 힘써서 협동해야 할 대상

    힘 있고 유연한 소프트웨어를 만들 수 있도록 해주는 부분

     

     

    DDD = 팀 전체가 함께 하는 거대한 작업

     

    도메인 모델링

    1. 단순한 상태를 유지할 것 (모델러도 코드 작성)

    2. 구체적인 시나리오에 초점 맞추기 (추상적 생각 = 실제 사례에 연결)

    3. DDD를 모든 것에 적용하려고 하지 말 것 (컨텍스트 맵을 그리고, DDD를 어느 부분에 적용/적용하지 않을지 결정)

    4. 실험, 실수 많이 할 것

     

     

     

     

    출처: 도메인 주도 설계란 무엇인가? ISBN 9788966260126

     

     

    '개발 관련 > 개념' 카테고리의 다른 글

    디버깅  (0) 2021.05.09
    모듈  (0) 2021.05.09
    소프트웨어 개발 환경  (0) 2021.02.17
    점진적 개발 모델 Vs 반복적 개발 모델  (0) 2021.01.29
    소프트웨어 개발 수명 주기(SDLC) 모델  (0) 2020.09.30
Designed by Tistory.