๐Ÿ‘ท๐Ÿป Architecture

1ํŽธ. MSA(Micro Service Architecture)์— ๋Œ€ํ•ด์„œ

DevPoong 2024. 3. 30. 22:58

 

MSA๋ฅผ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ

์˜ˆ์ „์— ๋ชจ ์Šคํƒ€ํŠธ์—…์˜ ๊ธฐ์ˆ ๋ฉด์ ‘์—์„œ "์œ ๋ช… ๊ฐ€์ˆ˜ ๊ณต์—ฐ ํ‹ฐ์ผ“ํŒ…์œผ๋กœ ๋ฐ€๋ ค์˜ฌ ํŠน์ • ๊ธฐ๊ฐ„์— ๋ชฐ๋ ค์˜ฌ ํŠธ๋ž˜ํ”ฝ์— ๋Œ€๋น„ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?"  
๋ผ๋Š” ์งˆ๋ฌธ์„ ๋ฐ›์•˜์—ˆ๋‹ค.
๋‹น์‹œ ๋‚˜์˜ ๋‹ต๋ณ€์€, Auto-Scaling๊ณผ Waiting Queue๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค.
CPU ์‚ฌ์šฉ๋Ÿ‰์€ ํŠน์ • ์ˆ˜์น˜๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด ์ธ์Šคํ„ด์Šค๋ฅผ ๋ณต์ œํ•˜๊ณ , ๋ฉ”์‹œ์ง• ํ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ ์ œ์–ด์— ๋”ฐ๋ผ ์‹ค์ œ ๋Œ€๊ธฐ ์ค‘์ธ ์‚ฌ์šฉ์ž๋“ค์˜ ์‹๋ณ„ ๊ฐ€๋Šฅํ•œ ์•„์ด๋””๋ฅผ ๋‹ด์€ ๋ฉ”์‹œ์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๋น„์šฉ ํšจ์œจ์„ฑ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ, ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜๋˜ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋Š”๋ฐ ์‹ค์ œ ์‚ฌ์šฉ์ž๋Š” ์ˆ˜๋งŒ ๋ช…, ์ˆ˜์‹ญ๋งŒ ๋ช…์ด ๋™์‹œ์— ๊ฐ™์€ 0.1์ดˆ ์ด๋‚ด๋กœ ๋ชฐ๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์ด๋Ÿฐ ์ƒํ™ฉ์— Auto-Scaling ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ณต์ œ๋˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” ์‹œ๊ฐ„์„ ๊ธฐ๋‹ค๋ฆฌ๋‹ค ๋ณด๋ฉด ์ด๋ฏธ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๐Ÿ›‘

 

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ 
             ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋Š” ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ์ธก์ •ํ•˜๊ณ  ๋ฏธ๋ฆฌ ์˜ˆ์ธก๋˜๋Š” ์‚ฌ์šฉ์ž์˜ ์ˆ˜๋ณด๋‹ค
             ๋” ํฐ Traffic์„ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋„๋ก ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฏธ๋ฆฌ ์—ฌ๋Ÿฌ ๊ฐœ ๋ณต์ œํ•˜์—ฌ ์‹คํ–‰ํ•ด ๋‘๋Š” ๊ฒƒ์ด๋‹ค. 
            (๋ฌผ๋ก , ๋” ๋งŽ์€ ๋ณต์žกํ•œ ์ผ์ด ๋‚จ์•„ ์žˆ์„ ๊ฒƒ์ž„)

 

๋˜ํ•œ, ์—ฌ๊ธฐ์„œ MSA๋ฅผ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ๊ฐ€ ์žˆ๋‹ค.
ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆฌ๋Š” ๊ฒƒ์€ ์ƒํ’ˆ๊ณผ ํ‹ฐ์ผ“ ๊ตฌ๋งค ์ด๋ฒคํŠธ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ์„œ๋น„์Šค์ด๋‹ค. ํ•˜์ง€๋งŒ, Monolithic ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ทธ๋Œ€๋กœ ๋ณต์ œํ•œ๋‹ค๋ฉด ํ•„์š”๋„ ์—†๋Š” ๋‹ค๋ฅธ ์ด๋ฒคํŠธ๋ฅผ ์œ„ํ•œ ์ž์›๋„ ๋Š˜๋ฆฌ๊ฒŒ ๋˜๊ณ  ๊ตฌ๋งค ์ด๋ฒคํŠธ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์—†๋‹ค.

 

์ด๋•Œ, ์„œ๋น„์Šค๋ฅผ Micro Service๋กœ ์ž˜๊ฒŒ ๋‚˜๋ˆ„์–ด ๋…๋ฆฝ์ ์œผ๋กœ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค๋ฉด, ๊ตฌ๋งค ์ด๋ฒคํŠธ๋งŒ ์ž์›์„ ํšจ๊ณผ์ ์œผ๋กœ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋‹ค.
์ด๊ฒƒ์ด, Amazon์˜ 0.66์ดˆ ๋ฐฐํฌ์˜ ๋น„๋ฐ€์ด๋‹ค.

 

 

Monolith์™€ Micro Service์˜ ์ฐจ์ด

Monolithic Architecture

๋ชจ๋…ธ๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ๊ตฌ์„ฑํ•˜๋˜ ๋‹จ์ผ ์ฝ”๋“œ ๋ฒ ์ด์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ์ด๋‹ค. ์ „์ฒด๊ฐ€ ํ•˜๋‚˜์˜ Language๋กœ ์ž‘์„ฑ๋˜์–ด ๋‹จ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐ๋œ๋‹ค.

1) Monolithic Architecture ์žฅ์ 

  1. ๋‹จ์ˆœํ•˜๋‹ค: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•˜๋‚˜๋กœ ๋ญ‰์ณ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ•„์š”ํ•  ๋•Œ ํ•œ ๊ณณ์—์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋‹จ์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ธํ”„๋ผ ๊ด€๋ฆฌ๋„ ํŽธํ•˜๋‹ค.
  2. ํ…Œ์ŠคํŠธ๊ฐ€ ์‰ฝ๋‹ค: ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์˜์กด์„ฑ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—, ํ…Œ์ŠคํŠธ๊ฐ€ ์‰ฝ๋‹ค.
  3. ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์‰ฝ๋‹ค: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ถ„๋ฆฌํ•˜๋ ค๋ฉด ์„œ๋น„์Šค ๊ฐ„์˜ ํ†ต์‹ , ๋ฐฐํฌ, ์ธํ”„๋ผ ์„ค๊ณ„ ๋“ฑ ๋งŽ์€ ๋ถ€๋ถ„์— ์žˆ์–ด์„œ ๋ณต์žกํ•ด์ง€์ง€๋งŒ, ๋ชจ๋†€๋ฆฌ์‹ ํ•œ ๊ตฌ์กฐ๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

2) Monolithic Architecture ๋‹จ์ 

์žฅ์ ์ด ์žˆ์œผ๋ฉด ๋‹จ์ ์ด ์žˆ๋Š” ๊ฒŒ ์ด์น˜๋‹ค..

  1. ์œ ์—ฐํ•˜์ง€ ์•Š๋‹ค: ํŠน์ • ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด์„œ๋งŒ ํ™•์žฅํ•  ์ˆ˜ ์—†๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด๋ฅผ ํ™•์žฅํ•ด์•ผ ํ•œ๋‹ค.
  2. ํŒ€์„ ๋ถ„๋ฆฌํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š๋‹ค: ๋ชจ๋“  ํŒ€์ด ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋Œ€์ƒ์œผ๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉด, ์•„๋ฌด๋ฆฌ ๊ทœ์น™์„ ์ž˜ ์ •ํ•˜๋”๋ผ๋„ ์ˆ˜๋„ ์—†์ด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๊ณ  ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์— ๋งŽ์€ ๋น„์šฉ์ด ๋“ค ๊ฒƒ์ด๋‹ค.
  3. ๊ธฐ์ˆ  ์‚ฌ์šฉ์ด ์ œํ•œ๋œ๋‹ค: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” Language๋ฅผ ์ผ๋ถ€๋งŒ ๋ฐ”๊ฟ€ ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋™์ผํ•œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 

 

Micro Service Architecture

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์€ ์„œ๋น„์Šค๋กœ ๋‚˜๋ˆ„๊ณ , ์„œ๋กœ ์ƒํ™ฉ์— ๋”ฐ๋ผ 100% ๋…๋ฆฝ์ ์ด์ง€๋Š” ์•Š์ง€๋งŒ ๋Š์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋˜๋„๋ก ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ฐ ์„œ๋น„์Šค๋งˆ๋‹ค ๊ฐœ๋ณ„ Database๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ด์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ ๋“ฑ ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ์œผ๋กœ ๋งŽ์€ ๊ฒฝํ—˜์ด ํ•„์š”ํ•˜๋‹ค.

1) Micro Service Architecture ์žฅ์ 

Monolithic์˜ ๋‹จ์ ์ด MSA์˜ ์žฅ์ ์ด ๋œ๋‹ค.

  1. ์œ ์—ฐํ•˜๋‹ค: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋…๋ฆฝ์ ์œผ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํŠน์ • ์ด๋ฒคํŠธ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ์„œ๋น„์Šค๋งŒ ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ํŒ€์„ ๋ถ„๋ฆฌํ•˜๊ธฐ ์‰ฝ๋‹ค: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ํŒ€๋งˆ๋‹ค ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ์‹์œผ๋กœ, ํŒ€๋งˆ๋‹ค์˜ ๋Š์Šจํ•œ ๊ฒฐํ•ฉ์ด ํ˜•์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค.
  3. ๊ธฐ์ˆ  ์‚ฌ์šฉ์ด ์œ ์—ฐํ•˜๋‹ค: ๊ฐ ํŒ€์—์„œ Language๋‚˜ ๊ธฐ์ˆ  ์Šคํƒ์„ ์ •์˜ํ•˜๊ณ  ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. ํ† ์Šค, ๋‹น๊ทผ ๋“ฑ ์—ฌ๋Ÿฌ ๊ธฐ์—…์—์„œ ํŒ€๋งˆ๋‹ค Python, Java, Kotlin, Ruby, Golang ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.
  4. ๋ฏผ์ฒฉํ•˜๋‹ค: ์•„๋งˆ์กด์ด 0.66์ดˆ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์‚ฌํ•ญ์„ ๋ฐฐํฌํ•˜๋“ฏ์ด, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฏผ์ฒฉํ•˜๊ฒŒ ์ƒˆ ๋ฒ„์ „์„ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.
  5. ์ „์ฒด ์„œ๋น„์Šค ์žฅ์•  ์œ„ํ—˜ ๊ฐ์†Œ: ๋ชจ๋…ธ๋ฆฌ์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•œ ๋ถ€๋ถ„์—์„œ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ „์ฒด๋กœ ์ „์ด๋˜์ง€๋งŒ, ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋Š” ์ž๊ธฐ ์ž์‹ ์˜ ์„œ๋น„์Šค์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ, ๋‹ค๋ฅธ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์—๋Š” ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. 

2) Micro Service Architecture ๋‹จ์ 

MSA๋„ ๋งŽ์€ ๋Œ€๊ฐ€๋ฅผ ์น˜๋ค„์•ผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค..

  1. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ : ๊ฐ ์„œ๋น„์Šค๋งˆ๋‹ค ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋™๊ธฐ or ๋น„๋™๊ธฐ ํ†ต์‹ ์„ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•˜๋ฉฐ, ์ด๋Ÿฐ ๋ถ€๋ถ„์—์„œ kafka ํ˜น์€ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์„ ๋„์ž…ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค.
  2. ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋ ต๋‹ค: ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ๋‹ค๋ฅธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ์— ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” Mock ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์˜ ๊ฒฝ์šฐ ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋‚˜ ๋ฉ”์‹œ์ง€ ํ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๊ธฐ์— ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค.
  3. ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์„ ์œ„ํ•œ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค: ๊ฐ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์—์„œ ์„œ๋กœ ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์„ ์œ„ํ•œ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.
  4. ์žฅ์•  ๋ฐœ์ƒ ์‹œ ๋””๋ฒ„๊น…์ด ์–ด๋ ต๋‹ค: ๋””๋ฒ„๊น… ์‹œ์— ์—ฌ๋Ÿฌ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์™€ ๋ฉ”์‹œ์ง• ํ ๋“ฑ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•œ ์ƒํƒœ๋กœ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์žกํ•˜๋‹ค.

 

 

MSA ํŠน์ง•

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ MSA์˜ ์žฅ์ ๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ, ๋งˆํ‹ดํŒŒ์šธ๋Ÿฌ๊ฐ€ ์–ธ๊ธ‰ํ•œ MSA์˜ ํŠน์ง•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ์—…๋ฌด ๊ธฐ๋Šฅ์„ ์ค‘์‹ฌ์œผ๋กœ ํŒ€์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๊ธฐํš์ž, ์„ค๊ณ„์ž, FE•BE ๊ฐœ๋ฐœ์ž, ๋””์ž์ด๋„ˆ, ํ…Œ์Šคํ„ฐ ๋“ฑ์˜ ์ง๊ตฐ์ด One Team
  • ์ค‘์•™ ๊ฑฐ๋ฒ„๋„Œ์Šค ํ˜•์‹์ด ์•„๋‹ˆ๋ผ, ์ž์œจ์ ์ธ ๋ถ„๊ถŒ ๊ฑฐ๋ฒ„๋„Œ์Šค๋กœ ํด๋ฆฌ๊ทธ๋žํ•˜๊ฒŒ ์ž์œจ์ ์ธ ์„ ํƒ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ, ํ”„๋กœ๋•ํŠธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ๋ฐœ ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ๋ณ€ํ™”๋˜์—ˆ๋‹ค.
    • ์ ์ง„ ๋ฐ˜๋ณต์ ์ธ ๋ชจ๋ธ, ์ œํ’ˆ ์ค‘์‹ฌ์˜ Agile ๊ฐœ๋ฐœ ๋ฐฉ์‹์œผ๋กœ 2~3์ฃผ ๋‹จ์œ„์˜ Sprint๋ฅผ ํ†ตํ•ด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌํ•œ๋‹ค.
  • ๋งŽ์€ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ์ธํ”„๋ผ ์ž๋™ํ™”๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค.
    • ์ด์ „์—, ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ๋ฐฐํฌ ์ž๋™ํ™” ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•œ ์ ์ด ์žˆ๋‹ค. 
      ์ด๋•Œ, ํ”Œ๋กœ์šฐ๋ฅผ ๋งํ•˜์ž๋ฉด
      1. Github์˜ Master ๋ธŒ๋žœ์น˜์— ์ƒˆ๋กœ์šด ์ฝ”๋“œ๊ฐ€ Merge๋œ๋‹ค.
      2. Github Webhook ์„ ํ†ตํ•ด Jenkins์˜ ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์ด Trigger๋œ๋‹ค.
      3. ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  Docker Image๋ฅผ AWS ECR๋กœ ์—…๋กœ๋“œ ํ•œ๋‹ค.
      4. ์šด์˜ ํ™˜๊ฒฝ์— ์ €์žฅ๋œ ๋ฐฐํฌ Shell Script๊ฐ€ ์‹คํ–‰๋˜์–ด ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด ์‹คํ–‰๋œ๋‹ค.
    • ์—ฌ๊ธฐ์„œ, ๋” ์‹ค๋ฌด์ ์œผ๋กœ๋Š” ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์— ๋จผ์ € ๋ฐฐํฌํ•ด์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ์ „์ฒด ์„ฑ๊ณตํ–ˆ์„ ๋•Œ, ์šด์˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌ๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • ๋ถ„์‚ฐ๋œ DB ํ™˜๊ฒฝ์„ ๊ฐ€์ง„๋‹ค.
    • ๋ฌผ๋ก , DB๊ฐ€ ๋ถ„์‚ฐ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๊ณ  ํ•ด์„œ MSA๊ฐ€ ์•„๋‹ˆ๋‹ค๋ผ๊ณ ๋Š” ํ•˜์ง€ ๋ชปํ•˜์ง€๋งŒ, MSA์˜ ์žฅ์ ์„ ์‚ด๋ฆฌ์ง€ ๋ชปํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
    • ๋ถ„์‚ฐ๋œ DB ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์„ ๋งž์ถฐ์ฃผ๊ธฐ ์œ„ํ•ด์„œ ํŠธ๋žœ์žญ์…˜์„ ๋ถ„๋ฆฌํ•˜๊ณ  Message Queue ๋งค์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์ƒ ํŠธ๋žœ์žญ์…˜์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•ด์•ผ ํ•œ๋‹ค.

์—…๋ฌด ๊ธฐ๋Šฅ ์ค‘์‹ฌ์˜ ํŒ€ ์˜ˆ์‹œ - ํ† ์Šค๋ฑ…ํฌ