[Daily morning study] Microservice Architecture (MSA)์ ์ฅ๋จ์
#daily morning study
Microservice Architecture (MSA)์ ์ฅ๋จ์
Microservice Architecture (MSA)๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ์ ํ๋์ ์ธ ์ ๊ทผ๋ฒ์ผ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌ ๊ฐ๋ฅํ ์์ ์๋น์ค๋ค๋ก ๋๋๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ์๋ฃ์์๋ MSA์ ์ฅ๋จ์ ์ ๋ํด ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
MSA์ ์ฅ์
1. ๋ ๋ฆฝ์ ์ธ ๋ฐฐํฌ ๊ฐ๋ฅ์ฑ
MSA์์๋ ๊ฐ ์๋น์ค๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌ๋ฉ๋๋ค. ์ฆ, ํ๋์ ์๋น์ค์ ๋ํ ๋ณ๊ฒฝ์ด ์ ์ฒด ์์คํ ์ ์ํฅ์ ๋ฏธ์น์ง ์๊ธฐ ๋๋ฌธ์, ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ฅผ ๋จ์ถํ ์ ์์ต๋๋ค.
2. ๊ธฐ์ ์คํ์ ๋ค์์ฑ
๊ฐ ๋ง์ดํฌ๋ก์๋น์ค๋ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ๋๋ฏ๋ก, ๊ฐ๋ฐํ์ ๊ฐ ์๋น์ค์ ์ ํฉํ ๊ธฐ์ ์คํ์ ์ ํํ ์ ์์ต๋๋ค. ์ด๋ ํ์ ์ ๋ฌธ์ฑ์ ์ต๋ํ ํ์ฉํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
3. ํ์ฅ์ฑ
MSA๋ ํน์ ์๋น์ค์ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ ๋ ํด๋น ์๋น์ค๋ง ๋ณ๋๋ก ํ์ฅํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํธ๋ํฝ์ด ๋ง์ ๊ธฐ๋ฅ๋ง ๋ฐ๋ก ์ค์ผ์ผ ์์ํ์ฌ ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค.
4. ๋์ ๊ฐ์ฉ์ฑ
MSA๋ ์๋น์ค๊ฐ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ํ ์๋น์ค์ ์ฅ์ ๊ฐ ์ ์ฒด ์์คํ ์ ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ ์ต์ํํฉ๋๋ค. ์ด๋ฅผ ํตํด ์์คํ ์ ๊ฐ์ฉ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
5. ํ์ ์์จ์ฑ
๊ฐ ํ์ ์์ ๋ค์ ์๋น์ค์ ๋ํด ๋ ๋ฆฝ์ ์ผ๋ก ์์ ํ ์ ์์ต๋๋ค. ์ด๋ ํ์ด ๋ ๋น ๋ฅด๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ํ์ ์ ์ถ๊ตฌํ ์ ์๊ฒ ํฉ๋๋ค.
6. ์ง์์ ์ธ ๋ฐฐํฌ ๋ฐ ํตํฉ
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ CI/CD(์ง์์ ํตํฉ ๋ฐ ์ง์์ ๋ฐฐํฌ) ํ๋ก์ธ์ค์ ๋งค์ฐ ์ ์ด์ธ๋ฆฝ๋๋ค. ์ด๋ ๊ฐ๋ฐ ์ฃผ๊ธฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ๋น ๋ฅธ ํฝ์ค๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
MSA์ ๋จ์
1. ์์คํ ์ ๋ณต์ก์ฑ ์ฆ๊ฐ
MSA๋ ์ฌ๋ฌ ๊ฐ์ ์๋น์ค๋ก ๊ตฌ์ฑ๋๊ธฐ ๋๋ฌธ์, ์์คํ ์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ๊ฒ ๋ฉ๋๋ค. ์ค๊ณ, ๋ฐฐํฌ, ๋ชจ๋ํฐ๋ง ๋ฐ ๋๋ฒ๊น ์ด ๋ ์ด๋ ค์์ง ์ ์์ต๋๋ค.
2. ๋ฐ์ดํฐ ์ผ๊ด์ฑ ๋ฌธ์
๊ฐ ์๋น์ค๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๊ฒ์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์ด๋ฒคํธ ์์ฑ์ด๋ CQRS ๊ฐ์ ํจํด์ ๋์ ํด์ผ ํ ์ ์์ต๋๋ค.
3. ๋คํธ์ํฌ ์ง์ฐ
MSA์์๋ ์๋น์ค ๊ฐ ํต์ ์ด ๋น๋ฒํ๊ธฐ ๋๋ฌธ์, ๋คํธ์ํฌ ์ง์ฐ ๋ฐ ๋คํธ์ํฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์๋น์ค ๊ฐ์ ์์ ์ ์ธ ํต์ ๋ฐฉ๋ฒ์ ํ๋ฆฝํด์ผ ํฉ๋๋ค.
4. ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ ๋๊ตฌ ํ์
MSA ํ๊ฒฝ์์๋ Kubernetes, Docker์ ๊ฐ์ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ๊ฐ ํ์ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ค์ ์ฌ์ฉ์ด ์ต์ํ์ง ์์ ํ์ ์ด๊ธฐ ํ์ต ๊ณก์ ์ด ํ์ํฉ๋๋ค.
5. ํ ์คํธ์ ๋ณต์ก์ฑ
์๋น์ค ๊ฐ์ ์ํธ์์ฉ์ด ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์, ํตํฉ ํ ์คํธ๋ E2E(End to End) ํ ์คํธ๊ฐ ๋ณต์กํด์ง ์ ์์ต๋๋ค. ๊ฐ ์๋น์ค์ ๋ง์ดํฌ๋ก ํ๊ฒฝ์ ๊ตฌ์ถํด์ผ ํด์ ์๊ฐ๊ณผ ์์์ด ๋ง์ด ์๋ชจ๋ ์ ์์ต๋๋ค.
6. ๋ณด์ ์ด์
์ฌ๋ฌ ์๋น์ค๋ฅผ ์ด์ํ ๊ฒฝ์ฐ, ๊ฐ ์๋น์ค์ ๋ํ ๋ณด์ ์ ๋ต์ ์ธ์์ผ ํฉ๋๋ค. API๋ฅผ ํตํ ํต์ ์ด ๋ง์์ง๋ฏ๋ก, ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ์ ๋ํ ์ฒด๊ณ๋ฅผ ์ ๊ตฌ์ถํด์ผ ํฉ๋๋ค.
๊ฒฐ๋ก
Microservice Architecture (MSA)๋ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๋ง์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ๋ณต์ก์ฑ๊ณผ ๊ด๋ฆฌ์ ์ด๋ ค์๋ ํจ๊ป ์กด์ฌํฉ๋๋ค. MSA์ ๋์ ์ฌ๋ถ๋ ํ๋ก์ ํธ์ ์๊ตฌ ์ฌํญ, ํ์ ์ญ๋ ๋ฐ ์กฐ์ง์ ๋ชฉํ์ ๋ฐ๋ผ ์ ์คํ๊ฒ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค.
๋ณธ ์๋ฃ๋ฅผ ํตํด MSA์ ์ฅ๋จ์ ์ ๋ช ํํ ์ดํดํ๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก ์ ์ ํ ์ํคํ ์ฒ๋ฅผ ์ ํํ๋ ๋ฐ ๋์์ด ๋๊ธธ ๋ฐ๋๋๋ค.