๐ป SQL ์ค์ฌ ์ค๊ณ๋?
SQL ์ค์ฌ์ค๊ณ๋ ์์คํ ์ ์ค๊ณํ ๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์ฌ์ผ๋ก ์์คํ ์ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ๋จผ์ ์ค๊ณํ๊ณ , ์คํค๋ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค์ ๋น์ฆ๋์ค ๋ก์ง์ ์์ฑํ๊ฒ ๋ฉ๋๋ค.
SQL ์ค์ฌ์ค๊ณ์ ๊ฐ์ฅ ํฐ ๋จ์ ์ ์คํค๋ง์ ๋น์ฆ๋์ค๋ก์ง์ ๊ฐํ ๊ฒฐํฉ์ ๋๋ค. ์ด๋ฐ ๋จ์ ์์ ํ์๋๋ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ฎ์ ์ ์ฐ์ฑ
์คํค๋ง์ ๋ํ ๋น์ฆ๋์ค ๋ก์ง์ ์์กด์ฑ์ ๋์, DB ๊ตฌ์กฐ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์ฟผ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํด์ผ ํ ์ํฉ์ด ์๊ธฐ๊ฒ ๋๋ฉด ํด๋น ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๋ก์ง๋ค์ ์ฐพ์ ๋ชจ๋ ๋ฐ๊ฟ์ค์ผํ๋ ๋ฌธ์ ๊ฐ ์๊น๋๋ค. - ํ
์คํธ ์ฝ๋ ์์ฑ์ ์ด๋ ค์
DB์ ๋ํ ์์กด์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ํ ์คํธ์ฝ๋๋ฅผ ์์ฑํ ๊ฒฝ์ฐ DB๋ ๊ฐ์ด ์ค์ ํด ์ค์ผ ํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. - ๋น์ฆ๋์ค ๋ก์ง์ ๋ณต์ก๋ ์ฒ๋ฆฌ ์ด๋ ค์
๋น์ฆ๋์ค ๋ก์ง์์ ์ฟผ๋ฆฌ๋ฅผ ์ง์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์, ๋น์ฆ๋์ค ๋ก์ง์ด ๋ณต์กํด์ง์๋ก ์ฝ๋๋ ๋ณต์กํด์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. - ๊ฐ์ฒด์ DB ๊ฐ์ ๋งคํ ๋ฌธ์
SQL ์ค์ฌ์ค๊ณ๋, ๋น์ฆ๋์ค ๋ก์ง์์ DB์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๊ฐ์ ธ์ค๊ณ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด์ ๋งคํํด ์ฌ์ฉํฉ๋๋ค. ์ด๋ ๋งคํํ๋ ๊ณผ์ ์์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. DB์ ๊ฐ์ฒด์งํฅ ์ธ์ด์ฌ์ด์๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์กด์ฌํฉ๋๋ค. ์ด๋๋ฌธ์ ๊ฐ๋ฐ์๊ฐ DB๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด์ ๋งตํํด์ฃผ๋ ์ฝ๋๋ฅผ ์ง์ ์์ฑํด์ผํ๋ ๋ฌธ์ ๊ฐ ์๊น๋๋ค.
๐ ORM (Object-Relational Mapping)
SQL ์ค์ฌ์ค๊ณ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ ์ค ํ๋๋ก ORM์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ORM์ ๊ฐ์ฒด์ ๊ด๊ณํ DB๊ฐ์ ๋ฐ์ดํฐ ๋งคํ์ ์๋ํํด์ฃผ๋ ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋งํฉ๋๋ค. ORM์ ์ฌ์ฉํ๊ฒ ๋๋ฉด, SQL ์ค์ฌ์ค๊ณ์์ ๊ฐ์ฒด์ ๊ด๊ณํ DB๊ฐ์ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋ฐฉ์์ ์ฐจ์ด๋ก ์ธํ ๋งคํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๋ํ ์ฟผ๋ฆฌ๋ฌธ์ ์ง์ ์์ฑํ ํ์ ์์ด ๊ฐ์ฒด ์งํฅ์ ํ๋ก๊ทธ๋๋ฐ์ ํน์ฑ์ ํ์ฉํด DB๋ฅผ ์ ์ดํ ์ ์์ด ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ์ฆ๊ฐํฉ๋๋ค.
๐ป DDD(Domain Driven Design)๋?
์จ๋ผ์ธ ์์ ์ ๊ตฌํํ๋ ์ํฉ์ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
์ด๋ฅผ ๊ตฌํํ๋ ค๋ฉด, ์ํ์กฐํ, ๊ตฌ๋งค, ๊ฒฐ์ , ๋ฐฐ์ก ์ถ์ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์ด ๋ ์จ๋ผ์ธ ์์ ์ ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ฌธ์ ์ ์์ญ ์ฆ ๋๋ฉ์ธ
(domain)์ ํด๋นํฉ๋๋ค.
ํ๋์ ๋๋ฉ์ธ์ ๋ค์ ํ์ ๋๋ฉ์ธ์ผ๋ก ๋๋ ์ ์๋๋ฐ ์จ๋ผ์ธ ์์ ์ ์๋ก ๋ค์ด๋ณด๋ฉด, ์ฃผ๋ฌธ, ํํ, ๋ฐฐ์ก, ํ์, ์นดํ ๊ณ ๋ฆฌ, ๋ฆฌ๋ทฐ๋ฑ์ ํ์ ๋๋ฉ์ธ์ผ๋ก ๋๋ ์ ์์ต๋๋ค. ํํ์ ํ์ ๋๋ฉ์ธ์ ์ฟ ํฐ์ด๋ ํ ์ธ๊ณผ ๊ฐ์ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ , ๋ฐฐ์ก ํ์ ๋๋ฉ์ธ์ ๋ฐฐ์ก๊ณผ ๊ด๋ จ๋ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด๋ ๊ฒ ๋ถ๋ฆฌํ ๋๋ฉ์ธ ์ค์ฌ์ผ๋ก ์๋น์ค๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ DDD
๋ผ๊ณ ํฉ๋๋ค.
DDD
๋ฅผ ์ฌ์ฉํด ์๋น์ค๋ฅผ ์ค๊ณํ ๊ฒฝ์ฐ ๋๋ฉ์ธ ๋ชจ๋ธ์ ์ฐ์ ์ ์ผ๋ก ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ณต์ก๋๊ฐ ๋จ์ด์ง๋ฉด ์ ์ง๋ณด์ ๋ํ ์ฌ์์ง๋๋ค.