Microservice Architecture
Microservice ์ํคํ
์ฒ
์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ๊ธฐ๋ฅ์ ๊ฐ์ง ์๋น์ค๋ค๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ(๊ฐ db ๋ํ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉ) API์ ์ด์ฉํด์ ํ ์๋น์ค์ ํต์ ํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ํคํ ์ฒ
์ด์์ฐ๋งค๋์ ๋์ด ์ฃผ์ ํ๋ซํผ ๊ตฌ์ฑ ์ปดํฌํดํธ ๋ฆฌ์คํธ๋ฅผ ๋ณด๊ณ ๊ทธ๋ฆผ์ ๋ณด๋๊น ์ฝ๊ฒ ์ดํด!!!
์ฌ๊ธฐ์ ๋ง์ ์ ๋ณด๋ฅผ ์ป์ ์ ์์๋ค : https://www.nginx.com/blog/introduction-to-microservices/
๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌ, ํ์ฅ ๋ ์ ์๋ ์๋น์ค๋ค์ ์กฐํฉํด์ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ๋ฐฉ์์ด๋ค! ๊ทธ๋ฆฌ๊ณ ํญ์ ๊ธฐ์ ์ค๋ฆฝ์ ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ ํต์ ํ๊ธฐ ๋๋ฌธ์ ์๋น์ค ๊ตฌํ ๊ธฐ์ ๊ณผ๋ ๋ฌด๊ดํ๋ค.
์ฅ์
์ธ๋ถ ์๋น์ค๋ก ๋๋ ์ ์์ ํ๊ธฐ ๋๋ฌธ์ ์๋ก์๊ฒ ์ํฅ์ ๋ผ์น์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์ญํ ์ํ
๋ ๋ฆฝ์ ์ธ ์๋น์ค๋ก ์ด๋ฃจ์ด์ก๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ์ธ์ด๋ก ๋ณ๊ฒฝํ๋ ๊ฒ๋ ์ฉ์ด
๊ฐ ์ปดํฌ๋ํธ๋ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌ๋ ๊ฐ๋ฅํ๋ค,
๊ฐ๊ฐ์ด ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ถ์ ์ธ ํ์ฅ๋ ์ฝ๊ฒ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
SRP(Single Responsibility Principle) ์๋ฆฌ๊ฐ ์ ์ ์ฉ๋จ
๋ฒ์ธ - ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น(SOLID)
SRP(Single Responsibility Principle) : ํ๋์ ๊ฐ์ฒด๋ ํ๋์ ๊ธฐ๋ฅ๋ง ๊ฐ์ ธ์ผ ํ๋ค.
OCP(Open Closed Principle) : ํ์ฅ์๋ ์ด๋ ค์์ด์ผ ํ๊ณ , ์์ ์๋ ๋ซํ์์ด์ผ ํ๋ค.
LSP(Liskov Substitution Principle) : ์์ ํด๋์ค๋ ์ธ์ ๋ ๋ถ๋ชจ ํด๋์ค๋ฅผ ๋์ฒดํ ์ ์์ด์ผ ํ๋ค.
ISP(Interface Segregation Principle) : ํ๋์ ์ผ๋ฐ์ ์ธ ์ธํฐํ์ด์ค๋ณด๋ค ์ฌ๋ฌ ๊ฐ์ ๊ตฌ์ฒด์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์
DIP(Dependency Injection Principle) : ์์ ํด๋์ค๊ฐ ํ์ ํด๋์ค๋ฅผ ์์กดํ์ง ์๋๋ก ๊ตฌํํ์
๋จ์
ํ์ง๋ง ๊ฐ ์๋น์ค๋ณ๋ก API์ ํธ์ถํด์ ํต์ ํ๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๋๋ฆฌ๊ณ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ ์ ์๋ค. => ๋ฐ๋ผ์ ๋ถ๋ถ ์คํจ๋ฅผ ์ฒ๋ฆฌํ๋ ์ฝ๋๋ ๋ฐ๋ก ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผํ๋ค.
๊ฐ ํธ๋์ญ์ ์ ์ ์งํ๋ ๊ฒ์ด ์ด๋ ต๋ค.
๋จ์๋ณ๋ก ์๋น์ค๊ฐ ๋๋์ด์ ธ ์๊ธฐ ๋๋ฌธ์ ํ ์คํธ๋ฅผ ์งํํ๋๋ผ๊ณ ๋ค๋ฅธ ์๋น์ค์์ ํ์คํ ์ฐ๋์ ๋ณด์ฅํ ์ ์๋ค.
ํ๋์ ์์๋ณด๊ธฐ ์ฌ์ด ๊ทธ๋ฆผ
API๋ฅผ ํตํด์ request๊ฐ ๋ค์ด์ค๊ฒ ๋๋ฉด Service Layer์์ ๋ฐ์์ Core Layer์ ๋ค์ด๊ฐ์ ์ฒ๋ฆฌํด์ฃผ๋ ๊ตฌ์กฐ
์ถ์ฒ : https://www.nginx.com/blog/introduction-to-microservices/
๋ชจ๋
ธ๋ก์ ์ํคํ
์ฒ
๊ธฐ์กด์ ์๊ณ ์์๋ ์งํ ๋ฐฉ์์ด ๋ชจ๋ ธ๋ก์ ์ํคํ ์ฒ์ด๋ค. ํ๋์ ํจํค์ง ์์ ๋ชจ๋ ์ปดํฌ๋ํธ๋ค์ด ๋ค์ด์๋ ๋ฐฉ์์ด๊ณ , ํ๋ฒ์ ๋ค ๋น๋ํด์ ๋ฐฐํฌํ๋ ๋ฐฉ์์ด๋ค.
๋ชจ๋ ธ๋ก์ ์ํคํ ์ฒ๋ ๋น ๋ฅด๊ฒ ์๋น์ค๋ฅผ ๋ง๋ค๊ณ ์ ๊ณตํ ์ ์๋ค๋ ์ ๊ณผ ํผ๋๋ฐฑ๋ ๋น ๋ฅด๊ฒ ๋ฐ์์ ํด๊ฒฐํ ์ ์๋ค๋ ์ ์ด ์ฅ์ ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
๋จ์
ํ๋์ ํ๋ก์ธ์ค ๋ด์์ ์งํ๋๊ธฐ ๋๋ฌธ์ ๋ง์ฝ์ ํ ๊ณณ์์ ์๋ฌ๊ฐ ๋๋ฉด, ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ!
ํ๋์ ์ปค๋ค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด๊ธฐ ๋๋ฌธ์ ์์ ํ๊ฑฐ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํด์๋ ๊ธฐ์กด์ ์ปค๋ค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ถฉ๋ถํ ์ดํด๊ฐ ํ์ํ๋ค.
ํ๋ก๊ทธ๋จ์ด ํฌ๋ฉด ํด์๋ก ํ๋ก๊ทธ๋จ์ ์์ ํด์ ์ค์ ๋ก ๋๋ฆฌ๊ฒ ๋๋ฉด ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ ๋จ์ ์ด ์๋ค.
ํ๋์ ์์๋ณด๊ธฐ ์ฌ์ด ๊ทธ๋ฆผ
์ถ์ฒ : https://www.nginx.com/blog/introduction-to-microservices/
Last updated
Was this helpful?