학습 목표
- 도메인 주도 설계(Domain Driven Design)의 핵심 개념을 이해할 수 있다.
- 바운디드 컨택스트(Bounded Context)의 중요성과 설계 원칙을 이해할 수 있다.
동영상 강의
도메인이란?
- 도메인(domain)은 소프트웨어가 해결하려는 특정 문제 영역(비즈니스 영역)을 뜻합니다.
- 즉, 시스템이 다루는 업무 지식, 규칙, 용어, 프로세스의 총체입니다. 도메인은 비즈니스 관점에서 바라본 현실 세계의 일부를 모델링한 것입니다
- DDD에서는 도메인을 단순한 데이터나 테이블 집합이 아니라, 표현 가능한 개념(개체, 규칙, 행위)을 가진 하나의 지식 영역으로 취급합니다.
- 예시) 온라인 서점
도메인 전문가와 개발자 간 지식 공유
도메인 전문가들은 각 영역의 전문 지식을 바탕으로 기능을 요구하고, 개발자는 이를 설계·구현·배포합니다. 이 과정에서 요구사항을 잘못 이해하면 원치 않는 기능이 만들어지고, 이를 바로잡는 데 많은 시간과 비용이 듭니다. 따라서 코드 작성 전에 요구사항을 명확히 확인하고 검증하는 절차가 반드시 필요합니다.
요구사항을 올바르게 이해하려면?
- 직접 대화 우선: 전달자나 중간 문서에만 의존하지 말고 도메인 전문가(업무 담당자)와 개발자가 직접 소통하세요.
- 계속 검증: 한 번 문서화했다 끝내지 말고 반복적으로 확인하고 수정하세요.
- 가시화 우선: 말로 설명되는 요구는 사람마다 해석이 다르니 가능한 한 시각·실행 가능 형태로 보여주세요(목업, 프로토타입, 샘플 데이터).