반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 해시
- 스프링 스케쥴러
- 검색 기능 확장
- 크론 표현식
- 다리를 지나는 트럭
- 영속 자료구조
- 알고리즘
- 모던 자바 인 액션
- 롬복 어노테이션
- @Setter
- 코딩 테스트
- 기능개발
- @EnableScheduling
- @Data
- 루씬 인 액션
- 가장 큰 수
- H-index
- 스택/큐
- @Getter
- 정렬
- 프로그래머스
- @configuration
- Java
- kubenetes
- 커링
- 고차원 함수
- K번째수
- 완주하지 못한 선수
- 쿠버네티스
- 전화번호 목록
Archives
- Today
- Total
Today I Learned
[도메인 주도 설계] 11. 분석 패턴의 적용 본문
728x90
- 분석 패턴은 풍부한 표현력과 쉬운 구현, 난해하고 미묘한 문제를 처리하는 모델을 제공한다.
- 예제 - 계좌의 이자 수익
- 초기 설계는 제 구실을 하긴 하지만, 사용하기 불편하고 변경이 까다로우며 정확한 의미를 전달하지 못한다.
- 분석 패턴에서의 회계모델
- 회계의 기본 원리는 보존(conservation)이다. 모든 거래는 하나의 account에서 다른 account로 이동할 뿐이다.
- 분석 패턴을 적용해서 account를 반영한 새로운 모델을 만들 수 있다.
- 초기 설계는 제 구실을 하긴 하지만, 사용하기 불편하고 변경이 까다로우며 정확한 의미를 전달하지 못한다.
- 예제 - 야간 배치 프로그램에 대한 통찰력
- 기입규칙
- 새로운 Entry가 입력 계정에 추가되면 기입 규칙이 실행된다. 기입 규칙은 계산 Method을 사용해서 새로운 Entry를 생성하고 이를 Account에 삽입한다.
- 새로운 Entry가 입력 계정에 추가되면 기입 규칙이 실행된다. 기입 규칙은 계산 Method을 사용해서 새로운 Entry를 생성하고 이를 Account에 삽입한다.
- 기입규칙 실행
- 의존성을 설계할 때 까다로운 부분 중 하나는 갱신의 시기와 제어 방식이다.
- 마틴 파울러는 다음의 세 가지 선택안을 논한다.
- "적극적인 실행" 방식은 가장 명확하지만 비효율적인 방식이다. Account에 Entry가 삽입될 때마다 Posting Rule을 실행하기 때문에 모든 갱신 작업이 즉시 이뤄진다.
- "Account 기반 실행" 방식은 처리 시기를 연기할 수 있다. 특정 시점에 Account로 메시지가 전달되고, Postring Rule이 실행되어 마지막으로 실행된 후에 삽입된 모든 Entry를 처리한다.
- "Posting-Rule 기반 실행" 방식은 Posting Rule을 실행하는 외부 에이전트에 의해 시작된다. Posting Rule은 최종 실행 시점 이후로 입력 계정에 추가된 모든 Entry를 찾아야 하는 책임이 있다.
- 계산 방식과 배치가 강하게 결합되지 않도록 하기위해 Posting-Rule 기반 실행 방식을 사용하고,
시스템에 맞춰 Posting Rule을 선택하는 작업에 Asset을 포함시킨 모델을 만들 수 있었다.
- 기입규칙
- 분석 패턴은 참고할 수 있는 지식이다
- 분석 패턴이 현재의 특정 요구사항에 딱 들어 맞는 경우는 거의 없지만, 도메인을 파악하는 길잡이 역할을 하며 깔끔하게 추상화된 어휘집을 제공한다.
- 패턴의 외견상의 형태는 변경해도 무방하지만 패턴이 의미하는 기본적인 개념만큼은 손대지 말아야 한다.
패턴에는 문제의 발생을 미연에 방지할 수 있은 지식이 포함되어 있으며, 널리 이해되거나 잘 설명된 용어를 포함시킴으로써 UBIQUTOUS LANGUAGE의 품질을 높일 수 있다.
728x90
'도메인 주도 설계' 카테고리의 다른 글
[도메인 주도 설계] 14. 모델의 무결성 유지 (1) (0) | 2022.03.25 |
---|---|
[도메인 주도 설계] 12. 모델과 디자인 패턴의 연결 (0) | 2022.03.11 |
[도메인 주도 설계] 10. 유연한 설계 (3) (0) | 2022.02.25 |
[도메인 주도 설계] 10. 유연한 설계 (2) (0) | 2022.02.17 |
[도메인 주도 설계] 10. 유연한 설계 (1) (0) | 2022.02.11 |
Comments