쿼츠 블로그를 위해 대공사

This commit is contained in:
2026-04-08 13:07:41 +09:00
parent 123642831e
commit 1319881195
606 changed files with 50625 additions and 2 deletions
@@ -0,0 +1,22 @@
**도메인 모델 추출 방법**
- **"이게 단독으로 존재하는 개념인가?"**
- **예:**
- `Item(상품)`: 창고에서 개별적으로 존재하는 물리적인 개체 → **Entity**
- `Location(보관 위치)`: 특정 창고 내에서 개별적으로 관리됨 → **Entity**
- **"이게 불변 데이터인가?"**
- **예:**
- `ItemName(상품명)`, `SKU(상품 코드)`: 개별 상품의 본질적 속성 → **Value Object**
💡 **Tip**:
- `Entity` → 고유한 식별자를 가진 객체 (예: `Order`, `Item`, `User`)
- `Value Object` → 특정 상태를 표현하는 객체 (예: `SKU`, `Address`)
@@ -0,0 +1 @@
**도메인(Domain)**이란 **프로그램이 해결하고자 하는 특정 비즈니스 또는 문제 영역**을 의미합니다. 즉, **소프트웨어가 다루는 현실 세계의 개념, 규칙, 및 프로세스**를 정의하는 것입니다.
@@ -0,0 +1 @@
![[Pasted image 20250326095638.png]]
@@ -0,0 +1,10 @@
- **비즈니스 도메인(Business Domain)**
- 실제 비즈니스 환경에서 다루는 특정 분야
- 예: 금융, 물류, 병원 관리, 전자상거래 등
- **도메인 모델(Domain Model)**
- 비즈니스 도메인의 개념과 규칙을 코드로 표현한 것
즉, 현실의 개체(Entity)를 **객체, 데이터 모델**로 정의하여 시스템에서 관리할 수 있도록 합니다.
- 예: `Order(주문)`, `Customer(고객)`, `Product(상품)` 같은 개념을 객체나 데이터 모델로 정의
- **도메인 로직(Domain Logic)**
- 해당 도메인에서 **적용되는 규칙과 로직**을 처리하는 코드
- 예: "할인율은 VIP 고객에게만 적용된다" → 이와 같은 규칙을 코드로 구현
@@ -0,0 +1,5 @@
📌 **도메인 모델은 비즈니스 도메인을 반영해야 하므로, 비즈니스를 깊이 이해하는 것이 핵심!**
📌 **비즈니스 도메인과 코드 간의 괴리를 줄이려면, 모든 사람이 같은 용어를 써야 함**
📌 **비즈니스 도메인에서 핵심 개념을 뽑아내고, 이를 도메인 모델로 변환**
📌 **도메인 모델 간의 관계를 정리하여 개념적으로 연결**
📌 **도메인 로직을 서비스 레이어에 두지 않고, 도메인 객체(Entity) 내부에서 처리**