ํ™ˆ/Article
Article๋นŒ๋“œ ๋…ธํŠธ

๐Ÿงฑ GKE๋กœ Monolith์—์„œ Microservices ์ด์ „ - ๊ฐœ๋…์žก๊ธฐ

์ฒ˜์Œ ์›น์•ฑ์„ ๋งŒ๋“ค ๋•Œ ๋Œ€๋ถ€๋ถ„์€ ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ๋ชจ๋†€๋ฆฌ์Šค(Monolith) ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.์ฒ˜์Œ์—” ์‰ฝ๊ณ  ๋น ๋ฅด์ง€๋งŒ, ์‹œ๊ฐ„์ด ์ง€๋‚˜๊ณ  ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค(Microservices)์™€ GKE(Google Kubernetes Engine)์ž…...

๋ผ์ด์–ธ ์นธ ์ž‘์„ฑ - 2025๋…„ 4์›” 26์ผ6๋ถ„

์ฒ˜์Œ ์›น์•ฑ์„ ๋งŒ๋“ค ๋•Œ ๋Œ€๋ถ€๋ถ„์€ ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ๋ชจ๋†€๋ฆฌ์Šค(Monolith) ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

์ฒ˜์Œ์—” ์‰ฝ๊ณ  ๋น ๋ฅด์ง€๋งŒ, ์‹œ๊ฐ„์ด ์ง€๋‚˜๊ณ  ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค(Microservices)์™€ GKE(Google Kubernetes Engine)์ž…๋‹ˆ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” ์ด ๊ฐœ๋…๋“ค์„ ์ดˆ๋ณด์ž ๋ˆˆ๋†’์ด์—์„œ ์„ค๋ช…ํ•˜๊ณ , ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋กœ GKE๋ฅผ ์ด์šฉํ•œ ์ „ํ™˜ ๊ณผ์ •์„ ๋ณด์—ฌ๋“œ๋ฆด๊ฒŒ์š”.

๐Ÿท Monolith

๋ชจ๋†€๋ฆฌ์Šค ๊ตฌ์กฐ๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ(ํ”„๋ก ํŠธ, ๋ฐฑ์—”๋“œ, DB ๋“ฑ)์ด ํ•œ ์„œ๋ฒ„, ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค์— ๋ชจ์—ฌ ์žˆ๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ๋‹จ์ผ ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘๋œ ํ˜•ํƒœ๋กœ ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

- ๋ฐฑ์—”๋“œ: Spring Boot(Java), Django/Flask(Python), Express/Nest.js(Node.js), Rails(Ruby) ๋“ฑ์˜ ๋‹จ์ผ ํ”„๋ ˆ์ž„์›Œํฌ

- ํ”„๋ก ํŠธ์—”๋“œ: ๊ฐ™์€ ํ”„๋กœ์ ํŠธ ๋‚ด์— ํ•จ๊ป˜ ํฌํ•จ๋˜๊ฑฐ๋‚˜ ๋ณ„๋„๋กœ ๋ถ„๋ฆฌ๋˜์–ด๋„ ๋‹จ์ผ ์•ฑ์œผ๋กœ ๋ฐฐํฌ

Monolith Architecture

โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ controllers/ (๋˜๋Š” routes/)
โ”‚   โ”œโ”€โ”€ models/
โ”‚   โ”œโ”€โ”€ services/
โ”‚   โ”œโ”€โ”€ views/ (๋˜๋Š” templates/)
โ”‚   โ”œโ”€โ”€ utils/
โ”‚   โ””โ”€โ”€ app.js (๋˜๋Š” main ํŒŒ์ผ)
โ”œโ”€โ”€ public/ (๋˜๋Š” static/)
โ”‚   โ”œโ”€โ”€ css/
โ”‚   โ”œโ”€โ”€ js/
โ”‚   โ””โ”€โ”€ images/
โ””โ”€โ”€ package.json (๋˜๋Š” ํ•ด๋‹น ์–ธ์–ด์˜ ์ข…์†์„ฑ ๊ด€๋ฆฌ ํŒŒ์ผ)

์ฒ˜์Œ์—๋Š” ๊ฐ„๋‹จํ•˜์ง€๋งŒ, ๊ธฐ๋Šฅ์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ๊ด€๋ฆฌ๊ฐ€ ํž˜๋“ค์–ด์ง‘๋‹ˆ๋‹ค.

๐Ÿท Microservices

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๊ธฐ๋Šฅ์„ ์ž‘์€ ๋‹จ์œ„์˜ ์„œ๋น„์Šค๋กœ ๋‚˜๋ˆˆ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ, ๋ฐฐํฌ, ์Šค์ผ€์ผ๋ง์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

- ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋น„์Šค โ€“ ์‚ฌ์šฉ์ž ํ™”๋ฉด ์ฒ˜๋ฆฌ

- ์ฃผ๋ฌธ ์„œ๋น„์Šค โ€“ ์ฃผ๋ฌธ ์ฒ˜๋ฆฌ

- ์ƒํ’ˆ ์„œ๋น„์Šค โ€“ ์ƒํ’ˆ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

Microservices Architecture

__ Frontend Service
      |__ ์‚ฌ์šฉ์ž ํ™”๋ฉด UI ์ฒ˜๋ฆฌ
      |__ API Gateway ๋˜๋Š” BFF์™€ ํ†ต์‹ 

__ Order Service
      |__ ์ฃผ๋ฌธ ์ƒ์„ฑ, ์กฐํšŒ, ์ทจ์†Œ
      |__ ์ฃผ๋ฌธ ์ƒํƒœ ๊ด€๋ฆฌ
      |__ ๋ฉ”์‹œ์ง€ ํ ๋˜๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌ

__ Product Service
      |__ ์ƒํ’ˆ ๋ชฉ๋ก, ์ƒ์„ธ ์ •๋ณด ์ œ๊ณต
      |__ ์ƒํ’ˆ ๋“ฑ๋ก/์ˆ˜์ •/์‚ญ์ œ
      |__ ์žฌ๊ณ  ๊ด€๋ฆฌ

์ด์ฒ˜๋Ÿผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šคํ•œ ์„œ๋น„์Šค๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋„ ์ „์ฒด ์„œ๋น„์Šค๊ฐ€ ๋ฉˆ์ถ”์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ๋งŽ์ด๋“ค ์‚ฌ์šฉํ•˜๋Š” API ์™€์˜ ๋น„์Šทํ•ด ๋ณด์ด๋Š”๋ฐ.. ๋งž์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋ณดํ†ต API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋กœ ํ†ต์‹ ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์ƒ์œ„ ๊ฐœ๋…(์„ค๊ณ„ ์ฒ ํ•™?)์œผ๋กœ ๋ณด๋ฉด ๋˜๋ฉฐ, ๊ทธ ํ•˜์œ„์— API๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

(๋ฐ˜๋“œ์‹œ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์— API๊ฐ€ ํƒ‘์žฌ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.)

๐Ÿท Google Kubernetes Engine (GKE)

GKE๋Š” Google Cloud์˜ ๊ด€๋ฆฌํ˜• ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์„ ๋„์™€์ฃผ๋ฉฐ, ๋ฐฐํฌ, ํ™•์žฅ ๋ฐ ๊ด€๋ฆฌ์˜ ๋ณต์žกํ•œ ๋ถ€๋ถ„์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ถ€๋ถ„์€ ์•ž์œผ๋กœ ์ข€ ๋” ๋‹ค๋ฃจ์–ด ๋ณด๋ฉด, ๊ฐ์ด ์žกํž๊ฑฐ๋ผ ์ƒ๊ฐ์ด ๋ฉ๋‹ˆ๋‹ค.

๐Ÿท Migration ์„ ํ•˜๋Š” ์ด์œ 

๊ทธ๋Ÿผ ์™œ ์ž˜ ์ž‘๋™ํ•˜๋˜ Monolith๋ฅผ Microservices ๋กœ ์ด์ „์„ ํ•˜๋А๋ƒ๋Š” ๊ทผ๋ณธ์ ์ธ ์งˆ๋ฌธ์„ ๋˜์งˆ ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค.

โœ… ๋ชจ๋†€๋ฆฌ์Šค์˜ ๋ฌธ์ œ์ :

  • ๋น„ํšจ์œจ์ ์ธ ํ™•์žฅ (ํŠน์ • ๊ธฐ๋Šฅ๋งŒ ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์•„๋„ ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ™•์žฅํ•ด์•ผ ํ•ด์„œ ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„)
  • ๊ธด ๋ฐฐํฌ ์ฃผ๊ธฐ์™€ ๋‹ค์šดํƒ€์ž„ (์ž‘์€ ์ˆ˜์ •๋„ ์ „์ฒด ์‹œ์Šคํ…œ์„ ์žฌ๋ฐฐํฌํ•ด์•ผ ํ•ด์„œ ์‹œ๊ฐ„ ์†Œ์š”)
  • ๋‹จ์ผ ์žฅ์•  ์ง€์  (ํ•œ ๋ถ€๋ถ„์˜ ์˜ค๋ฅ˜๊ฐ€ ์ „์ฒด ์‹œ์Šคํ…œ์„ ๋‹ค์šด์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ)
  • ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ• ์ˆ˜๋ก ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›€ (์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ์ปค์ง€๋ฉด์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋“  ๋ถ€๋ถ„์„ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง)
  • ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ธฐ์ˆ  ์Šคํƒ์ด ๊ณ ์ •๋จ (์ƒˆ๋กœ์šด ๊ธฐ์ˆ  ๋„์ž… ์‹œ ์ „์ฒด ์‹œ์Šคํ…œ์— ์˜ํ–ฅ์„ ์คŒ)

โœ… ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ด์ :

  • ์ˆ˜์š”์— ๋”ฐ๋ผ ์„œ๋น„์Šค๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅ (์ธ๊ธฐ ์žˆ๋Š” ๊ฒฐ์ œ ์„œ๋น„์Šค๋งŒ ์ถ”๊ฐ€ ์„œ๋ฒ„๋กœ ํ™•์žฅ ๊ฐ€๋Šฅ)
  • ์ „์ฒด ์‹œ์Šคํ…œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์—…๋ฐ์ดํŠธ ๋ฐฐํฌ (์‚ฌ์šฉ์ž ์„œ๋น„์Šค๋งŒ ์—…๋ฐ์ดํŠธํ•ด๋„ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ ์ •์ƒ ์ž‘๋™)
  • ๋” ๋‚˜์€ ์žฅ์•  ๊ฒฉ๋ฆฌ (์ƒํ’ˆ ์„œ๋น„์Šค๊ฐ€ ๋‹ค์šด๋˜์–ด๋„ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์™€ ๊ฒฐ์ œ๋Š” ๊ณ„์† ์ž‘๋™)
  • ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„๋ฅผ ๊ฐ€์ง„ ํŒ€์˜ ๋…๋ฆฝ์ ์ธ ์ž‘์—… (์ƒํ’ˆํŒ€, ๊ฒฐ์ œํŒ€์ด ์„œ๋กœ ๊ฐ„์„ญ ์—†์ด ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ)
  • ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค์— ๋‹ค๋ฅธ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ์ž์œ  (๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— Python, ์‹ค์‹œ๊ฐ„ ๊ธฐ๋Šฅ์— Node.js ๋“ฑ ์ตœ์  ๊ธฐ์ˆ  ์„ ํƒ)

์ด ๋‚ด์šฉ์„ ๋ณด๋ฉด ์™œ microservices๋กœ ์ „ํ™˜์„ ํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ด์œ ๊ฐ€ ๋ช…ํ™•ํ•ด ์งˆ๊ฒ๋‹ˆ๋‹ค.

๐Ÿท๊ตฌํ˜„ ๊ณผ์ •

โœ…์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๊ตฌ๋ถ„ํ•˜๊ธฐ

๋ชจ๋†€๋ฆฌ์Šค๋ฅผ ๋ถ„์„ํ•˜๊ณ  ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ๋…ผ๋ฆฌ์  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‹๋ณ„ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์„ฑ์„ ๊ฐ€์ง„ ๋ถ€๋ถ„์„ ์ฐพ์•„์„œ ๊ตฌ๋ถ„ํ•ด ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํŠน์ • ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  • ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์˜์กด์„ฑ์ด ์ตœ์†Œํ™”๋จ
  • ๋…๋ฆฝ์ ์œผ๋กœ ์ˆ˜์ • ๊ฐ€๋Šฅ

โœ…๊ฐ ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆํ™”ํ•˜๊ธฐ

# ํ”„๋ก ํŠธ์—”๋“œ (Frontend UI) ๋„์ปค ๋นŒ๋“œ
docker build -t frontend-service:1.0 ./frontend

# ์ƒํ’ˆ API (Products Service) ๋„์ปค ๋นŒ๋“œ
docker build -t products-service:1.0 ./products

# ์ฃผ๋ฌธ API (Orders Service) ๋„์ปค ๋นŒ๋“œ
docker build -t orders-service:1.0 ./orders

โœ…GKE๋กœ ๋ฐฐํฌ

gcloud container clusters create shop-cluster --num-nodes=3

GKE ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑํ•˜๊ณ  ๋‚œ๋’ค ๊ฐ๊ฐ ์„œ๋น„์Šค๋ฅผ ๋นŒ๋“œํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Products Service

# Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ + ํ‘ธ์‹œ
cd ~/monolith-to-microservices/microservices/src/products
gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/products:1.0.0 .

# GKE ๋ฐฐํฌ
kubectl create deployment products --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/products:1.0.0

# ์™ธ๋ถ€ ๋…ธ์ถœ(์™ธ๋ถ€ ์ ‘๊ทผ์„ ํ—ˆ์šฉ)
kubectl expose deployment products --type=LoadBalancer --port=80 --target-port=8082

Orders Service

# Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ + ํ‘ธ์‹œ
cd ~/monolith-to-microservices/microservices/src/orders
gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/orders:1.0.0 .

# GKE ๋ฐฐํฌ
kubectl create deployment orders --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/orders:1.0.0

# ์™ธ๋ถ€ ๋…ธ์ถœ(์™ธ๋ถ€ ์ ‘๊ทผ์„ ํ—ˆ์šฉ)
kubectl expose deployment orders --type=LoadBalancer --port=80 --target-port=8081

Frontend Service

# Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ + ํ‘ธ์‹œ
cd ~/monolith-to-microservices/microservices/src/frontend
gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/frontend:1.0.0 .

# GKE ๋ฐฐํฌ
kubectl create deployment frontend --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/frontend:1.0.0

# ์™ธ๋ถ€ ๋…ธ์ถœ(์™ธ๋ถ€ ์ ‘๊ทผ์„ ํ—ˆ์šฉ)
kubectl expose deployment frontend --type=LoadBalancer --port=80 --target-port=8080

โœ… ์š”์•ฝ

์„œ๋น„์Šค

Docker Build

GKE ๋ฐฐํฌ

ํฌํŠธ ๋…ธ์ถœ (LoadBalancer)

Products

8082 ํฌํŠธ๋กœ ์„ค์ •

products Deployment

์™ธ๋ถ€ 80 โ†’ ๋‚ด๋ถ€ 8082

Orders

8081 ํฌํŠธ๋กœ ์„ค์ •

orders Deployment

์™ธ๋ถ€ 80 โ†’ ๋‚ด๋ถ€ 8081

Frontend

8080 ํฌํŠธ๋กœ ์„ค์ •

frontend Deployment

์™ธ๋ถ€ 80 โ†’ ๋‚ด๋ถ€ 8080

๋ชจ๋“  ์„œ๋น„์Šค๋Š” LoadBalancer๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์— ๊ณต๊ฐœ๋˜๋ฉด, ํ”„๋ก ํŠธ์—”๋“œ์™€ ์—ฐ๊ฒฐ์ด ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ”ฅ ๊ฒฐ๋ก 

๊ฐ„๋‹จํžˆ ๋ช…๋ น์–ด๋กœ ๋ชจ๋†€๋ฆฌ์Šค์—์„œ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋กœ ์ด์ „ํ•˜๋Š” ๋ง›๋ณด๊ธฐ๋ฅผ ๋ณด์—ฌ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค.

๋ณด์‹œ๋ฉด ์•„์‹œ๊ฒ ์ง€๋งŒ, ๊ฐ„๋‹จํ•œ ์ž‘์—…์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์œผ๋กœ ์ถฉ๋ถ„ํ•œ ๊ธฐํš๊ณผ ์ค€๋น„๋ฅผ ํ•ด์„œ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์šฐ์„  ์ค‘์š”ํ•˜์ง€ ์•Š๋Š” ์„œ๋น„์Šค๋ถ€ํ„ฐ ๋ถ„๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•ด์„œ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ตฌํ˜„ํ•œ ๋’ค ํ…Œ์ŠคํŠธ์™€ ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์ŠคํŠธ๋žญ๊ธ€๋Ÿฌ ํŒจํ„ด(Strangler Pattern)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.(๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์„ ์ ์ง„์ ์œผ๋กœ ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „๋žต)

๋‹ค์Œ์—๋Š” google cloud๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํžˆ ์ด ๊ณผ์ •์„ ์‹ค์ œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์˜ค๋Š˜๋„ ์ฆ๊ฑฐ์šด ์ฝ”๋”ฉ ๋˜์‹œ๊ธฐ๋ฅผ ๋ฐ”๋ผ๊ฒ ์Šต๋‹ˆ๋‹ค. ^^;

๋.


<i>์ด ๊ธ€์€ ๋ธ”๋กœ๊ทธ ์ด์ „์œผ๋กœ ํ‹ฐ์Šคํ† ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜จ ๊ธ€์ž…๋‹ˆ๋‹ค.</i>

๋Œ“๊ธ€

์ƒ๊ฐ์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”

0

์•„์ง ๋Œ“๊ธ€์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ์ฃผ์ œ์˜ ๊ธ€