Microservices Architecture Style
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์ ๋ํด ์์๋ณด์์
References: microsoft docs, aws docs
What are Microservices?
๋ง์ดํฌ๋ก์๋น์ค๋ ์๊ณ , ๋ ๋ฆฝ์ ์ด๋ฉฐ, ๋์จํ๊ฒ ๊ฒฐํฉ๋์ด ์๋ค
ํ๋์ ์๊ท๋ชจ ๊ฐ๋ฐ์ ํ์ด ์์ฑํ๊ณ ์ ์ง/๊ด๋ฆฌ ํ ์ ์๋ค
๊ฐ ์๋น์ค๋ ์์ ๊ฐ๋ฐ ํ์ด ๊ด๋ฆฌํ ์ ์๋ ๊ฐ๋ฐ ์ฝ๋ ๋ฒ ์ด์ค์ด๋ค
์๋น์ค๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌํ ์ ์๋ค
ํ์ด ์ ์ฒด application์ ๋ค์ ๋น๋ํ ํ ์ฌ๋ฐฐ์น ํ์ง ์๊ณ ๋ ๊ธฐ์กด ์๋น์ค๋ฅผ ์ ๋ฐ์ดํธ ํ ์ ์๋ค
์๋น์ค๊ฐ ํด๋น ๋ฐ์ดํฐ or ์ธ๋ถ ์ํ๋ฅผ ์ ์งํด์ผ ํ๋ค
๋ณ๋์ ๋ฐ์ดํฐ ๋ ์ด์ด๊ฐ ๋ฐ์ดํฐ ์ง์์ฑ์ ์ฒ๋ฆฌํ๋ ๊ธฐ์กด ๋ชจ๋ธ๊ณผ์ ์ฐจ์ด์ !
์๋น์ค๊ฐ ์ ์ ์๋ API๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก ํต์ ํ๋ค
๊ฐ ์๋น์ค ๋ด๋ถ ๊ตฌํ ์ธ๋ถ ์ ๋ณด๋ ๋ค๋ฅธ ์๋น์ค์ ์ํด ์จ๊ฒจ์ง๋ค
์๋น์ค๊ฐ ๋์ผํ ๊ธฐ์ ์คํ, library, ๋๋ framework๋ฅผ ๊ณต์ ํ ํ์๊ฐ ์๋ค
Benefits of Microservices
๋ฏผ์ฒฉ์ฑ
๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌ๋๊ธฐ ๋๋ฌธ์ ๋ฒ๊ทธ ์์ ๋ฐ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋ ์ฝ๋ค
์ง์คํ๋ ์๊ท๋ชจ ํ
๋ง์ดํฌ๋ก ์๋น์ค๋ ๊ท๋ชจ๊ฐ ์์์ ํ ๊ธฐ๋ฅ ํ์์ ์ถฉ๋ถํ ๊ตฌ์ถ, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ ์ ์๋ค
์๊ท๋ชจ ํ์ ๋ฏผ์ฒฉ์ฑ์ด ๋๋ค!
์๊ท๋ชจ ์ฝ๋ ๊ธฐ์ค
๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์๊ฐ์ด ๊ฒฝ๊ณผํ๋ฉด์ ์ฝ๋ ์ข ์์ฑ์ด ์ฝํ๋ ๊ฒฝํฅ์ด ์๊ธฐ ๋๋ฌธ์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ค๋ฉด ๋ง์ ๋ถ๋ถ์์ ์ฝ๋๋ฅผ ์์ ํด์ผ ํ๋ค
but, ๋ง์ดํฌ๋ก ์๋น์ค ์ํคํ ์ฒ๋ ์ฝ๋๋ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ๊ณต์ ํ์ง ์์ผ๋ฏ๋ก ์ข ์์ฑ์ด ์ต์ํ๋๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ฝ๋ค
๊ธฐ์ ์ ํผํฉ
ํ์ ํผํฉ๋ ๊ธฐ์ ์คํ์ ์ ์ ํ ์ฌ์ฉํ์ฌ ์๋น์ค์ ๊ฐ์ฅ ์ ํฉํ ๊ธฐ์ ์ ์ ํํ ์ ์๋ค
๊ฒฐํจ ๊ฒฉ๋ฆฌ
๊ฐ๋ณ ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋๋ผ๋, ์ฅ์ ๋ฅผ ์ ๋๋ก ์ฒ๋ฆฌํ๋๋ก ์ ์คํธ๋ฆผ ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ์ค๊ณํ๋ฉด(์: ํ๋ก ๋จ๋ฝ ๊ตฌํ) ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฉํด๊ฐ ๋์ง ์๋๋ค
ํ์ฅ์ฑ
์๋น์ค๋ ๋ณ๋๋ก ํ์ฅ๋ ์ ์์ด ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ๊ท๋ชจ๋ฅผ ํ์ฅํ์ง ์๊ณ ๋ ๋ฆฌ์์ค๊ฐ ๋ ๋ง์ด ํ์ํ ํ์ ์์คํ ์ ๊ท๋ชจ๋ฅผ ํ์ฅํ ์ ์๋ค
๋ฐ์ดํฐ ๊ฒฉ๋ฆฌ
๋จ์ผ ๋ง์ดํฌ๋ก ์๋น์ค๋ง ์ํฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ์คํค๋ง ์ ๋ฐ์ดํธ๋ฅผ ์ํํ๋ ๊ฒ์ด ํจ์ฌ ์ฝ๋ค
but, ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์คํค๋ง ์ ๋ฐ์ดํธ๊ฐ ๋งค์ฐ ์ด๋ ค์ธ ์ ์๋ค!
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ๋ถ๋ถ์ด ๋ชจ๋ ๋์ผํ ๋ฐ์ดํฐ์ ์ํฅ์ ๋ฏธ์น ์ ์์ด์ ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ํํ๊ธฐ ๋๋ฌธ!
Challenges of Microservices
๋ณต์ก์ฑ
Microservice application์๋ ๋๋ฑํ monolithic application ๋ณด๋ค ์๋ํ๋ part๊ฐ ๋ ๋ง๋ค
๊ฐ๊ฐ์ ์๋น์ค๋ ๋ ๋จ์ํ์ง๋ง ์ ์ฒด ์์คํ ์ ๋ ๋ณต์กํ๋ค
ํต์ ์ ์ด๋ ค์
Microservice build์ ๋ํ ๋ถ์ฐ ์ ๊ทผ ๋ฐฉ์์๋ ์ฅ์ ์ด ์์ง๋ง, ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ฌ์ง๊ฐ ์๋ค
์ฌ์ฉ๋๋ ์ธ์ด์ framework๊ฐ ๋ง์์ application์ ์ ์ง ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง ์ ์๋ค
๊ทธ๋์ ํ๋ก์ ํธ์ ๋ช ๊ฐ์ง ํ์ค์ ์ ์ฉํ๋ ๊ฒ์ด ์ข๋ค!
ex) logging ๊ณผ ๊ฐ์ cross-cutting ๊ธฐ๋ฅ
๋คํธ์ํฌ ์ ์ฒด & ๋๊ธฐ ์๊ฐ
๋ค์์ ์๊ณ ์ธ๋ถํ๋ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์๋น์ค ๊ฐ ํต์ ์ด ์ฆ๊ฐํ ์ ์๋ค
๋ํ ์๋น์ค์ ์ข ์์ฑ ์ฒด์ธ (์๋น์ค A๊ฐ B๋ฅผ ํธ์ถํ๊ณ , B๊ฐ C๋ฅผ ํธ์ถํ๊ณ ......) ์ด ๋๋ฌด ๊ธธ์ด์ง ๊ฒฝ์ฐ ์ถ๊ฐ ๋๊ธฐ ์๊ฐ์ ๋ํ ๋ฌธ์ ๊ฐ ๋ฐ์ ํ ์ ์๋ค
๊ทธ๋ฌ๋ฏ๋ก API๋ฅผ ์ ์คํ๊ฒ ์ค๊ณํด์ผ ํ๋ค!
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ
๊ฐ Microservice๋ ์์ฒด์ ์ผ๋ก ๋ฐ์ดํฐ์ ์ง์์ฑ์ ๊ด๋ฆฌํ๋ค
๊ทธ๋์ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ด ๋ฌธ์ ๋ ์ ์๋ค
๋ฒ์ ๊ด๋ฆฌ
์๋น์ค์ ์ ๋ฐ์ดํธ๋ก ์ธํด ์ข ์๋ ์๋น์ค๊ฐ ์์๋์ง ์๋๋ก ํด์ผํ๋ค
์ธ์ ๋ ์ฌ๋ฌ ์๋น์ค๊ฐ ์ ๋ฐ์ดํธ ๋ ์ ์์ผ๋ฏ๋ก ์ ์คํ๊ฒ ๋์์ธ ํ์ง ์์ผ๋ฉด ํธํ์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค
Last updated