โ DDD์ค๊ณ
- Domain-Driven Design. (๋๋ฉ์ธ ์ค์ฌ ์ค๊ณ)
๐ฅ ๋๋ฉ์ธ์ด๋?
- ํน์ ์ฃผ์ ๋ ๊ด์ฌ ์์ญ.
- ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๋๋ฉ์ธ์ด๋, ์ํํธ์จ์ด ์์คํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃผ์ ๋ชฉ์ ์ด ๋๋ ๋ฌธ์ ์์ญ(๋น์ฆ๋์ค ์์ญ)์ด๋ค.
- ์ฆ DDD์ค๊ณ๋, ๋น์ฆ๋์ค ๋๋ฉ์ธ์ ๋ณต์ก์ฑ๊ณผ ๊ท๋ชจ๋ฅผ ๋ฐ์ํ์ฌ ์ํํธ์จ์ด๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ๋ก ์ด๋ค.
- ๋๋ฉ์ธ ๋ชจ๋ธ์ ์ค์ฌ์ผ๋ก ํ์ฌ ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ์ ์ฝ๋๋ก ํํํ๋ ๋ฐ ์ด์ ์ ๋๋ค.
- ๋๋ฉ์ธ ๋ชจ๋ธ์ ์ํฐํฐ, ๊ฐ ๊ฐ์ฒด(value object), ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ(aggregate) ๋ฑ์ ๊ฐ๋ ์ ํ์ฉํ์ฌ ์ค๊ณํ๋ค.
- ๋ณต์กํ ์์คํ ์ ๋ค๋ฃฐ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค.
๐ฅ DDD์ ํต์ฌ ๊ฐ๋
- ์ ๋น์ฟผํฐ์ค ์ธ์ด (๋ณดํธ ์ธ์ด)
- ๊ฐ๋ฐ์, ๋๋ฉ์ธ ์ ๋ฌธ๊ฐ ์ฌ์ด์์ ๊ณต์ ๋๋ ๊ณตํต ์ธ์ด
- ๋๋ฉ์ธ ๋ชจ๋ธ๊ณผ ๊ฐ๋ฐ์์ ์ฌ์ฉํ ์ธ์ด๊ฐ ๋ฌด์จ ์๋ฏธ์ธ์ง, ์คํด ์์ด ์ ๋ฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ฌ์ ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค
- ์ปจํ ์คํธ
- ์ ๋น์ฟผํฐ์ค ์ธ์ด๊ฐ ํน์ ํ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ ๋ฒ์
- ์๋ก ๋ค๋ฅธ ์ปจํ ์คํธ ๋ด๋ถ์์๋ ๋์ผํ ์ด๋ฆ์ ์ธ์ด๊ฐ ๋ค๋ฅธ ์๋ฏธ๋ฅผ ๊ฐ์ง ์ ์์
โ SQL ์ค์ฌ ์ค๊ณ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ๊ธฐ์ค์ผ๋ก ์ํํธ์จ์ด๋ฅผ ์ค๊ณํ๋ ์ค๊ณ ๋ฐฉ์
- ์ ํต์ ์ธ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋ง์ด ์ฌ์ฉ๋์๋ค.
- ๋ฐ์ดํฐ ์ ์ฅ/๊ด๋ฆฌ๋ฅผ ์ค์ฌ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณํ๋ ๋ฐ ์ด์ ์ ๋๋ค.
- ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ ๊ด๊ณ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๊ณํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ๊ธฐ์ ์ ์ด์ ์ ๋๊ณ , ๋น์ฆ๋์ค ๋ก์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง์ ํจ๊ป ์ค๊ณํ๋ค.
'๊ฐ๋ฐ ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Spring DI (0) | 2023.08.17 |
---|---|
REST API์ URI ์ค๊ณ ๊ท์น (0) | 2023.08.11 |
[๊ฐ์ ์ ๋ฆฌ] ์ค์ ๋ก ์ปดํจํฐ๋ผ๋ฆฌ๋ IP์ฃผ์๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค (0) | 2023.05.20 |
[๊ฐ์ ์ ๋ฆฌ] ๋คํธ์ํฌ ๋ชจ๋ธ (1) | 2023.05.13 |
[๊ฐ์ ์ ๋ฆฌ] ๋คํธ์ํฌ๋ ๋ฌด์์ธ๊ฐ? (0) | 2023.05.10 |