๋ง์ดํฌ๋ก์๋น์ค ์ค๊ณ๋ฅผ ์ํ ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ(Domain Driven Design)๋ฅผ ์ฝ๊ฒ ์ค๋ช ํ๊ณ , ์ค์ ๋ก ํ์ฉํ๊ธฐ ์ํ ๊ตฌ์ฒด์ ์ธ ์ค์ฒ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค.
๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ(DDD)
ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ
์ ๋ต์ ์ค๊ณ
์ ์ ์ ์ค๊ณ
์ด๋ฒคํธ ์คํ ๋ฐ
๋ ์ด์ด๋ ์ํคํ ์ฒ
๋๋ฉ์ธ ๋ชจ๋ธ๋ง
API ์ค๊ณ
MSA
DDD์ ํต์ฌ, ํ์คํ๊ฒ ๋ฐฐ์ฐ๊ณ ์ถ๋ค๋ฉด!
๐ฅ
MSA์ ๋๋ต์ ์ธ ๊ฐ๋ ์ ์ดํดํ๊ธด ํ๋๋ฐ, ๋ง์ ์ด๋ป๊ฒ ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ชผ๊ฐ๊ณ ์ค๊ณํด์ผ ํ ์ง ๋ง๋งํ๊ณ ์ด๋ ต๊ธฐ๋ง ํด์.
๐
๋ง์ดํฌ๋ก์๋น์ค๋ ๊ณต๊ฐ์ ์ธ REST API๋ง ์์ผ๋ฉด ๋๋ ๊ฑฐ ์๋๊ฐ์? ๋ค๋ฅธ ์ด๋ค ์ค๊ณ๊ฐ ํ์ํ๊ฐ์?
๐ต
๋น๋๊ธฐ ์ด๋ฒคํธ ํต์ ์ด ๋ง์ด ์ฐ์ด๋ ๊ฒ ๊ฐ๋๋ฐ... ์ด๋ค ๋น์ฆ๋์ค ์ผ์ด์ค์ ํ์ฉํ๋์? ๋๊ธฐ/๋น๋๊ธฐ ํต์ ์ ์ด๋ป๊ฒ ๊ตฌ๋ถํด์ ์ค๊ณํ๋์?
MSA ๊ตฌ์กฐ์์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌํ๊ณ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ฌด์์ด ์ค์ํ ๊น์? ๋ฐ๋ก ๊ธฐ๋ฅ์ ์ผ๋ก ์์ง์ฑ ์๊ณ ๋ค๋ฅธ ์๋น์ค์ ์์กด๊ด๊ณ๊ฐ ์ ์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์๋ณํ๊ฒ ํ๋ ๊ฒ์ ๋๋ค. ๋ํ ๋ง์ดํฌ๋ก์๋น์ค ๋ด๋ถ ๊ตฌ์กฐ ์ญ์ ๊ธฐ์ ๋ณํ์ ์ ์ฐํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ฒ ํจ์ผ๋ก์จ ๋น์ฆ๋์ค ๋ณํ์ ๋ฏผ์ฒฉํ๊ฒ ๋์ํ๊ฒ๋ ํด์ผ ํฉ๋๋ค.
์ด๋ฌํ ๋ชฉ์ ์ผ๋ก ๋ง์ดํฌ๋ก์๋น์ค ์ค๊ณ์ ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ(DDD) ๊ธฐ๋ฒ์ด, ๊ทธ๋ฆฌ๊ณ ๋ด๋ถ ์ํคํ ์ฒ์ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ๊ฐ ์ฃผ๋ก ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ์ด๋ฒ ๊ฐ์์์๋ ์ด๋ฌํ ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ๋ฐ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ง์ฑ ์๊ณ ์ ์ฐํ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ
(Domain-Driven Design, DDD)
๋น์ฆ๋์ค ์ ๋ต, ๋๋ฉ์ธ ํจํด์ ์ค์ฌ์ผ๋ก ์ํํธ์จ์ด ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ถํ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก
ํฅ์ฌ๊ณ ๋ ์ํคํ
์ฒ
(Hexagonal Architecture)
๋๋ฉ์ธ ์ค์ฌ์ผ๋ก ์์กด์ฑ์ ํ๋ฆ์ด ์ธ๋ถ๋ก ๋๊ฐ์ง ์๋๋ก ๊ด๋ฆฌํ๋ ์ํคํ ์ฒ ํจํด
๋ง์ดํฌ๋ก์๋น์ค ์ค๊ณ์
์ด๋ฒคํธ์คํ ๋ฐ์ ํ์ฉํ๊ณ ํ
๊ธฐ์ /์ค๊ณ ๋ฆฌ๋
๋ง์ดํฌ๋ก์๋น์ค ์ค๊ณ ๊ธฐ์ค ๋ฐ
๋ฐฉ๋ฒ์ ๋ํด ๊ณ ๋ฏผ ์ค์ธ
๋ง์ดํฌ๋ก์๋น์ค ๊ฐ๋ฐ์
๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ(DDD) ๋ฐ
๊ตฌํ์ ๊ด์ฌ์๋
๋ฐฑ์๋ ๊ฐ๋ฐ์
๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ - ์ ๋ต์ ์ค๊ณ์ ์ฌ๋ฌ ๊ฐ๋ (๋๋ฉ์ธ ๋ชจ๋ธ, ์๋ธ๋๋ฉ์ธ, ์ ๋น์ฟผํฐ์ค ๋ญ๊ท์ง, ๋ฐ์ด๋๋ ์ปจํ ์คํธ)์ ๋ํด ์์๋ด ๋๋ค.
๊ฐ์ฅ ์ฝ๊ฒ ์ฌํํ ๋ง์ดํฌ๋ก์๋น์ค ๋์ถ ๊ธฐ๋ฒ์ธ ์ด๋ฒคํธ ์คํ ๋ฐ ์ํฌ์ต์ ๋ํด ์ค๋ช ํฉ๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค ๋ด๋ถ์ ๋น์ง๋์ค ๋ก์ง์ ์ค๊ณํ๋ ์ฌ๋ฌ ํจํด(ํธ๋์ญ์ ์คํฌ๋ฆฝํธ, ์กํฐ๋ธ ๋ ์ฝ๋, ๋๋ฉ์ธ ๋ชจ๋ธ ๋ฑ)์ ์ค๋ช ํ๊ณ ์ด๋ค ์ ํ์ ํด์ผ ํ๋์ง ํ๊ตฌํฉ๋๋ค.
์ ํต์ ์ธ ๋ ์ด์ด๋ ์ํคํ ์ฒ(Layered Architecture)์ ํ๊ณ์ ํฅ์ฌ๊ณ ๋, ํด๋ฆฐ ์ํคํ ์ฒ์ ํน์ง, ๋น๊ต๋ฅผ ํตํด ๋ฐ๋์งํ ๋ง์ดํฌ๋ก์๋น์ค ๋ด๋ถ ๊ตฌ์กฐ์ ๋ํด ์๊ฐํด ๋ด ๋๋ค.
๋์๋์ฌ ์์คํ ์ด๋ ์ฃผ์ ๋ฅผ ๊ฐ์ง๊ณ ์จ๋ผ์ธ ๋๊ตฌ Miro๋ฅผ ํตํด ์ด๋ฒคํธ ์คํ ๋ฐ ์ํฌ์ต ์ค์ต์ ํด๋ด ๋๋ค.
์ด๋ฒคํธ ์คํ ๋ฐ์ ํตํด ์๋ณ๋ ๋ฐ์ด๋๋ ์ปจํ ์คํธ์ ๊ด๊ณ๋ฅผ ์ ์ํ๊ณ ํ๋ณด ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ ์ํฉ๋๋ค.
๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ์ ์ ์ ์ ์ค๊ณ ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ ๋ง์ดํฌ๋ก์๋น์ค์ ์ฌ์ฅ ๋๋ฉ์ธ ๋ชจ๋ธ์ ์ค๊ณ ํด ๋ด ๋๋ค.
Q&A ๐ฌ
Q. ๊ฐ์์์ ์ด๋ก ๊ณผ ์ค์ต์ ๋ชจ๋ ํด๋ณด๋์?
๋ณธ ๊ฐ์์ ์ด๋ฐ๋ถ์์๋ ์ด๋ก ์, ํ๋ฐ๋ถ์์๋ ์ค์ต์ ๋ค๋ฃน๋๋ค. ๋๋ต์ ์ธ ๊ฐ๋ ์ ์ดํดํด๋ณธ ๋ค์ ์ค์ต์ ํตํด ์ด๋ป๊ฒ ๊ธฐ์ ๋ค์ด ์ฐ์ด๋์ง ์ดํดํ ์ ์๋๋ก ๊ตฌ์ฑํ์์ต๋๋ค.
Q. ์ค๋ฌด ๊ฒฝํ์ด ์๋ ์ทจ์ค์ ๋๋ ๋น์ ๊ณต์๋ ๋ค์ ์ ์๋์?
ํด๋ผ์ฐ๋ ๊ฒฝํ์ด ์๋๋ผ๋ ์ค์ ๋ ๊ฑฐ์ ๊ฒฝํ์ด ์๋ ๊ฐ๋ฐ์๋ผ๋ฉด ์ ๊ทผํ ์ ์๋ ์์ค์ ๋๋ค. ๊ทธ๋ฌ๋ ์ค๋ฌด ๊ฒฝํ์ด ์๋ค๋ฉด ์ฉ์ด ๋ฑ์ ์ด๋ ค์์ ๊ฒช์ ์๋ ์์ต๋๋ค. ๋ค๋ง ๋น์ ๊ณต์๋ผ๋ ๋ถํธ์บ ํ๋ฅผ ์ด์ํ ๊ฒฝํ์ด ์๋ค๋ฉด ๋ฌด๋ํ๊ฒ ์๊ฐํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
Q. ์์ ๋ด์ฉ์ ์ด๋ ์์ค๊น์ง ๋ค๋ฃจ๋์?
๋ณธ ๊ฐ์๋ ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ๋ฅผ ์ํ ๋ง์ดํฌ๋ก์๋น์ค์ ์ ๋ฐ์ ์ธ ์ด๋ก ์ ๋ฐฐ์ฐ๊ณ , ์ค์ ์ ๋ฌด ์์ ๋ฅผ ํตํด ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋์ถํ๋ฉฐ ๊ทธ ๋ด๋ถ๋ฅผ ์ค๊ณํด ๋ด ๋๋ค. ๊ตฌํ์ ๋ณ๋ ๊ณผ์ ์ผ๋ก ์ค๋นํ๊ณ ์์ต๋๋ค.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
๋ฐฑ์๋ ๊ฐ๋ฐ์
๋ง์ดํฌ๋ก์๋น์ค ๊ฐ๋ฐ์
์๋ฆ๋ค์ด ์ค๊ณ๋ฅผ ์ถ๊ตฌํ๋ ๊ฐ๋ฐ์
์ค๊ณ์ ๊ด์ฌ์๋ ๊ฐ๋ฐ์
์ ์ ์ง์,
ํ์ํ ๊น์?
๋ง์ดํฌ๋ก์๋น์ค ๊ธฐ๋ณธ๊ฐ๋
๊ฐ์ฒด์งํฅ์ ๋ํ ์ดํด
UML
2,448
๋ช
์๊ฐ์
127
๊ฐ
์๊ฐํ
53
๊ฐ
๋ต๋ณ
4.6
์
๊ฐ์ ํ์
3
๊ฐ
๊ฐ์
ํ ๊ตญ๋ด SI์ ์ฒด ์ํํธ์จ์ด ์์ง๋์ด(SA,AA)
๋ค์์ ๋๊ท๋ชจ ์ฐจ์ธ๋ ํ๋ก์ ํธ ๊ฐ๋ฐ๋ฐฉ๋ฒ๋ก ๋ฐ ์ค๊ณ๋ฐฉ๋ฒ ๋ฆฌ๋ฉ
๋ช ์ง๋, ์์ธ๊ณผํ๊ธฐ์ ๋ ํด๋ผ์ฐ๋,SW๊ณผ๋ชฉ ๊ฐ์
SK C&C,ํ๊ตญ์ ๋ณด๊ธฐ์ ์ฐ๊ตฌ์(kitri), LG์ ์ MSA๊ณผ์ ๊ฐ์
๋ฉํฐ์บ ํผ์ค, ํ๊ตญํ์คํํ, ํ๊ตญํ์งํํ MSA ๊ณผ์ ๋ฉํ ๋ง,์คํ๋ก์ค์์นด๋ฐ๋ฏธ ์น๊ฐ๋ฐ ๊ณผ์ ๋ฉํ ๋ง
์ ๋ฌธ๋ถ์ผ : ๊ฐ๋ฐ๋ฐฉ๋ฒ๋ก , ์ํํธ์จ์ด ์ํคํ ์ฒ/์ค๊ณ/๊ฐ๋ฐ ๊ธฐ๋ฒ
22๋ , ์ํค๋ถ์ค "๋๋ฉ์ธ์ฃผ๋๋ก ์์ํ๋ ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ๋ฐ", ์ ์
๊ตญ๊ฐํ์๊ต์ก์งํฅ์, K-MOOC "Microservice ์ค๊ณ ๋ฐ ๊ตฌํ " ๊ฐ์ข ๊ฐ๋ฐ ๋ฐ ๊ฐ์
์ ์ฒด
37๊ฐ โ (8์๊ฐ 45๋ถ)
ํด๋น ๊ฐ์์์ ์ ๊ณต: