Skip to main content

Command Palette

Search for a command to run...

Subdomain에는 어떤 유형들이 있나요?

Published
2 min read

서론

DDD의 전략적 설계 안에는 여러가지 개념들이 있다.

그 개념중 하나로는 Subdomain이 있는데, 이 개념안에는 몇가지 유형들로 나뉘어진다.

유형으로 나눈 목적과 그로 얻고자 하는 가치가 매우 확고하여, 유형들의 구분은 매우 중요하다고 생각된다.

반버논이 말한 팩터들을 가지고 내용을 정리해본다.

Subdomain이 뭐죠?

Subdomain은 전체 비지니스 도메인의 하위 부분을 말한다.

대부분의 비지니스 도메인은 전체를 포괄적으로 바라보기에는 너무 크고 복잡하기 마련이다.

그래서 거대하고 복잡한, 프로젝트 내에서 문제 영역을 논리적으로 쪼개는데 사용되는것이 Subdomain이다.

결국 비지니스의 핵심 영역에 대해 관심사를 나누는것이다. 그리고 Subdomain을 개발하는데, DDD를 사용했다면 매우 명확한 Bounded Context를 만들어낼 수 있다. (반버논은 DDD를 사용할 때, Bounded Context와 Subdomain은 일대일 관계를 맺도록 권장한다. 다만 목표에 가깝고, 예외는 언제든지 있다)

Subdomain의 유형은 3가지로 나뉜다

핵심 도메인

보편언어를 신중하게 만들기 위한 전략적 투자 영역으로, 주요 자원을 할당하는 명시적인 Bounded Context이다.

여기에는 잘 정의된 도메인 모델이 존재한다. 이 핵심 도메인은 다른 경쟁자들에 대한 차별화를 만들 영역이기 때문에 프로젝트 목록에서 매우 높은 우선순위를 갖는다.

기업은 경쟁사와 모든 것을 차별화 할 수 없기 때문에, 핵심 도메인은 기업이 특히 더 뛰어나야하는 부분에 대한 경계를 구분해준다.

따라서, 핵심 도메인은 소프트웨어에서 가장 큰 투자가 필요한 곳이다.

지원 서브도메인

이미 존재하는 제품으로 해결할 수 없는 맞춤 제작 개발이 필요한 모델링 영역을 말한다.

여기에는 핵심 도메인에서와 같은 투자 방식을 동일하게 따를 필요는 없다. 전략적 차별화를 위해 투자한 것에 실패하지않으면서도 지원 형태의 Bounded Context에 너무 큰 투자를 하지 않기위해 아웃소싱을 고려해볼 수 있다.

하지만, 알겠지만 지원 서브도메인 없이는 핵심 도메인을 성공시킬수는 없다. 지원 서브도메인이 존재해야 핵심 도메인을 성공시킬 수 있다. 즉, 지원 서브도메인도 중요한 소프트웨어 모델이다.

일반 서브도메인

기존 제품 구매를 통해 바로 충족시킬 수 있는 경우에 해당한다. 아웃소싱을 할 수도있고, 핵심 도메인 또는 좀 더 작은 지원 서브도메인에 할당된 엘리트 개발자가 없는 팀에서 직접 개발을 할 수 있는 영역이다.

따라서, 일반 서브도메인을 핵심 도메인으로 오해하지않아야한다. 오해하게된다면, 핵심 도메인의 투자를 일반 도메인에 할 수 있기때문이다.


위 세가지 유형을 현재 내가 기여하고있는 제품에 접목시켜보면, 생각보다 쉽게 유형 구분이 가능하다. 놀라운것은 팀원 모두가 위 유형을 명확하게 표현만 안했지, 서브 도메인들을 설명하고 개선이 필요할 때 암묵적으로 유형들을 나뉘어 설명하곤했다.

요즘 개인적으로, 표현할 때 암묵적으로, 느낌적인 느낌(?)으로, 감각적으로 등의 설명을 정의된 용어를 찾았을 때 작은 희열을 느낀다. 우리는 대개 전략적으로 보편 언어를 사용하게되는 이점은 매우 뚜렷한것을 알지만, 제품 관련이 아니라면 보편언어 선정을 고려하지않는 경우가 많다. 개념에 대한 명확한 확립이 안되면, 목적은 동일하지만 표현 차이로 불필요한 비용이 발생할 수 있는데 이런 부분들을 하나씩 해소해나가고자 이번 글을 작성했다.

More from this blog

갑자기 모든 Gateway에서 500이 발생했던 이유

배경 오후 12:40 분 경, 운영 환경의 Gateway 세 개가 동시에 많은 에러가 발생했습니다. 인터널, 유저향, 외부 파트너(Open) 까지 세 서비스 모두 500과 502가 같이 폭증했어요. 세 서비스가 같은 시점에 같이 발생했다는 건 경험상 보통 두 가지 중 하나였어요. 첫째는 공통 의존 대상에 문제가 생겼을 때, 둘째는 트래픽 자체가 spike

May 25, 20269 min read

데이터로 해자를 만든다는 것

배경 미용 의료 플랫폼은 크게 두 종류의 데이터를 가지고 있습니다. 하나는 예약 데이터입니다. 고객이 어떤 시술을 원하고, 얼마를 지불할 의향이 있는지. 강남언니 같은 예약 플랫폼이 이 데이터를 대량으로 보유하고 있죠. 다른 하나는 "실 결제 데이터"입니다. 고객이 병원에 와서 실제로 어떤 시술을 받고, 얼마를 결제했는지. 병원 CRM(KOS, 제품 이름

May 7, 20268 min read10

리텐션이 0에 수렴해서 데이터부터 다시 들여다봤더니

Foundry는 백엔드 엔지니어를 위한 기초 지식 학습 플랫폼입니다. 시험을 보고, 틀린 문제를 오답노트에 정리하고, 개념을 복습하는 서비스인데요. 베타 오픈 후 커뮤니티에 올려서 유저도 좀 모았고, 기능도 하나하나 잘 만들어놨다고 생각했습니다. 그런데 GA4를 열어보니 현실은 달랐거든요. 문제: 숫자가 말해주는 현실 GA4 리포트를 열어봤더니 대시보드 페

Mar 15, 20265 min read38

물음표 엔지니어

22 posts

기술적 접근에 있어 트레이드 오프에 대한 고민을 다뤄보려합니다.

(Deprecated Blog: https://jeongkyun-it.tistory.com)