๊ฐ์
์ํคํ ์ฒ๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๊ณต๋ถํ๋ฉด์ ๊ฐ์ฅ ํต์ฌ์ ์ผ๋ก ๋๊ผ๋ ๋ง๋ค์ด ์๋ค.
"์ํํธ์จ์ด(๊ธฐ์ )๋ ๋๊ตฐ๊ฐ์ ํ์๋ก ์ธํด์ ์์๋๋ค."
"์ํํธ์จ์ด(๊ธฐ์ )๋ ์ฌ์ฉ์์๊ฒ ์๋ก์ด ๊ฐ์น๋ฅผ ์ ๊ณตํด์ผ ํ๋ค."
"์ํํธ์จ์ด(๊ธฐ์ )๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณํํ๋ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ ์ ์ํด์ผ ํ๋ค. "
๋ชจ๋ ๊ธฐ์ ์ด๋ ์ฐ์ , ์์ดํ ์ ๋์ค์ ๋์ฆ์ ์ํด์ ๊ฐ๋ฐ๋๊ณ , ๋ง๋ค์ด์ง๊ณ ๊ทธ ๊ธฐ์ ์ ์ด์ฉ์์๊ฒ ์๋ก์ด ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ฏ๋ก์จ ์กด์ฌ ๊ฐ์น๋ฅผ ์ฆ๋ช ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฐ์ด ์ง๋๋ฉด์ ์ด์ฉ์๊ฐ ์ํ๋ ๋ฐฉํฅ์ฑ๊ณผ ๋ชจ์ต์ด ๋ฌ๋ผ์ง ๋ ๊ทธ ๋ณํ์ ๋ง์ถฐ ๊ธฐ์ ๋ ๋ณํํด์ผ ์ด์๋จ์ ์ ์๊ณ , ์์ฅ์์ ์ง์ ๊ฐ๋ฅํด์ง๊ณ , ํ ๊ธฐ์ ๊ณผ ๊ฒฌ์ฃผ์ด๋ ๊ฒฝ์๋ ฅ์ด ์๊ธด๋ค.
๋ณํ์ ์ ์ํ๋ ์ํํธ์จ์ด์ ํน์ง์ 3๊ฐ์ง ํน์ฑ์ ํ์๋ก ํ๋ค.
์ ์ฐ์ฑ, ํ์ฅ์ฑ, ์ ์ง๋ณด์์ฑ
๋ณํ์ ์ ์ฐํ๊ฒ ๋์ฒํ ์ค ์์์ผํ๊ณ , ๋์ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ ํ์ฅํ ์ ์์ด์ผํ๊ณ , ์ ์ง ๋ณด์๊ฐ ์ ๋์ด์ผ ์ ์ ๋ฆฌ์์ค๋ก๋ ๋น ๋ฅด๊ฒ ๋ณํํ ์ ์๋ค.
์ด๋ ๊ฒ ์ ์ฐ์ฑ, ํ์ฅ์ฑ, ์ ์ง๋ณด์์ฑ์ด ๋ฐ์ด๋๋ ค๋ฉด ๋ฐ๋ก ํต์ฌ ๊ฐ์น๊ฐ ์๋๋ฐ, ๊ฒฐํฉ๋๊ฐ ๋ฎ์์ผํ๋ค๋ ๊ฒ์ด๋ค.
๊ฒฐํฉ๋๊ฐ ๋๋ค๋ ๊ฑด, ๊ฐ์ฒด๋ ๋ชจ๋, ๊ณ์ธต ๋ฑ์ด ์๋ก ์์กด์ฑ์ด ๋๋ค๋ ๊ฒ์ด๊ณ , ์์กด์ฑ์ด ๋์ผ๋ฉด ๋ณ๊ฒฝ์ ์ ์์ด์, ๋ณ๊ฒฝ์ฌํญ์ ์ ํํด์ผํ๋ ๋ถ๋ถ๋ค์ด ๋ง์์ง๋ค๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ํน์ ํ ๋ณ๊ฒฝ์ ์ ์์ด, ๋ง์ ๋ถ๋ถ์ ์์ ํด์ผํ๋ ๊ฒ์ ์ ์ง ๋ณด์์ฑ์ด ๋ฎ๋ค๋ ๊ฒ์ด๊ณ , ๊ฐ์ฒด ๋๋ ๋ชจ๋๊ฐ์ด ๊ฐํ๊ฒ ์ ์ฐฉ๋์ด ์๊ธฐ์ ์ ์ฐ์ฑ๋ ๋ฎ๊ณ , ํ์ฅํ๊ธฐ์๋ ์ด๋ ต๋ค.
๊ทธ๋์ ๋ด๊ฐ ์๊ฐํ๊ธฐ์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ์ ๋ฐ๋ก ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ค๋ ์ ์ ์๊ณ , ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ธฐ์ํด ๋ง์ ๊ธฐ์ ๋ค์ด ๋์๋ค๊ณ ์๊ฐํ๋ค.
๋ง์ ์ฑ ์์๋ ๋์จํ ๊ฒฐํฉ๊ณผ ๋์ ์์ง๋๋ฅผ ๋ง์ด ์๊ธฐํ๋ค. ์ฐ๊ด์ฑ์ด ๋์ ๋๋ ๊ฐ์ ์ฑ ์์ด ์๋ ์์๋ค์ ํ๋๋ก ํฉ์ณ ์์ง๋๋ฅผ ๋์ด๊ณ , ๋ค๋ฅธ ์ฑ ์๊ณผ ์ญํ ์ด ์๋ ๊ฐ์ฒด๋ค๊ณผ๋ ์์กด๋๋ฅผ ๋ฎ์ถฐ ๋์จํ๊ฒ ๊ฒฐํฉํด์ผ ํ๋ค.
๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ - Monolithic Architecture
MSA ๊ฐ ๋์ค๊ธฐ ์ ์ ๋ง์ IT ์ ๊ณ์์ ๋ชจ๋๋ฆฌ์์ผ๋ก ์์คํ ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ถํ๋ค. ๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ๋ MSA ๊ฐ ๋ํ๋๊ธฐ ์ ๊น์ง ์ง์นญํ๋ ์ฉ์ด ์กฐ์ฐจ ์กด์ฌํ์ง ์์๋ค. ์๋ํ๋ฉด ๋ฐ๋ก ๊ตฌ๋ถ์ง์ด์ ๋ถ๋ฅผ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ชจ๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์ข ๋ฅ์ ์๋น์ค๊ฐ ํ๋์ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ์ํคํ ์ฒ๋ฅผ ์๋ฏธํ๋ค.
์ด๋ฐ ์์คํ ์ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ๋๋ค.
- ํ๋์ ์ฃผ์ ํ๋ก์ธ์ค๋ก ๊ตฌ์ฑ
- ๋ชจ๋ ์๋น์ค๊ฐ ํ๋์ DB endPoint๋ฅผ ์ฌ์ฉ
- ๋จ ํ์ค์ ์ฝ๋ ์์ ์ด ๋๋๋ผ๋, ๋ชจ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฐฐํฌ๊ฐ ํ์
- ์ฑ๊ธ ํน์ ๋ฉํฐ ๋ชจ๋๋ก ๊ตฌ์ฑํ ์ ์์ง๋ง CI ์ ๋จ์๊ฐ ๋ฌ๋ผ์ง ๋ฟ, CD์ ๋ฒ์๋ ์ฌ์ ํ ์ ์ฒด
๋ชจ๋๋ฆฌ์ค ์ํคํ ์ฒ๊ฐ ๊ณผ๊ฑฐ์ ์ผ๋ฐ์ ์ด์๋ ์ด์ ๋ ์ฒซ ๋ฒ์งธ๋ก ๊ฐ๋ฐ์ด ์ฝ๋ค๋ ์ ์ด๋ค. ๊ฐ๋ฐํ๊ณ ๋น๋ํ๊ณ ๋์จ ๊ฒฐ๊ณผ๋ฌผ์ ์๋ฒ์์ ์คํ๋ง ์ํค๋ฉด ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ ๋ฒ์งธ๋ก๋ ๊ณ ๋ คํ ์ฌํญ์ด ์ ๋ค๋ ์ ์ด๋ค. ์ธ ๋ฒ์งธ๋ก๋ ๊ณผ๊ฑฐ์ IDC ์ ๋ฐฐํฌํ์ฌ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ ์ผ๋ฐ์ ์ด์๊ณ , ๋น์ผ ์๋ฒ ๋ฆฌ์์ค๋ฅผ ์ต์ ํ ํด์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ์ ์ฅ์ ์ผ๋ก๋ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ๊ฐ ์ฝ๊ณ ๊ฐ๋คํ๋ ์ ์ด๊ณ , ์ด๋์ ํจํค์งํด๋ ์๊ด์๊ณ , ์ด๋ป๊ฒ๋ ๋ฐฐํฌ๋ง ํ๋ฉด ๋๋ค๋ ์ , ๊ณตํต ๋ชจ๋ ๋ฑ์ ํ์ฉํ๊ธฐ ๋งค์ฐ ์ฝ๋ค๋ ์ , ์ฝ๋ค๋ ํน์ง ๋๋ถ์ ๋น ๋ฅด๊ฒ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ์ ์๋ค๋ ์ ๋ฑ์ด ์๋ค.
๋จ์ ์ผ๋ก๋, ์ํ ํ์ฅ์ด ๋๋ฌด ์ด๋ ต๋ค. (๋จ์ผ DB์ ๋ํ ์์กด์ฑ์ด ๋๋ฌด ํฌ๋ค.) ํ๋์ ์ดํ๋ฆฌ์ผ์ด์ ํ๊ฒฝ์ด ๋ณดํธํ๋์ด ์์คํ ์ด ๋งค์ฐ ์ปค์ง๋ค๋ฉด ์ปค๋ฎค๋์ผ์ด์ ์ฝ์คํธ๊ฐ ๋งค์ฐ ๋์์ง๋ค. ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ์ฌ ์์ ์ ๋ํ ๋ถ๋ด๊ฐ์ด ์ฆ๊ฐํ๋ค. ๋๊ท๋ชจ ์ดํ๋ฆฌ์ผ์ด์ ํ๊ฒฝ์์๋ ๋จ์ํ ์์ ์ฌํญ์ผ์ง๋ผ๋, ๋ฐฐํฌ๊น์ง ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์๋ค. ์ฅ์ ์, ์ ์ฒด ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํฅ์ ํฌ๊ฒ ๋ฐ๊ฒ ๋๋ค.
์ด๋ฌํ ๋จ์ ์ ์์กด์ฑ์ด ๋์, ์ฆ ๊ฒฐํฉ๋๊ฐ ๋๊ธฐ์ ๋ฐ์ํ๋ ๋ฌธ์ ์ด๋ค.
์ด์ฉ์์ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ, ๋น ๋ฅด๊ฒ ํ์ฅํด์ผํ๊ณ , ์ ์ฐํ ๋์ฒ๋ฅผ ํด์ผํ๊ณ , ์ ์ ์์ ์ผ๋ก ๋น ๋ฅด๊ฒ ๋ฐฐํฌํด์ผ ํ๋๋ฐ ์ด ์ ์ด ํ๋ค์๋ค๋ ๋ป์ด๋ค.
MSA - Micro Service Architecture
AWS ์์์ผ๋ก ํด๋ผ์ฐ๋ ์ปดํจํ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์์ํ๊ณ , ๋์ปค์ ์ฟ ๋ฒ๋คํฐ์ค์ฒ๋ผ ๊ฐ์์ปจํ ์ด๋, ์ค์ผ์คํธ๋ ์ด์ ๊ธฐ์ ๋ค์ด ๋ฑ์ฅ ํ๋ฉด์ MSA ๋ก ๋ณํํ ์ ์๋ ํ๊ฒฝ์ด ์ ๊ณต๋๋ค.
๋ชจ๋๋ฆฌ์ ๊ด๊ฒฝ์์๋ ๋น๊ต์ ํ์์ฑ์ด ํฌ์ง ์์๋ ๊ฒ๋ค ์๋ฅผ ๋ค์ด, CI/CD ํ์ดํ ๋ผ์ธ, ์๋ํ, API GateWay ๊ธฐ์ ๋ค์ด ์๊ฐ์ด ์ง๋๋ฉด์ ๊ธฐ์ ์ ๋ฐ์ ์ผ๋ก ํ๋ค์ด ๋ฎ์์ง๊ฒ ๋๊ณ , MSA ๋ก์ ์ ํ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ์๋ค.
MSA ๋ Micro Service Architecture ๋งํ๋ค. MSA ๋ฅผ ์ ํํ ์ง์นญํ๋ ๊ฐ๋ ์ ์์ง๋ง, ํต์ฌ์์๋ค์ ์๋ค. ๊ฐ๋ฐ๋จ์๋ฅผ ์๋น์ค๋ก ์ธ์งํ๊ณ ์๋น์ค์ ์๋น์ค๋ฅผ ์๋ก ๋ถ๋ฆฌ/๋ถํดํ์ฌ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ, ๋ฐฐํฌํ๋ค. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ ์๋น์ค ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ฒ ๋๋ค. ์๋น์ค ๊ฐ์ ๊ท๊ฒฉํ๋ ํ๋กํ ์ฝ(์ธํฐํ์ด์ค)๋ฅผ ์ฌ์ฉํ์ฌ ํต์ ํ๊ณ ๋ด๋ถ ๊ตฌํ ์ฌํญ์ ๋ชจ๋ ์ถ์ํํ๋ค.
๊ฐ๊ฐ์ ์๋น์ค๋ ๋ ๋ฆฝ๋ ๊ฐ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ๋๋ค.
์๋น์ค๋ฅผ ํ ๋ฐ ๋ญ์ณ ํ๋์ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์๋ํ๋ ๋ชจ๋๋ฆฌ์ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋นํด ์๋น์ค๋ฅผ ๋ถ๋ฆฌ/๋ถํดํ์ฌ ๊ฐ๊ฐ์ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋ฐฐํฌํ๋ ๊ฒ์ด MSA ์ ํต์ฌ์ด๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ๋น ๋ฅด๊ฒ ์์ ํ๊ฑฐ๋ ํน์ ์๋น์ค๋ฅผ ์ถ๊ฐํ์ฌ ๋น ๋ฅธ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํด์ง๋ค. ์ด๊ฒ์ ๋์ Business Capabilities ๋ฅผ ๊ฐ๊ฒ ๋๋ค.
Business Capability ๋ ์กฐ์ง์ด ๋น์ฆ๋์ค์ ๋ํด ์ผ๋ง๋ ๋น ๋ฅด๊ณ ์ ์ฐํ๊ฒ ๋ณํ์ ๋์ํ ์ ์๋์ง์ ๋ํ ๋ฅ๋ ฅ์ผ๋ก, ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ์ ๋ํ ๋น ๋ฅธ ๋์ฒ ๋ฅ๋ ฅ์ผ๋ก ๋งํ ์ ์๋ค. ์ฌ์ฉ์๊ฐ ํน์ ์๋น์ค์์ ์ด๋ค ๋ถ๋ถ์ด ์์ฌ์ ์ด๋ค ๋ถ๋ถ์ ์ถ๊ฐํ๊ธธ ์ํ ๋ ๊ทธ ์๊ตฌ์ฌํญ์ ๋น ๋ฅด๊ฒ ๋ฐ์๋๋ฆฌ๊ณ ์๋น์ค๋ฅผ ์์ ๋ฐ ๋ณด์ํ ์ ์๋ ๋ฅ๋ ฅ์ ๋งํ๋ค. ๋น ๋ฅธ ๋์ฒ ๋ฅ๋ ฅ์ ๋์ข ์ ๊ณ์์ ๊ฒฝ์๋ ฅ์ ๊ฐ์ถ ์ ์๊ฒ ํ๋ค.
๋ฌด๊ฑฐ์ด ์ดํ๋ฆฌ์ผ์ด์ ์ผ ๋ ๋ฐฐํฌํ๋ ๋ฐ์ ๋ง์ ์๊ฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ํฌ์ํด์ผํ์ง๋ง, ์๋น์ค๊ฐ ๋ถ๋ฆฌ๋์ด ์ดํ๋ฆฌ์ผ์ด์ ์ด ๊ฐ๋ฒผ์์ง์ ๋ฐ๋ผ ์ฆ์ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํด์ง๊ณ , ์ด๋ ์๊ตฌ์ฌํญ์ ๋น ๋ฅด๊ฒ ๋ฐ์ํ ์ ์๋ค๋ ๊ฑธ ๋งํ๋ค. ๊ทธ๋ฆฌ๊ณ ์๋น์ค๊ฐ ๋ถ๋ฆฌ ๋์ผ๋ฏ๋ก ํน์ ์๋น์ค์ ํธ๋ํฝ์ด ๋ชฐ๋ฆฌ๊ฑฐ๋, ๋ฌธ์ ๊ฐ ์์ ๋ ํน์ ์๋น์ค ๋ถ๋ถ๋ง ์ํ์ ํ์ฅ์ ํ์ฌ, ๋ถํ์ํ ๋ฆฌ์์ค ๋ญ๋น๋ฅผ ์ค์ผ ์ ์๊ฒ ๋๋ค. ์ด๋ ๋์ ํ์ฅ์ฑ์ ๋งํ๋ค. ๋ง์ง๋ง์ผ๋ก ์๋น์ค๊ฐ ํ ๊ตฐ๋ฐ์ ๋ญ์ณ์ ธ ์์ง ์๊ณ , ๋ถ๋ฆฌ ๋๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ ์ฌํญ ์ ํ ๋ฒ์๊ฐ ์ค์ด๋ค์ด ์ ์ง ๋ณด์๊ฐ ํจ์ฌ ์์ํด์ง๋ค.
MSA ๊ฐ ๋ง๋ฅ์ฒ๋ผ ๋ณด์ด์ง๋ง, ๋น๋กํด์ ์ฃผ์ํด์ผํ๋ ์ฌํญ๋ ๋ง๋ค. ์ฒซ ๋ฒ์งธ๋ก ์๋น์ค๊ฐ ๋ถ๋ฆฌ ๋์ด ์๊ธฐ ๋๋ฌธ์ ํ์ฐ์ ์ผ๋ก ๋ถ์ฐ์์คํ ์ํคํ ์ฒ๋ฅผ ๊ฐ๊ฒ ๋๋ค. ๋ชจ๋๋ฆฌ์์์ ํจ์ ํธ์ถ๋ก ์ฝ๊ฒ ์ป์ ๋ฐ์ดํฐ๋ฅผ ์ด์ ๋คํธ์ํฌ ํต์ ์ ํด์ผํ๋ค.(dump ํ์ดํ, ๋ฉ์์ง ํ, ์ฌ๋ฌ ํ๋กํ ์ฝ ์์ฉ ๋ฑ๋ฑ) ๋คํธ์ํฌ ํต์ ์ ํญ์ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ด์๋ํ ๋ณด์์ฑ ์ด ์ค๋น ๋์ด ์์ด์ผ ํ๋ค.(๋ชจ๋ํฐ๋ง, ๊ฐ์ง, ์๋๋ณต๊ตฌ ๋ฑ๋ฑ)
๋ํ ์๋น์ค๊ฐ ๊ฐ๊ฐ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ๋ ๋ชจ๋๋ฆฌ์์์ @Transactional ์ด๋ ธํ ์ด์ ์ผ๋ก ํด๊ฒฐ๋๋ ๋ฌธ์ ๋ค์ด MSA ์์ ๋ณด์ ํธ๋์ญ์ ๊ฐ์ ๋ค๋ฅธ ๊ณผ์ ์ ๋ฐ๋์ ํ์๋ก ํ๋ค.
์ด์ฒ๋ผ MSA ์์ ๊ฐ๋ฐ์ ๋งค์ฐ ์ด๋ ต๊ณ , ๊ณ ๋ คํ ์ฌํญ๋ ๋ง์ผ๋ฉด์, ๋ง์ ์ง์์ ์๊ตฌํ๋ค.
ํ์ง๋ง MSA๋ก ์ธํ ๊ณ ํต๊ณผ ํ๋ฆ ๋ณด๋ค MSA ๋ก ์ธํ ์ด์ ์ด ๋ ํฌ๊ธฐ์ ๋ง์ IT ์๋น์ค ํ์ฌ์์ MSA ๋ก ์ ํ์ ์๋ํ๊ณ ์๋ค.
ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ - Hexagonal Architecture
MSA ์์คํ ์ํคํ ์ฒ์์ ํต์ฌ์ ์๋น์ค๋ฅผ ๋ถ๋ฆฌ/๋ถํด ํ์ฌ ๊ฒฐํฉ๋๋ฅผ ๋์จํ๊ฒ ํ๊ณ , ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ์ผ๋ก Business Capability ๋ฅผ ๋์ด๊ณ , ์ฆ์ ๋ฐฐํฌ ๋ฑ์ด ํน์ง์ด๋ผ๊ณ ๋งํ๋ค.
์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ, ๋ฎ์ ๊ฒฐํฉ๋์ MSA ํน์ฑ์ ๊ฐ Micro Service ์์์๋ ํ์ํ๊ฒ ๋๋ค. ๊ทธ๋์ ํ์ฅ์ฑ์ด ๋ฐ์ด๋๊ณ ์ ์ง๋ณด์๊ฐ ์ฌ์ด ์ํํธ์จ์ด ์ํคํ ์ฒ๋ฅผ ์๊ตฌํ๊ฒ ๋๋ค. ์ด๋ ๋ง์ด ์ฐ์ด๋ ์ํํธ์จ์ด ์ํคํ ์ฒ๋ก Hexagonal Architecture (ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ)๊ฐ ์๋ค.
๊ธฐ์กด์ ๋๋ฆฌ ์ฐ์ด๋ ์ํคํ ์ฒ๋ก๋ Layered Architecture๊ฐ ์๋๋ฐ, ์ฌ๋ฌ๊ฐ์ ๊ณ์ธต์ผ๋ก ๋๋์ด ๊ฐ ๊ณ์ธต์์ ํ๋ ์ผ์ ํ์ ์์ผ ๊ณ์ธต๋ณ๋ก ๋ด๋น ์ ๋ฌด์ ๋ง๊ฒ ๊ฐ๋ฐํ๋ ๊ฒ์ด๋ค. ๊ฐ ๊ณ์ธต ๋ด์์๋ ์ฝ๋ ์์ ๊ณผ ์ ์ง๋ณด์ ๋ฑ์ด ๋น๊ต์ ์ฝ๊ณ , ๊ณ์ธต ๊ฐ ์ ๊ทผ์ด ์์ ๋กญ๋ค.
Hexagonal Architecture (ํฅ์ฌ๊ณ ๋ ์ํคํ
์ฒ)
๊ฐ ๊ณ์ธต์์ ํ๋ ์ผ๋ค์ "๋ด๋ถ์ ์ธ๋ถ" ๋ผ๋ ๊ฐ๋
์ผ๋ก ๋๋์ด ๊ฐ๊ฐ์ ๋ง๋ ๋ณ๋์ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๋ค.
"๋ด๋ถ"์ ๋ก์ง์ ์ค์ง "์ธ๋ถ" ์ธํฐํ์ด์ค๋ฅผ ํตํด์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ์ธ๋ถ์ ์ธํฐํ์ด์ค๋ฅผ ํฌํธ, ํฌํธ๋ฅผ ์ฌ์ฉํ๋ ๊ตฌํ์ฒด๋ฅผ ์ด๋ํฐ๋ผ๊ณ ๋ถ๋ฌ ํฌํธ & ์ด๋ํฐ ์ํคํ
์ฒ๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค. ์ฆ, ์ธ๋ถ ์๋น์ค์์ ์ํธ ์์ฉ(์ด๋ํฐ) ๋ ๋น์ฆ๋์ค ๋ก์ง๊ณผ์ ์์
์ ์ ์ํ ์ธํฐํ์ด์ค(ํฌํธ) ๋๋ง ์๋ก ํต์ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋น์ฆ๋์ค ๋ก์ง์, ์ค์ง ์ธ๋ถ์์ ๋ด๋ถ ๋ฐฉํฅ์ผ๋ก๋ง ํธ์ถ์ด ๊ฐ๋ฅํ๊ณ , ๊ฒฝ๊ณ ๊ฐ ์ด๋์ด ์ ํ๋๋ค.
- ์ธ๋ฐ์ด๋ ์ด๋ํฐ → ์ธ๋ฐ์ด๋ ํฌํธ → ๋น์ฆ๋์ค ๋ก์ง
- ๋น์ฆ๋์ค ๋ก์ง → ์์๋ฐ์ด๋ ํฌํธ → ์์๋ฐ์ด๋ ์ด๋ํฐ
์๋ ๊ทธ๋ฆผ์ ์ธ๋ถ ํด๋ผ์ด์ธํธ ์๋ฒ์์ HTTP ์์ฒญ์ ๋ฐ์ DB์ CRUD ํ๋ ๊ณผ์ ์ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ์ ํ๋ฆ์ผ๋ก ๋์ํํ ๋ค์ด์ด๊ทธ๋จ์ด๋ค.
ํฐ ๋ค๋ชจ์ ๊ตฌํ์ฒด๋ค์ ์์ ๋ค๋ชจ์ ์ธํฐํ์ด์ค์ธ ํฌํธ๋ฅผ ์ด์ฉํ์ฌ ํต์ ํ ์ ์๊ณ , ํฌํธ๋ฅผ ๊ตฌํํ ๊ตฌํ์ฒด๋ค์ ์ธํฐํ์ด์ค์ ์ ์๋ ๋ด์ฉ์ ๊ตฌํํ๋ค.
๋ฌผ๋ก ๊ธฐ๋ฅ๋ณ๋ก ๊ฐ๊ฐ์ ์ด๋ํฐ์ ํฌํธ๋ก ๋ถ๋ฆฌํ์๊ธฐ์ ํด๋์ค ํ์ผ๋ ๋ง์์ง๊ณ , ์ฝ๋์ ์์ด ๋ง์์ง ์ ์๋ค๊ณ ์๊ฐ์ด ๋ค ์ ์์ง๋ง, ์ด๋ฐ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ๋ ์ด๋ํฐ๋ฅผ ํตํด ์ธ๋ถ ์๋น์ค์ ์์กด์ฑ์ ๋ถ๋ฆฌํ์ฌ ์ธ์ ๋ ์ฝ๊ฒ ๊ต์ฒดํ์ฌ ์ ์ฐํ ํ์ฅ์ฑ ์๋ ๋์ฒ๊ฐ ๊ฐ๋ฅํ๋ค.
๋, ํฌํธ๋ฅผ ํตํด์ ๋ด๋ถ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ธํฐํ์ด์ค๋ฅผ ๋ถ๋ฆฌํ์ฌ ๋ด๋ถ ๋ก์ง์ ๊ตฌํ์ ์ธํฐํ์ด์ค์ ๋ฌด๊ดํ๊ฒ ๊ฐ๋ฐ ๊ฐ๋ฅํ๋๋ก ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๋์ ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ์ MSA ์ ๋ชฉ์ ์ฑ๊ณผ ๋ถํฉํ๊ฒ ๋๋ค.
'Architecture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด๋ฒคํธ ๋๋ฆฌ๋ธ ์ํคํ ์ฒ(EDA) (0) | 2024.11.04 |
---|---|
๊ฒฐ์ ์์คํ ๊ตฌ์กฐ์ ๊ฐํธ ๊ฒฐ์ ์์คํ ์ํคํ ์ฒ์์ ๊ณ ๋ คํด์ผ ํ๋ ์ (0) | 2024.10.14 |
๋๊ธ