Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[써머] 도메인 / 엔티티 #78

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Jpa/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
- [x] N + 1 문제
- [x] 영속성 컨텍스트
- [x] JPQL
- [ ] 도메인 vs Entity
- [x] 도메인 vs Entity
47 changes: 47 additions & 0 deletions Jpa/도메인_엔티티.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@

# 💎 도메인 / 엔티티

## 도메인 / Domain

- 소프트웨어로 해결하고자 하는 `문제 영역(problem space)`
- 소프트웨어를 사용하는 사용자의 활동이나 관심사와 관련되어 있다
- 소프트웨어 산업은 다른 산업 내에서 발생하는 다양한 `비즈니스 문제`를 해결한다

> 소프트웨어는 사람의 욕망과 욕구를 해결하려고 만든 창조물입니다.
> 사람들의 욕망과 욕구가 개발자에게 전달됐을 때, 우리는 그것을 도메인이라고 부릅니다.
> -조영호-

- 예시 : 은행 서비스를 만든다면...
- 전자상거래, 예금, 환전 등의 도메인이 있을 수 있다

## 도메인 모델 / Domain model

- 특정 목적을 위해 현실 세계에 존재하는 것을 가공하고 편집하여 우리에게 정보를 제공한다
- 특정 다이어그램으로 전달하려는 아이디어자 목적
- 여러 이해 관계자가 동일한 모습으로 도메인을 이해하고, 도메인 지식을 공유하는데 도움이 된다
- 이 의사소통 수단은 회의, 기획, 디자인, 개발에 사용되어야 한다

- 예시 : 은행 서비스에서
- 물리적으로 존재하는 모델 대상 : 고객
- 물리적으로 존재하지 않는 모델 대상 : 예금, 적금, 송금 등


## 엔티티 / Entity

- 비즈니스 규칙을 구체화하는 객체
- class/POJO나 구체적인 모델 버전을 가리킴

- 예제 : 적금 도메인에 연관된 엔티티 구성

<img width="720" alt="image" src="https://user-images.githubusercontent.com/80666066/196125418-181fe87a-4333-4fd4-9f95-ca9691a67eb3.png">


## 요약

- 도메인은 `문제 영억`
- 도메인 모델은 문제 영역과 연관된 `아이디어이자 목적`
- 엔티티는 구체화된 `객체`

## 도움받은 곳들

- [도메인 원정대 - 우아콘 2021](https://www.youtube.com/watch?v=kmUneexSxk0)