Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Python
- flask
- mongoose
- Dinosaur
- Sequelize
- GIT
- nodejs
- Queue
- Express
- react
- JavaScript
- 게임
- cookie
- OCR
- game
- class
- typeORM
- Bull
- nestjs
- TypeScript
- dfs
- MongoDB
- Nest.js
- 공룡게임
- AWS
- 자료구조
- 정렬
- MySQL
- jest
Archives
- Today
- Total
포시코딩
도메인(Domain) 본문
728x90
도메인(Domain)
개발자 대부분은 비즈니스 프로세스를 개선하거나 자동화하기 위해 일한다.
도메인은 이런 프로세스가 지원하는 활동을 의미한다.
ex) 가구 판매 회사의 도메인은 구매 및 조달, 제품 설계, 물류 및 배달 등 다른 분야를 뜻할 수 있다.
도메인 예시
- 온라인 서점이 구현해야할 소프트웨어 대상이라면
- 온라인 서점 = 소프트웨어로 해결하고자 하는 문제의 영역 = 도메인(Domain)
- 한 도메인은 다시 하위 도메인으로 나눌 수 있다.
- 도메인 구성: 주문, 회원, 혜택, 결제, 배송, 정산, 카탈로그, 리뷰
- 하위 도메인은 다른 하위 도메인과 연동하여 완전한 기능을 제공한다.
ex) 고객 -> 물건 주문 -> 결제 -> 배송 -> 혜택 제공
- 하위 도메인을 어떻게 구성할 지 여부는 상황에 따라 달라진다.
- ex) B2B, B2C
도메인 모델(Domain Model)
도메인 모델이란 유용한 특성을 포함하는 프로세스나 현상의 지도(Map)를 뜻한다.
- 도메인 모델이란 특정 도메인을 개념적으로 정리한 모델이다.
- 도메인 모델은 사용할 개체를 기억하기 쉬운 이름(식별자)을 부여해 대상을 쉽게 공유할 수 있게 한다.
도메인 모델링의 종류
- 엔티티(Entity)
- 값 객체(Value Object)
- 도메인 서비스(Domain Service)
엔티티(Entity)
엔티티(Entity)는 실제 DB 테이블과 연관되어 있는 핵심 클래스이고,
엔티티를 기준으로 테이블이 생성되고 DB 스키마가 변경된다.
- 엔티티를 요청(Request)이나 응답(Response) 값으로 전달하는 클래스로 사용하면 안된다.
- 엔티티 내부의 속성이 변경되더라도 여전히 동일한 엔티티로 남아있다.
- 엔티티는 시간에 따라 변하는 속성이 포함될 수 있다.
- 어떤 요소가 엔티티를 유일하게 식별하는지 정의하는 것 또한 중요하다.
- 보통 이름이나 참조 번호 등을 사용한다.
- ex) User 클래스의 userId
728x90
'Node.js' 카테고리의 다른 글
DDD(Domain Driven Design) (0) | 2022.12.28 |
---|---|
아키텍처 패턴(Architecture Pattern) (0) | 2022.12.28 |
추상화(Abstraction) (0) | 2022.12.28 |
객체 지향 설계 5원칙 (SOLID) (0) | 2022.12.28 |
객체 지향 프로그래밍 (Object-Oriented Programming, OOP) (0) | 2022.12.26 |