ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 도메인 주도 설계 - 1. 지식 탐구
    디자인 패턴 2024. 4. 2. 23:33

    본 내용은 에릭 에반스의 도메인 주도 설계를 공부하면서 제 나름대로 이해하기 쉽게 정리한 글입니다.

    이해가 어려우시다면 댓글 부탁드립니다.


    지식탐구

    지식 탐구는 혼자서 하는 활동이 아니다. 개발자가 도메인 전문가와 같이 협업하여(질문과 설명이 오가며) 도메인에 대한 지식을 이해하고 어떻게 동작하는지 알아가는 것이다. 이를 기반으로 다이어그램같은 도구로 초기 모델을 작성할 수 있다.

     

    지식 탐구를 진행하면 다음과 같은 활동들이 거치게 된다.

    1. 모델과 구현의 연계: 도메인 모델과 구현이 본질적으로 연결된다.
    2. 모델을 기반으로 하는 언어 정제: 모델을 기반으로 용어들이 통일되고 용어들로 문장을 구성할 수 있게 된다. 별도의 해석 없이 문장을 명확히 이해할 수 있게 된다.
    3. 풍부한 지식이 담긴 모델 개발: 모델은 단순히 데이터 스키마가 아닌 복잡한 문제를 해결하는데 필요한 풍부한 지식이 담긴다.
    4. 모델의 정제: 모델이 점차 완전해지며 중요한 개념이 더해진다. 쓸모없는 개념들은 제거된다.
    5. 브레인 스토밍과 실험: 풍부한 지식이 담긴 모델을 발견하고 정제하기 위해 브레인스토밍을 진행하면서 수백가지 모델들이 실험/시도하고 평가된다. 

    지속적인 학습 

    소프트웨어를 작성하기 시작할 떄는 충분히 도메인에 대해 알지 못한 상태에서 시작한다. 그래서 지속적인 학습으로 의식적으로 지식을 함양해야 한다.

    풍부한 지식이 담긴 설계

    도메인에 관련된 엔티티만큼 실제 업무 활동과 규칙도 중요한데, 지식탐구는 이러한 부분에 대해 통찰력을 준다. 지식탐구는 규칙을 명확하게 하고, 구체화 하며, 고려할 범위가 아닌 것들은 배제하게 된다.

    심층 모델

    유용한 모델은 겉으로 드러나 있는 경우가 거의 없다. 지식 탐구를 통해 도메인과 애플리케이션의 요구사항을 이해하게 되면서 처음에 중요하다고 생각했던 피상적인 요소를 버리거나 관점을 바꾼다. 문제의 핵심을 관통하는 심층적인 모델이 서서히 나타나기 시작한다.

     

     

    지식 탐구는 팀 내 지식을 가치있는 모델로 만든다. 지식탐구는 탐험과도 같아서 어디서 끝나게 될지 알지 못한다.

    댓글