Bounded Context
(Domain Driven Design)
아꿈사
Cecil
도메인 모델의 근본적 요구사항
비즈니스 규칙의 무결성을 제공
규칙은 모호하지 않고, 모순이 없어야 함
이상적인 세계라면?
전체 도메인 내에 단일화된 모델이 존재
(ex: 회원)
회원
결제
카탈로그
배송
주문
하지만, 현실 세계에서는..
배송지결제 수단
관심 항목 고객 등급
단일화된 모델을 유지하는것은 효과적이지 못하거나, 불가능
복잡함
그렇다면..
단일화 할 것과, 그렇지 않은 것의
명확한 구분이 필요
바운디드 컨텍스트
(Bounded Context)
The delimited applicability of a particular model.
BOUNDING CONTEXTS gives team members a
clear and shared understanding of what has to be
consistent and what can develop independently.
DDD community
(http://dddcommunity.org)
즉, 단일 모델을 각각의 컨텍스트로 분리
출처: http://martinfowler.com/bliki/BoundedContext.html
도메인, 서브 도메인,
바운디드 컨텍스트
도메인, 서브 도메인
소프트웨어가 해결해야할 문제 영역
도메인은 서브 도메인으로 나누어짐
(세부 업무 영역 or 조직의 구성..)
바운디드 컨텍스트
도메인의 문제를 해결(솔루션 영역)하기 위한
도메인 모델이 존재하는 명시적인 경계
바운디드 컨텍스트와 서브 도메인은
1:1 관계가 되는 것이 이상적.
But, 그렇지 않은 경우가 많음.
추가적으로, 팀과 컨텍스트의 관계 역시 1:1이 이상적
모델을 명확히 했으니, 다음은??
컨텍스트 간 연동을 위한
명확한 정의가 필요
컨텍스트 맵
(Context Map)
컨텍스트 간 상호 교류해야 하는 목록 및 방법을 명시
컨텍스트간의 관계(1/3)
•공유 커널(shared kernel)
•밀접하게 연관된 기능을 개발하는 경우 모델의 일부분을 공유
•공유하는 모델의 부분 집합을 명시하고, 이 부분은 협의 없이 변경 금지
•고객/공급자(Customer/supplier Development)
•한 시스템이 다른 시스템으로 데이터를 제공하는 경우
•공급자 코드 테스트를 위한 자동화 테스트를 만들고, CI 를 수행
컨텍스트간의 관계(2/3)
•부패 방지 계층(Anticorruption Layer)
•고객/공급자 관계에서 의사 소통이 적절하지 않는 경우
•고객 측에서 자신의 도메인 모델에 맞게 변환하는 계층을 도입
•오픈 호스트 서비스(Open Host Service)
•다수의 고객에게 서비스를 제공해야 하는 경우
•프로토콜을 정의하고, 단순하고 일관되게 유지
컨텍스트간의 관계(3/3)
•발행된 언어(Published Language)
•둘 사이의 오가는 데이터가 번역 자체가 복잡할 경우
•적절히 문서화된 공유 언어를 사용하여, 각자가 독립적으로 해석
•분리된 방법(Separate Ways)
•통합에 높은 비용이 들고, 기능 집합 사이에 유의미한 관계가 없을 경우
•완전히 분리하여 각자의 기능을 개발
모델의 무결성 유지를 위한 패턴
References
•Eric Evans, Domain Driven Design(이대엽 옮김).
경기도 파주시 문발로 위키북스, 2011.
•Vaughn Vernon, IMPLEMENTING DOMAIN-
DRIVEN DESIGN(윤창석,황예진 옮김). 서울시 양천구
에이콘출판주식회사, 2016
•최범균. DDD START! 도메인 주도 설계 구현과 핵심
개념 익히기. 서울시 마포구 (주)지앤선, 2016.

More Related Content

PPTX
DDD Start Ch#3
PDF
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
PPT
Code igniter 20160119
PPTX
Enterprise
PDF
Domain-Driven-Design 정복기 2탄
PDF
Domain-Driven-Design 정복기 1탄
PPTX
pkcserver
PPTX
1. 웹 어플리케이션 아키텍처
DDD Start Ch#3
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
Code igniter 20160119
Enterprise
Domain-Driven-Design 정복기 2탄
Domain-Driven-Design 정복기 1탄
pkcserver
1. 웹 어플리케이션 아키텍처

Viewers also liked (20)

PPTX
실무로 배우는 시스템 성능 최적화 Ch8
PDF
HTTP 완벽가이드 21장
PDF
7가지 동시성 모델 4장
PDF
DDD Repository
PDF
7가지 동시성 모델 - 데이터 병렬성
PDF
함수적 사고 2장
PDF
PPTX
실무로 배우는 시스템 성능 최적화 Ch6
PPTX
실무로 배우는 시스템 성능 최적화 Ch7
PDF
HTTP 완벽가이드 16장
PDF
Elastic search 클러스터관리
PDF
하둡완벽가이드 Ch9
PDF
Java 초보자를 위한 hadoop 설정
PPTX
실무로배우는시스템성능최적화 Ch1
PDF
HTTP 완벽가이드 6장.
PDF
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
PDF
HTTP 완벽가이드 1장.
PPTX
Logstash, ElasticSearch, Kibana
PDF
Pair RDD - Spark
PDF
Learning spark ch1-2
실무로 배우는 시스템 성능 최적화 Ch8
HTTP 완벽가이드 21장
7가지 동시성 모델 4장
DDD Repository
7가지 동시성 모델 - 데이터 병렬성
함수적 사고 2장
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch7
HTTP 완벽가이드 16장
Elastic search 클러스터관리
하둡완벽가이드 Ch9
Java 초보자를 위한 hadoop 설정
실무로배우는시스템성능최적화 Ch1
HTTP 완벽가이드 6장.
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
HTTP 완벽가이드 1장.
Logstash, ElasticSearch, Kibana
Pair RDD - Spark
Learning spark ch1-2
Ad

Similar to Bounded Context (20)

PPTX
Umc.Core Frameworks
PPTX
[스프링 스터디 1일차] 템플릿
PPTX
Cloud migration pattern using microservices
PDF
Developer`s Web Standard
PDF
14 strategy design
PPTX
MSA 세미나.pptx
PDF
[아꿈사/110903] 도메인주도설계 4장
PDF
마스터 데이터 도메인을 위한 데이터 모델링 마스터
PPTX
오픈소스 소프트웨어 성능 최적화 보고서 6장
PDF
01.표준프레임워크개요
PPTX
Event Storming and Implementation Workshop
PPTX
대규모 구조
PDF
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
PPT
Uml 세미나
PDF
MSA_기초자료.pdf
PPT
웹표준의 이해
PDF
Domain driven design ch3
PDF
꿀밋업1탄_왜_마이크로서비스인가
PPTX
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
PDF
마이크로서비스 아키텍처의 이해 - 부산대 소프트웨어 공학 연구실 강의 자료
Umc.Core Frameworks
[스프링 스터디 1일차] 템플릿
Cloud migration pattern using microservices
Developer`s Web Standard
14 strategy design
MSA 세미나.pptx
[아꿈사/110903] 도메인주도설계 4장
마스터 데이터 도메인을 위한 데이터 모델링 마스터
오픈소스 소프트웨어 성능 최적화 보고서 6장
01.표준프레임워크개요
Event Storming and Implementation Workshop
대규모 구조
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
Uml 세미나
MSA_기초자료.pdf
웹표준의 이해
Domain driven design ch3
꿀밋업1탄_왜_마이크로서비스인가
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
마이크로서비스 아키텍처의 이해 - 부산대 소프트웨어 공학 연구실 강의 자료
Ad

More from HyeonSeok Choi (12)

PDF
밑바닥부터시작하는딥러닝 Ch05
PDF
밑바닥부터시작하는딥러닝 Ch2
PDF
프로그래머를위한선형대수학1.2
PDF
알고리즘 중심의 머신러닝 가이드 Ch04
PDF
딥러닝 제대로시작하기 Ch04
PDF
밑바닥부터시작하는딥러닝 Ch05
PDF
Cluster - spark
PDF
Elastic search 검색
PDF
PDF
데이터 과학 입문 13장
PDF
데이터 과학 입문 5장
PDF
대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch2
프로그래머를위한선형대수학1.2
알고리즘 중심의 머신러닝 가이드 Ch04
딥러닝 제대로시작하기 Ch04
밑바닥부터시작하는딥러닝 Ch05
Cluster - spark
Elastic search 검색
데이터 과학 입문 13장
데이터 과학 입문 5장
대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위

Bounded Context