13๋ฒ์งธ ๊ณผ์
DDD (Domain Driven Design) ์ค๊ณ
๊ฐ๋
DDD ์ค๊ณ๋ ๋ฐ์ดํฐ ์ค์ฌ ์ค๊ณ์์ ๋ฒ์ด๋ ๋๋ฉ์ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณํ๋ ๋ฐฉ์์ ์๋ฏธํ๋ค.
๋ฐฐ๋ฌ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ค๊ณ ์๊ฐํ๋ฉด, ์์, ํ์, ์ฃผ๋ฌธ ๋ฑ์ผ๋ก ๋น์ฆ๋์ค ๋๋ฉ์ธ์ ๋๋์ด ์ค๊ณ๋ฅผ ์์ํ๋ ๊ฒ์ด๋ค.
์์์ ์์ ๋๋ฉ์ธ์ด๋ผ๊ณ ํ๋ค๋ฉด ์์์ ์ด๋ฆ, ๊ฐ๊ฒฉ, ์ต์ ๋ฑ์ ํ์ ๋๋ฉ์ธ์ผ๋ก ์๊ฐํด ๋ณผ ์ ์๋ค. ์ด์ฒ๋ผ ๋น์ฆ๋์ค ๋๋ฉ์ธ์ ๋จผ์ ์๊ฐํด๋ณด๊ณ ์ดํด๋ฅผ ํ๋ฉฐ ์ค๊ณํ๋ ๊ฒ์ด DDD ์ค๊ณ์ด๋ค.
ํน์ง
- ๋๋ฉ์ธ ๋ชจ๋ธ๊ณผ ๋ก์ง์ ์ด์ ์ ๋๋ค.
- ๋์ ์์ง๋์ ๋ฎ์ ๊ฒฐํฉ๋๋ฅผ ์งํฅํ๋ฏ๋ก ์ ์ง๋ณด์์ ํ์ฅ์ฑ์ด ์ฉ์ดํ๋ค
- ์ํํธ์จ์ด์ ๋ณต์ก์ฑ์ ์ต์ํํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ํ๋ค
SQL ์ค์ฌ ์ค๊ณ
๊ฐ๋
SQL ์ค์ฌ ์ค๊ณ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ์ ๋ฐ์ดํฐ ํ๋ฆ์ ์ค์ฌ์ผ๋ก ํ๋ ์ค๊ณ ๋ฐฉ์์ ์๋ฏธํ๋ค.
๋ฐ์ดํฐ์ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ๋ ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ๋ฐ๋ฅด๋ฏ๋ก ๊ฐ์ฒด ์งํฅ ๋ฐฉ์๊ณผ๋ ํจ๋ฌ๋ค์์ด ์ผ์นํ์ง ์๋๋ค.
ํน์ง
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ฌ์ ์ค๊ณ์ด๋ฏ๋ก DB์ ๋ณ๊ฒฝ์ฌํญ์ด ์๊ธฐ๋ฉด ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ํฅ์ ์ค๋ค
- ๋์ ๊ฒฐํฉ๋์ ๋ฎ์ ์์ง๋๋ฅผ ๊ฐ์ง๋ฏ๋ก ์ ์ง๋ณด์์ ์ฉ์ดํ์ง ์๋ค
- ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ ์ ์ง
- ์บก์ํ ์๋ฐ
DDD ์ค๊ณ์ SQL ์ค์ฌ์ ์ฐจ์ด์
DDD ์ค๊ณ | SQL ์ค์ฌ ์ค๊ณ | |
๊ฐ๋ | ๋๋ฉ์ธ ์ค์ฌ ์ค๊ณ (๋น์ฆ๋์ค ๋ก์ง ์ค์ฌ) | ๋ฐ์ดํฐ ์ค์ฌ ์ค๊ณ |
์ฌ์ฉ ๋ฒ์ | ๋๊ท๋ชจ ํ๋ก์ ํธ์ ์ ํฉ | ์๊ท๋ชจ ํ๋ก์ ํธ์ ์ ํฉ |
๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐฉ์ | ๋๋ฉ์ธ ๋ชจ๋ธ | ์ฟผ๋ฆฌ |
๊ฒฐํฉ๋ | ๋ฎ์ | ๋์ |
์ฐธ๊ณ
DDD(Domain Driven Design) - Incheol's TECH BLOG
์ด๋ฒคํธ ์์ฑ๊ณผ ํญ์ ํจ๊ป ์์๋์ด์ผ ํ ๊ฐ๋ ์ผ๋ก CQRS๊ฐ ์์ผ๋ฉฐ ๊ฐ๋จํ ์ค๋ช ํ๋ฉด ์ปค๋งจ๋์ ์ฟผ๋ฆฌ์ ์ฑ ์์ ๋ถ๋ฆฌํ์๋ ๊ฒ์ด๋ค. ์ปค๋งจ๋๋ ์ผ๋ฐ์ ์ธ ๋๋น ๊ธฐ์ค์ผ๋ก ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ C,U,D์ ๊ฐ์ ๋ฉ
incheol-jung.gitbook.io
SQL ์ค์ฌ์ ์ธ ๊ฐ๋ฐ์ ๋ฌธ์ ์
์ฐ์ํํ ํฌ์ฝ์ค ๋ฐฑ์๋ ๊ณผ์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ฉฐ '์ด๊ฑด ๊ฐ์ฒด์งํฅ์ ์ธ ์ค๊ณ๊ฐ ์๋ ๊ฒ ๊ฐ์๋ฐ?' ๋ผ๋ ์๊ฐ์ ์์ฃผ ํด์๋ค. Repository ์ DAO ๋ฅผ ํตํด, ๋ฐ์ดํฐ๋ฒ ์ด
hudi.blog