MSA (Micro Service Architecture) ๋ ๋ฌด์์ผ๊น?
์๋ ํ์ธ์. ์ค๋์ Micro Service Architecture์ ๋ํด ์ด์ผ๊ธฐ ํด๋ณด๊ณ ์ ํฉ๋๋ค. ํ๋์ MSA๊ฐ ๊ต์ฅํ ํ๋์๋๋ฐ, ์์ฆ์ ๋ถ์๊ธฐ๊ฐ ์์ด์ง๋ ๋ฏํ์ฌ ์ค๋ ๋ธ๋ก๊ทธ์ ์ด ๊ธ์ ์ ๊ฒ ๋์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ํด์ Spring, Django ๋ฑ ๋ค์ํ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์ ํ๊ฒ ๋ฉ๋๋ค. ๋ณดํต ์ด๋ค ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํด์ ํน์ ๊ธฐ๋ฅ์ ์ํํ๋ API๋ฅผ ์ค๊ณํ๊ณ ๊ฐ๋ฐํ์ฌ ์๋น์คํ๋ ๊ฒ์ด ๊ธฐ๋ณธ ํํ์ด์ฃ .
์ด๋ ๊ฒ UI, ๋น์ฆ๋์ค ๋ก์ง, ๋ฐ์ดํฐ ๋ ์ด์ด๊น์ง ๋ชจ๋ ๊ฒ์ ํ ํต ์์์ ์ด์ํ๋ ๋ฐฉ์์ ๋ชจ๋๋ฆฌํฑ ์ํคํ ์ฒ๋ผ๊ณ ์ด์ผ๊ธฐ ํฉ๋๋ค. ํํ ํ๋ถ์์ ์ด์์ฒด์ ๊ณผ๋ชฉ์ ์๊ฐํด๋ณด์ ๋ถ๋ค์ด๋ผ๋ฉด, ๋ชจ๋๋ฆฌํฑ ์ปค๋์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ค์ด๋ณด์ จ์ํ ๋ฐ, ๊ฑฐ๊ธฐ์์ ๋์ค๋ ๋ชจ๋๋ฆฌํฑ๊ณผ ๋์ผํ ๋จ์ด์ ๋๋ค.
๊ทธ๋ฐ๋ฐ, ์ด๋ฌํ ๊ฐ๋ฐ ๋ฐฉ์์ ์กฐ๊ธ ๋จ์ ์ด ์กด์ฌํฉ๋๋ค. ๋ง์ฝ ๊ฐ๋ฐ์ ๋ฌธ์ ๊ฐ ์๊ฒจ ๋ค๋ฅธ API ํธ์ถ์ ํ๋ฉด์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด ๋ชจ๋ ์๋น์ค๊ฐ ์ค๋จ์ด ๋์ด ๋ฒ๋ฆฌ์ฃ . ์ด๋ฅผํ ๋ฉด, ์นดํ ์ฃผ๋ฌธ ์๋น์ค๋ฅผ ๋ชฉ์ ์ผ๋ก ํ ๋ฐฑ์๋ ์๋ฒ๊ฐ ์๋ค๊ณ ํ์ ๋, ์ฃผ๋ฌธ ์กฐํ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์๋ฒ๊ฐ ์ข ๋ฃ๊ฐ ๋์ด๋ฒ๋ฆฌ๋ฉด, ๋ค๋ฅธ ์๋น์ค ์กฐ์ฐจ๋ ์ฌ์ฉํ ์ ์๊ฒ ๋์ด๋ฒ๋ฆฌ๋ ๊ฒ์ด์ฃ .
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์๋น์ค๋ฅผ ๋ถ๋ฆฌํ์ฌ ๊ฐ๋ฐํ๊ณ , ์ด์ํจ์ผ๋ก์จ ํ๋์ ์๋น์ค์์ ์ค๋ฅ๊ฐ ๋ฐ์ํด๋ ๋ค๋ฅธ ์๋น์ค์๋ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง ์๋๋ก ํ๊ธฐ ์ํด MSA(Micro Service Architecture)๋ฅผ ์ด์ฉํ์ฌ์ผ ํฉ๋๋ค.
Micro Service Architecture
์ฐ๋ฆฌ๊ฐ MSA๋ฅผ ์ ํ๊ธฐ ์ ์ ๋ฐ๋์ ์ง์ด๋๊ณ ๊ฐ์ผํ ์ ์ด ์์ต๋๋ค. ๋น๋ก MSA๊ฐ ๋ชจ๋๋ฆฌํฑ ์ํคํ ์ฒ์ ๋จ์ ์ ๋ณด์ํ์๋ค๊ณ ๋ ํ์ง๋ง ๊ทธ๊ฒ์ด ๋ชจ๋ ์๋น์ค์ ์ ์ฉ๋๋ ๊ฒ์ ์๋๋๋ค.
์๋น์ค์ ํน์ง์ ๋ฐ๋ผ์ MSA๊ฐ ํจ์จ์ ์ผ ์๋ ์๊ณ , ๊ทธ๋ ์ง ์์ ์๋ ์์ต๋๋ค. ์์์ ์ค๋ช ํ๋ค์ํผ ํน์ ์๋น์ค๊ฐ ๊ฐ API๋ณ๋ก ์ข ์์ ์ด์ง ์๋ค๋ฉด, ๊ทธ๊ฒ์ MSA๊ฐ ํจ์จ์ ์ผ ์ ์๊ฒ ์ง๋ง ๋ชจ๋ ์๋น์ค๊ฐ ํ๋์ ํตํฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค๋ฉด ์คํ๋ ค ๊ฐ๋ฐ ํ๋ก์ธ์ค๊ฐ ๋ณต์กํด์ง๊ธฐ๋ง ํ ๋ฟ, ๋ชจ๋๋ฆฌํฑ ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋นํจ์จ์ ์ธ ๊ณผ์ ์ ํ์์ผ๋ก๋ง ๋จ๊ฒ ๋ฉ๋๋ค.
๋ง์ดํฌ๋ก ์๋น์ค ์ํคํ ์ฒ๋ ์ ์ด๋ฏธ์ง์ฒ๋ผ ๊ฐ ์ญํ ๋ณ๋ก ์๋ฒ๊ฐ ๋ถ๋ฆฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ํ์ชฝ API์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋ค๋ฅธ API๋ ์ ์์ ์ผ๋ก ์ด์๋์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ์์ ์ ์ผ๋ก ์๋น์ค๋ฅผ ์ด์ํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
๋ํ ๊ฐ API๋ณ๋ก ๊ฐ๊ธฐ ๋ค๋ฅธ ์ธ์ด, ๋ค๋ฅธ DBMS๋ฅผ ์ธ ์ ์์ด ๊ฐ๋ฐํ๋ ๋ฐ ์์ด์๋ ๋ค์์ฑ์ ๋์ผ ์ ์๊ณ , API ํน์ง ๋ณ๋ก ์์ ๋ก์ด ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ๋ ์ฅ์ ์ผ๋ก ๊ผฝ์ ์ ์๊ฒ ์ฃ .
๋ชจ๋๋ฆฌํฑ ์ํคํ ์ฒ๋ UI๊น์ง ๋ชจ๋ ์๋ฒ์ ๋ค์ด๊ฐ ์๋ ํํ์ฌ์ ๋ณดํต ์ด๋ฌํ ํํ์ ๊ฐ๋ฐ์ JSP+Spring ์กฐํฉ ํน์ HTML+PHP ์กฐํฉ์ด๋ผ๊ณ ์๊ธฐํฉ๋๋ค.
๋ชจ๋๋ฆฌํฑ ์ํคํ ์ฒ๋ ๋ชจ๋ ๊ฒ์ ํ๋์ ํตํฉ์ผ๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฐฐํฌ๊ฐ ์ฝ์ต๋๋ค. ์ด๋ฅผ ํ ๋ฉด JSP + Spring ์กฐํฉ์ผ๋ก ํ์ฌ๊ธ war ํ์ผ๋ก ๋ฐฐํฌํ๋ฉด ๋ฐฐํฌํ war ํ์ผ๋ง์ Tomcat ๋ฑ์ WAS์ ์ฌ๋ฆฌ๋ฉด ๋ฐ๋ก ์ด์์ด ์์๋๋ ํํ์ธ ๊ฒ์ด์ฃ .
ํ์ง๋ง ๋ง์ดํฌ๋ก ์๋น์ค ์ํคํ ์ฒ๋ ๊ฐ๊ธฐ API๋ณ๋ก ์๋ฒ๊ฐ ๋ค๋ฅด๊ฒ ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋จ์ํ ํ์ผ ํ๋๋ก ๋ฐฐํฌํ ์๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ์๋น์คํ ์ ์๋ ํ๊ฒฝ์ผ๋ก ๋ง๋ค์ด์ฃผ๊ธฐ ์ํด Docker compose ๋ด์ง, Docker Swarm ๋ฑ์ ์ปจํ ์ด๋๋ฅผ ๋ณ๋๋ก ์ฌ์ฉํ์ฌ ์ด์ ํ๊ฒฝ์ ์ง๋ํ์ฌ์ผ ํฉ๋๋ค.
๋ง์น๋ฉฐ...
์ฌ๊ธฐ๊น์ง MSA์ ๋ํ ๊ฐ๋จํ ์ด์ผ๊ธฐ๋ฅผ ๋ค๋ค๋ดค์ต๋๋ค. ๋น๋ก ๋ด์ฉ์ ๋ณ ๊ฑฐ ์์ง๋ง ์ด๋ป๊ฒ ์ค๊ณํ๋์ง์ ๋ฐ๋ผ์๋ ์ด ๊ธ์ ํด๋น๋ ์ด๋ฏธ์ง๋ณด๋ค ๋ ํฌ๊ณ ๋ณต์กํ๊ฒ๋ ์ค๊ณ๊ฐ ๋ ์ ์๋ ๋ถ๋ถ ์ค์ ํ๋๋ผ๊ณ ๋ง์์ ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ํ ๊ฐ์ง๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํ๊ฒ ๋๋ฉด ๋ ธ๋์ ์๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ด์ ์ธก๋ฉด์์ ๋ดค์ ๋๋ ๋ชจ๋๋ฆฌํฑ ์ํคํ ์ฒ๊ฐ ์ฅ์ ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ๋ฐ๋๋ก MSA๋ ํด๋น API ์์ ๋ฐ๋ผ์ ๋ ธ๋๊ฐ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ํฐ๋ง ํด์ผํ๋ ๊ฐฏ์๊ฐ ๊ทธ๋งํผ ๋ง์์ง๋ ๊ฒ์ ๋จ์ ์ผ๋ก ๋ณผ ์ ์๊ฒ ์ฃ .
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ๋ฌด์กฐ๊ฑด ์ข๋ค๊ณ ์ฑํํ๊ธฐ ๋ณด๋จ, ์ถฉ๋ถํ ์ฅ๋จ์ ์ ์์งํ๊ณ , ๋ณธ์ธ์ ์ปดํจํฐ ์ฌ์์ ๋ง์ถ ๋ฏ ํ๋จํ๋ ๊ฒ์ด ์ ์ ํ๋ค๊ณ ์๊ฐํ๋ฉด์ ์ด ๊ธ์ ๋ง์น๊ฒ ์ต๋๋ค.