일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 완주하지 못한 선수
- 가장 큰 수
- @Data
- Java
- 쿠버네티스
- @Getter
- 루씬 인 액션
- 코딩 테스트
- 전화번호 목록
- kubenetes
- 영속 자료구조
- @Setter
- @EnableScheduling
- 고차원 함수
- 다리를 지나는 트럭
- 검색 기능 확장
- 모던 자바 인 액션
- 크론 표현식
- 정렬
- K번째수
- 알고리즘
- 롬복 어노테이션
- @configuration
- 해시
- 기능개발
- 스택/큐
- 스프링 스케쥴러
- H-index
- 프로그래머스
- 커링
- Today
- Total
목록도메인 주도 설계 (25)
Today I Learned
MODULE은 관리 가능한 단위로 설계를 나누지만 MODULE이 너무 많아질지도 모른다. 모듈화가 반드시 설계에 균일함을 가져오는 것은 아니다. BOUNDED CONTEXT에 의한 엄격한 분리는 손상과 혼동을 방지하지만 그 자체로 시스템이 전체적으로 보기 쉬워지는 것은 아니다. 디스틸레이션은 CORE DOMAIN에 주의를 집중하고 다른 하위 도메인이 BOUNDED CONTEXT의 보조 역할을 맡도록 도와준다. 하지만 여전히 CORE DOMAIN과의 관계를 이해해야 한다. 큰 시스템에는 전체의 세부사항을 파고들지 않아도 각 부분이 담당하는 역할을 이해할 수 있는 지배적인 원칙이 필요하다. "대규모 구조"는 넓은 시각으로 시스템에 관해 토의하고 이해하게끔 돕는 언어다. 고수준 개념이나 규칙은 전체 시스템에 ..
디스틸레이션 : 혼합된 요소를 분리해서 값지고 유용한 형태로 본질을 뽑아내는 과정 도메인 모델에 대한 디스틸레이션 사항 팀원들이 시스템의 전체 설계와 해당 설계가 어떻게 함께 조화될지 파악하게끔 돕는다. UBIQUITOUS LANGUAGE의 일부가 될 수 있게 관리 가능한 크기의 핵심 모델을 식별해서 의사소통을 촉진한다. 리팩터링을 이끈다. 가장 중요한 모델 영역의 업무에 초점을 맞춘다. 아웃소싱, 기성 컴포넌트의 활용, 할당에 관한 의사결정을 돕는다. CORE DOMAIN (핵심 도메인) CORE DOMAIN은 시스템에서 가장 큰 가치가 더해지는 곳이며, 애플리케이션의 특유하고 중심적인 모델이 구성한다. 모델을 요약해서 CORE DOMAIN 찾고, 다수의 모델과 코드로부터 쉽게 구별할 수 있도록 해야한..
CONTEXT MAP (컨텍스트 맵) 서로 다른 CONTEXT를 연결하는 경우 CONTEXT는 서로에게 스며드는 경향이 있다. BOUNDED CONTEXT 간에 코드를 재사용하는 것은 피해야하며, 기능과 데이터는 번역 과정을 거쳐 통합해야 한다. 보통 컨텍스트의 경계는 팀 조직에 따라 정해지며, 물리적인 사무 공간 역시 컨텍스트 분리에 영향을 미칠 수 있다. 현재 진행중인 소프트웨어 모델과 설계의 개념적인 분할을 명확하게 바라볼 수 있도록 BOUNDED CONTEXT을 정의해야 한다. 경계가 모호한 모델을 발견했다고해서 전체적인 구조를 재구성하는 작업으로 이어져선 안된다. 분명한 CONTEXT MAP에 이르기까지는 명백하게 드러나는 모순만 변경한다. CONTEXT 경계에서의 테스트 테스트는 컨텍스트의 경..
모델의 근본적인 요구사항은 모델의 각 용어가 모호하지 않고 모순되는 규칙이 없으며 내적 일관성 유지하는 것이고 이를 단일화라 한다. 하지만 대규모 시스템의 도메인 모델을 완전하게 단일화한다는 것은 타당하지 않거나 비용 대비 효과적이지 않다. 단일 모델로 통합하고자 할때는 다음과 같은 위험요소를 고려해야 한다. 한번에 지나치게 많은 레거시를 교체해야 할 수 있다. 능력이 비해 조율에 드는 비용이 너무 클 수 있다. 특화된 요구사항을 완전하게 충족하지 못해 애플리케이션의 행위를 다른 곳에 둘 수 밖에 없을 수 있다. 모델이 지나치게 복잡해져 사용하기 어려워질 수 있다. 단일화된 모델을 유지하기 어렵다면, 모델 간의 경계와 관계를 표현해 줄 수단이 필요하다. BOUNDED CONTEXT(제한된 컨텍스트) 다수..