-
도메인(Domain)과 도메인 모델(Domain Model)소프트웨어 개발 개념 2025. 2. 25. 22:46
도메인, 도메인 모델에 대해서 정리합니다. 이 문서는 수정될 수도 있습니다.
도메인이란 단어의 혼용
도메인이란 단어를 모호하게 생각해 도메인과 연관된 단어는 죄다 "도메인"이라고 불렀던 것 같습니다. 특히 도메인 설계 단계에서 해결하고자 하는 기능을 정리하고 있노라면 '그래서... 도메인이란 게 정확히 뭐지?'라는 생각도 들었고요. 이렇게 부르는 것이 저뿐만 아니라 다른 사람들에게도 혼돈을 줄 수 있겠다, 싶어 짜투리 시간을 내 정리하고 있습니다.
1. 도메인(Domain)
소프트웨어 개발에서 도메인은 해결하려는 문제의 영역을 의미합니다.
더보기또 이때 해결이라는 워딩을 쓰는 이유는 소프트웨어의 역할에 이유가 있습니다.
소프트웨어가 기존에 불편하거나 비효율적인 문제를 개선하거나 없애는 역할을 했기 때문입니다.
- 전자상거래(E-commerce) 도메인
- 하위 도메인 : 상품 검색, 장바구니, 결제 처리, 주문 관리, 배송 추적 등
- 금융(Finance) 도메인
- 하위 도메인 : 계좌 관리, 대출 서비스, 이체 서비스, 결제 시스템, 보험 서비스 등
- 헬스케어(Healthcare) 도메인
- 하위 도메인 : 병원 예약 시스템, 진단 서비스, 의약품 관리, 건강 데이터 추적 등
- 물류(Logistics) 도메인
- 하위 도메인 : 재고 관리, 배송 추적, 창고 관리, 물류 최적화 등
"그 도메인에 대한 지식이 중요하죠" 라는 말은 즉, 금융 도메인의 경우, 금융 시스템을 개발하려면 금융 서비스에 대한 지식(예: 계좌, 대출, 이체, 결제 등)이 필요하다는 겁니다.
2. 도메인 모델(Domain Model)
특정 도메인의 개념과 규칙을 소프트웨어 시스템 내에서 객체나 클래스로 표현한 것입니다.
도메인 내에서 중요한 고유 식별자(ID)를 갖는 객체인 엔티티(Entity), 식별자가 필요 없고, 불변의 성격을 갖는 객체인 값 객체(Value Object, vo), 여러 개의 엔티티와 값 객체를 하나로 묶어서 처리하는 루트 엔티티인 집합체(Aggregate), 도메인 모델 내에서 비즈니스 로직을 구현하는 객체인 도메인 서비스(Domain Service)들이 도메인 모델의 구성 요소가 될 수 있겠습니다.
'소프트웨어 개발 개념' 카테고리의 다른 글
API 란? (0) 2025.03.01 프레임워크와 라이브러리의 차이점 (0) 2025.02.03 - 전자상거래(E-commerce) 도메인