도메인 주도 설계 첫걸음 Ch 02.

Eunbi Lee·2026년 4월 19일

SeaVantage

목록 보기
18/18
post-thumbnail

2️⃣ 도메인 지식 찾아내기

소프트웨어 개발의 본질은 코드를 작성하는 것이 아니라, 비즈니스의 문제를 해결하는 데 있다.

커뮤니케이션; 도메인 전문가 (Domain Expert)

  • 비즈니스 그 자체를 설계하고 운영하는 사람이다.
    • 소프트웨어가 해결하고자 하는 문제 영역의 권위자(기획자, 마케터, 현업 담당자 등)이다.

개발자는 이들의 지식을 코드로 옮기는 '소화' 과정을 거쳐야 한다.

  • 이때, 단순히 요구사항을 수동적으로 수집하는 것이 아니라, 전문가와 함께 비즈니스 모델을 검증하는 동료가 되어야 한다.

비즈니스 언어; 유비쿼터스 언어 (Ubiquitous Language)

  • DDD의 가장 강력한 도구이자, 팀 전체가 공유하는 공통 언어이다.
    • 특정 맥락 내에서 개발자와 비즈니스 전문가가 소통할 때 사용하는 단일화된 용어 체계이다.

대화뿐만 아니라 기획서, 소스 코드, 데이터베이스 스키마에 이르기까지 동일한 용어를 사용할 때 사용된다.

  • 유비쿼터스 언어를 사용함으로써, 개발자와 전문가 사이의 '번역' 과정을 제거하여 의사소통 비용을 획기적으로 줄이고 오해로 인한 결함을 방지할 수 있다.

또한, 유비쿼터스 언어는 비즈니스 언어이기 때문에, 기술 용어는 빼고 비즈니스 도메인에 관련된 용어로만 구성해야 한다.

추가로, 특정 컨텍스트 안에선 각각의 용어를 사용하는 것이 바람직하다.

비즈니스 도메인 모델; 모델 (Model)

  • 문제를 해결하려는 의도만을 담고, 불필요한 정보를 생략한 개념이다.
    • 모델의 좋은 예시 중 하나는 지도다. 이때, 각 지도는 특정 목적을 지원하는데 충분한 자료만 담고 있다.
      • 길 안내 지도, 지형도, 세계 지도, 지하철 노선도 등이 있다.

유비쿼터스 언어 관리; 도구 (Tool)

예를 들어, 위키는 유비쿼터스 언어를 수집하고 관리하는 용어집(glossary) 으로 사용될 수 있다.

용어집은 비즈니스 도메인의 용어에 대한 정보를 얻을 수 있는 거점 역할을 하지만, 명사(noun)에만 효과적이다.

따라서, 실제 비즈니스 로직인 행동(behavior)을 문서화하기엔 어렵기 때문에 거킨 테스트(Test)처럼 행동을 포착하는 데 적합한 다른 도구와 함께 사용하는 것이 가장 좋다.

profile
안녕하세요, 개발자 비비입니다.

0개의 댓글