13
분석 패턴의 적용

11장. 분석 패턴의 적용

  • Upload
    kidoki

  • View
    123

  • Download
    0

Embed Size (px)

DESCRIPTION

Domain Driven Design

Citation preview

Page 1: 11장. 분석 패턴의 적용

분석 패턴의 적용

박 기 덕

Page 2: 11장. 분석 패턴의 적용

목차

1. 분석 패턴 이란?

2. 예제 1 - 계좌의 이익 수익

3. 분석패턴 1 - 회계 모델

4. 리팩토링 1 - 계좌의 이익 수익

5. 분석패턴 2 - 기입 규칙

6. 예제 2 - 야간 배치 프로그램

7. 리팩토링 2 - 야간 배치 프로그램

8. 분석 패턴 정의

Page 3: 11장. 분석 패턴의 적용

분석 패턴 이란?

● 과거에 경험했던 시행 착오중의 일부가 패턴 형식으로 기록되고 공유되어 축적된 경험을 다른 사람들이 활용할 수 있도록 제시

● 업무 모델링 과정에서 발견되는 공통적인 구조를 표현하는 개념의 집합

● 기술적인 해법은 아니며, 유용한 지침서

Page 4: 11장. 분석 패턴의 적용

예제 1 - 계좌의 이자 수익

● Lone과 Interest-Bearing asset을 관리하는 애플리케이션. 발생한 Interest와 Fee를 계산하고 차용인이 변제한 Payment를 추적

● 야간 배치 프로세스는 계산 결과를 레거시 회계 시스템으로 전달하며, 이때 각 금액을 어느 Ledger에 기록해야 하는지도 함께 전달

Page 5: 11장. 분석 패턴의 적용

분석 패턴 1 - 회계 모델

● 회계의 기본 원리는 보존● " 모든 대변에는 차변이 존재한다."

Page 6: 11장. 분석 패턴의 적용

리팩토링 1 - 계좌의 이자 수익

● Transaction 이 분석패턴과 현재의 프로젝트와 동일한 개념인가??

● 새로운 보편언어 Accrual 발견 !!

● Account 객체의 사용 여부??

● Account에서 이자 발생, 상환, 잔액을 모두 확인 할 수 있어야 함 !!

Page 7: 11장. 분석 패턴의 적용

리팩토링 1을 통해 변경된 사항

● 도메인 검토 후 Payment와 Accrual이 미묘하게 다른 책임 이라는 사실 파악

● 두 가지 모두 중요한 개념을 표현하므로 Entry를 상속하는 하위 클래스 추가

● Fee와 Interest에 의해 발생한 Entry의 경우 개념상으로 행위의 차이가 없으므로 적절하게 Account에 추가

● 수수료 Entry와 이자 Entry의 통합을 위한 추상화 포기(하위 객체 생성)

Page 8: 11장. 분석 패턴의 적용

리팩토링 1 - 계좌의 이자 수익

Page 9: 11장. 분석 패턴의 적용

분석 패턴 2 - 기입 규칙

● 한 계정에서 수입을 추적하는 동안 다른 계정에서 수입에 부과되는 예상 세금을 추적할때, 자동으로 세금을 계산 하여야 한다면 세금 계정과 수입 계정이 강하게 결합 될 수 밖에 없으므로, 새로운 객체를 추가해 규칙을 명확하게 만든다.

Page 10: 11장. 분석 패턴의 적용

분석 패턴 2 - 기입 규칙

● 의존성 설계 시 가장 까다로운 부분인 갱신의 시기와 제어 방식

○ "적극적인 실행" 방식은 Account에 Entry가 삽입될 때마다 곧바로 Posting Rule을 실행하므로 모든 갱신 작업이 즉시 발생 (가장 명확 하지만 비효율적)

○ "Account 기반 실행" 방식은 특정 시점에 Account로 메시지가 전달되고, Posting Rule이 실행되어 마지막으로 실행된 후에 삽임된 모든 Entry 처리 (처리 시기 연기 가능)

○ "Posting-Rule 기반 실행" 방식은 Posting Rule을 실행하는 외부 에이전트에서 의해 시작 (최종 실행 시점 이후에 입력 계정에 추가된 모든 Entry를 찾아야 하는 책임을 짐)

Page 11: 11장. 분석 패턴의 적용

예제 2 - 야간 배치 프로그램

● Posting Rule이 기입 될 원장명(거래 내역을 적은 명세서)을 알고 있다면 Method가 필요 없음

● 분석 패턴에서는 Account와 Posting Rule이 직접 연결 되지만 현재 프로젝트에서는 Account 정보를 알고 있는 Asset와 연결

● Posting-Rule 기반 실행 방식 사용

● Posting Rule은 Account의 속성을 토대로 원장을 선택

Page 12: 11장. 분석 패턴의 적용

리팩토링 2 - 야간 배치 프로그램

Page 13: 11장. 분석 패턴의 적용

분석 패턴 정의

● 운 좋게 적용 가능한 분석 패턴을 찾아도 현재의 특정 요구사항에 완벽하게 들어 맞는 경우는 거의 없다.

● 하지만 도메인을 파악하는 과정의 훌륭한 길잡이 역활을 수행하며, 깔끔하게 추상화된 어휘집을 제공

● 분석 패턴을 적용 시 외견상의 형태는 변경해도 무방하나 기본적인 개념은 변경하지 말아야 한다.○ 패턴에는 문제의 발생을 미연에 방지할 수 있는 지식을 포함 하고 있기 때문

○ 널리 이해되거나 적어도 잘 설명된 용어를 포함시킴으로 보편언어의 품질을 향상