๐ 9.1. ๋๋ฉ์ธ ๋ชจ๋ธ๊ณผ ๊ฒฝ๊ณ
ํ์ ๋๋ฉ์ธ๋ง๋ค ๊ฐ์ ์ฉ์ด๋ผ๋ ์๋ฏธ๊ฐ ๋ค๋ฅด๊ณ ๊ฐ์ ๋์์ด๋ผ๋ ์ง์นญํ๋ ์ฉ์ด๊ฐ ๋ค๋ฅผ ์ ์๊ธฐ ๋๋ฌธ์ ํ ๊ฐ์ ๋ชจ๋ธ๋ก ๋ชจ๋ ํ์ ๋๋ฉ์ธ์ ํํํ๋ ค๋ ์๋๋ ์ฌ๋ฐ๋ฅด์ง ์์.
๋ชจ๋ธ์ ํน์ ํ ์ปจํ ์คํธ(๋ฌธ๋งฅ) ํ์์ ์์ ํ ์๋ฏธ๋ฅผ ๊ฐ๋๋ค. ๊ฐ์ ์ ํ์ด๋ผ๋ ์นดํ๋ก๊ทธ ์ปจํ ์คํธ์ ์ฌ๊ณ ์ปจํ ์คํธ์์ ์๋ฏธ๊ฐ ๋ค๋ฅด๋ค.
์ด๋ ๊ฒ ๊ตฌ๋ถ๋๋ ๊ฒฝ๊ณ๋ฅผ ๊ฐ๋ ์ปจํ ์คํธ๋ฅผ DDD์์๋ ๋ฐ์ด๋๋ ์ปจํ ์คํธ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๐ 9.2. ๋ฐ์ด๋๋ ์ปจํ ์คํธ
ํ์ ๋๋ฉ์ธ๊ณผ ๋ฐ์ด๋๋ ์ปจํ ์คํธ๊ฐ ์ผ๋์ธ ๊ด๊ณ๋ฅผ ๊ฐ์ง ์์ ๋๊ฐ ๋ง๋ค.
์ฃผ๋ฌธ ํ์ ๋๋ฉ์ธ์ ์ฃผ๋ฌธ, ๊ฒฐ์ ๊ธ์ก ๊ณ์ฐ ๋ฐ์ด๋๋ ์ปจํ ์คํธ๊ฐ ์กด์ฌํ ์๋ ์๊ณ ,
์นดํ๋ก๊ทธ, ์ฌ๊ณ ๋๋ฉ์ธ์ ํ๋์ ๋ฐ์ด๋๋ ์ปจํ ์คํธ ์ํ์์ ๊ฐ๋ฐํ ์๋ ์๋ค.
๋ฐ์ด๋๋ ์ปจํ ์คํธ๋ ๋๋ฉ์ธ ๋ชจ๋ธ์ ๊ตฌ๋ถํ๋ ๊ฒฝ๊ณ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ด๋๋ ์ปจํ ์คํธ๋ ๊ตฌํํ๋ ํ์ ๋๋ฉ์ธ์ ์๋ง์ ๋ชจ๋ธ์ ํฌํจํ๋ค.
๐ 9.3. ๋ฐ์ด๋๋ ์ปจํ ์คํธ ๊ตฌํ
๋ฐ์ด๋๋ ์ปจํ ์คํธ๋ ๋๋ฉ์ธ ๊ธฐ๋ฅ์ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ ๋ฐ ํ์ํ ํํ ์์ญ, ์์ฉ ์๋น์ค, ์ธํ๋ผ์คํธ๋ญ์ฒ ์์ญ์ ๋ชจ๋ ํฌํจํ๋ค.
์๋น์ค-DAO ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ฉ์ธ ๊ธฐ๋ฅ์ด ์๋น์ค์ ํฉ์ด์ง๊ฒ ๋์ง๋ง ๋๋ฉ์ธ ๊ธฐ๋ฅ์ด ๋จ์ํ๋ฉด ์๋น์ค-DAO๋ก ๊ตฌ์ฑ๋ CRUD ๋ฐฉ์ ์ฌ์ฉํด๋ ์ฝ๋ ์ ์ง๋ณด์์ ๋ฌธ์ ๋์ง ์๋๋ค.
CQRS: Command Query Reponsibility Segregation
์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ช ๋ น ๊ธฐ๋ฅ๊ณผ ๋ด์ฉ์ ์กฐํํ๋ ์ฟผ๋ฆฌ ๊ธฐ๋ฅ์ ์ํ ๋ชจ๋ธ์ ๊ตฌ๋ถํ๋ ํจํด.
๐ 9.4. ๋ฐ์ด๋๋ ์ปจํ ์คํธ ๊ฐ ํตํฉ
์นดํ๋ก๊ทธ ๋๋ฉ์ธ์์ ์ถ์ฒ ์์คํ ์ ๋์ ํ๋ฉด ์นดํ๋ก๊ทธ ํ์ ๋๋ฉ์ธ์ ์นดํ๋ก๊ทธ๋ฅผ ์ํ ๋ฐ์ด๋๋ ์ปจํ ์คํธ์ ์ถ์ฒ ๊ธฐ๋ฅ์ ์ํ ๋ฐ์ด๋๋ ์ปจํ ์คํธ๊ฐ ์๊ธด๋ค.
REST API๋ฅผ ํธ์ถํ๋ ๊ฒ์ ๋ ๋ฐ์ด๋๋ ์ปจํ ์คํธ๋ฅผ '์ง์ ' ํตํฉํ๋ ๋ฐฉ๋ฒ.
๋ฉ์์ง ํ๋ฅผ ์ฌ์ฉํด ๊ฐ์ ์ ์ผ๋ก ํตํฉํ ์ ์์.
๋ ๋ฐ์ด๋๋ ์ปจํ ์คํธ๋ฅผ ๊ฐ๋ฐํ๋ ํด์ ๋ฉ์์ง ํ์ ๋ด์ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ํ์ํ๊ฒ ๋๋๋ฐ ๊ทธ ํ๋ฅผ ๋๊ฐ ์ ๊ณตํ๋๋์ ๋ฐ๋ผ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๊ฒฐ์ ๋จ. ํ์ชฝ์์ ๋ฉ์์ง๋ฅผ ์ถํํ๊ณ ๋ค๋ฅธ ์ชฝ์์ ๋ฉ์์ง๋ฅผ ๊ตฌ๋ ํ๋ ์ถํ/๊ตฌ๋ ๋ชจ๋ธ์ ๋ฐ๋ฆ.
ํ๋ฅผ ํตํด ๋ฉ์์ง ์ ๋ฌํ๋ ๊ฒ์ ๋น๋๊ธฐ๋ผ๋ ์ ์ ์ ์ธํ๋ฉด REST API๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ ์ ๋ฌํ๋ ๊ฒ๊ณผ ์ฐจ์ด ์์.
๐ 9.5. ๋ฐ์ด๋๋ ์ปจํ ์คํธ ๊ฐ ๊ด๊ณ
์๋ฅ ์ปดํฌ๋ํธ๋ ๋ณดํต ํ๋ฅ ์ปดํฌ๋ํธ๊ฐ ์ฌ์ฉํ ์ ์๋ ํต์ ํ๋กํ ์ฝ์ ์ ์ํ๊ณ ์ด๋ฅผ ๊ณต๊ฐํจ.
๋ ๋ฐ์ด๋๋ ์ปจํ ์คํธ๊ฐ ๊ฐ์ ๋ชจ๋ธ์ ๊ณต์ ํ๋ ๋ชจ๋ธ์ '๊ณต์ ์ปค๋'์ด๋ผ๊ณ ๋ถ๋ฆ.
์ค๋ณต์ ์ค์ฌ์ค๋ค๋ ์ฅ์ ์์ง๋ง ๋ ํ์ด ๋ฐ์ ํ ๊ด๊ณ๋ฅผ ์ ์งํด์ผ ํจ.
๋ ๋ฆฝ ๋ฐฉ์: ์๋ก ํตํฉํ์ง ์๋ ๋ฐฉ์. ๋ ๋ฐ์ปจ ๊ฐ์ ํตํฉ์ด ์๋์ผ๋ก ์ด๋ฃจ์ด์ง. ex) ์จ๋ผ์ธ ์ผํ๋ชฐ ์๋ฃจ์ ๊ณผ ์ธ๋ถ์ ERP ์๋น์ค๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๊ฒฝ์ฐ.
๐ 9.6. ์ปจํ ์คํธ ๋งต
์ปจํ ์คํธ ๋งต: ๋ฐ์ด๋๋ ์ปจํ ์คํธ ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ํ ๊ฒ.