Today I Learned

[도메인 주도 설계] 11. 분석 패턴의 적용 본문

도메인 주도 설계

[도메인 주도 설계] 11. 분석 패턴의 적용

하이라이터 2022. 3. 4. 02:29
728x90
      • 분석 패턴은 풍부한 표현력과 쉬운 구현, 난해하고 미묘한 문제를 처리하는 모델을 제공한다.

      • 예제 - 계좌의 이자 수익
        • 초기 설계는 제 구실을 하긴 하지만, 사용하기 불편하고 변경이 까다로우며 정확한 의미를 전달하지 못한다.
        • 분석 패턴에서의 회계모델
          • 회계의 기본 원리는 보존(conservation)이다. 모든 거래는 하나의 account에서 다른 account로 이동할 뿐이다.
          • 분석 패턴을 적용해서 account를 반영한 새로운 모델을 만들 수 있다.
      • 예제 - 야간 배치 프로그램에 대한 통찰력
        • 기입규칙
          • 새로운 Entry가 입력 계정에 추가되면 기입 규칙이 실행된다. 기입 규칙은 계산 Method을 사용해서 새로운 Entry를 생성하고 이를 Account에 삽입한다.
        • 기입규칙 실행
          • 의존성을 설계할 때 까다로운 부분 중 하나는 갱신의 시기와 제어 방식이다.
          • 마틴 파울러는 다음의 세 가지 선택안을 논한다.
            1. "적극적인 실행" 방식은 가장 명확하지만 비효율적인 방식이다. Account에 Entry가 삽입될 때마다 Posting Rule을 실행하기 때문에 모든 갱신 작업이 즉시 이뤄진다.
            2. "Account 기반 실행" 방식은 처리 시기를 연기할 수 있다. 특정 시점에 Account로 메시지가 전달되고, Postring Rule이 실행되어 마지막으로 실행된 후에 삽입된 모든 Entry를 처리한다.
            3. "Posting-Rule 기반 실행" 방식은 Posting Rule을 실행하는 외부 에이전트에 의해 시작된다. Posting Rule은 최종 실행 시점 이후로 입력 계정에 추가된 모든 Entry를 찾아야 하는 책임이 있다.
          • 계산 방식과 배치가 강하게 결합되지 않도록 하기위해 Posting-Rule 기반 실행 방식을 사용하고,
            시스템에 맞춰 Posting Rule을 선택하는 작업에 Asset을 포함시킨 모델을 만들 수 있었다.
      • 분석 패턴은 참고할 수 있는 지식이다
        • 분석 패턴이 현재의 특정 요구사항에 딱 들어 맞는 경우는 거의 없지만, 도메인을 파악하는 길잡이 역할을 하며 깔끔하게 추상화된 어휘집을 제공한다.
        • 패턴의 외견상의 형태는 변경해도 무방하지만 패턴이 의미하는 기본적인 개념만큼은 손대지 말아야 한다.
          패턴에는 문제의 발생을 미연에 방지할 수 있은 지식이 포함되어 있으며, 널리 이해되거나 잘 설명된 용어를 포함시킴으로써 UBIQUTOUS LANGUAGE의 품질을 높일 수 있다.
           
728x90
Comments