Architecture

MSA ์™€ ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2024. 8. 26.

๊ฐœ์š”

์•„ํ‚คํ…์ฒ˜๋‚˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์œผ๋กœ ๋А๊ผˆ๋˜ ๋ง๋“ค์ด ์žˆ๋‹ค.

 

"์†Œํ”„ํŠธ์›จ์–ด(๊ธฐ์ˆ )๋Š” ๋ˆ„๊ตฐ๊ฐ€์˜ ํ•„์š”๋กœ ์ธํ•ด์„œ ์‹œ์ž‘๋œ๋‹ค."

"์†Œํ”„ํŠธ์›จ์–ด(๊ธฐ์ˆ )๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ƒˆ๋กœ์šด ๊ฐ€์น˜๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค."

"์†Œํ”„ํŠธ์›จ์–ด(๊ธฐ์ˆ )๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•˜๋Š” ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž์ถฐ ์ ์‘ํ•ด์•ผ ํ•œ๋‹ค. "

 

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

 

๋ณ€ํ™”์— ์ ์‘ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ํŠน์ง•์€ 3๊ฐ€์ง€ ํŠน์„ฑ์€ ํ•„์š”๋กœ ํ•œ๋‹ค.

์œ ์—ฐ์„ฑ, ํ™•์žฅ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ

๋ณ€ํ™”์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ค„ ์•Œ์•„์•ผํ•˜๊ณ , ๋†’์€ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž์ถฐ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•˜๊ณ , ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์ž˜ ๋˜์–ด์•ผ ์ ์€ ๋ฆฌ์†Œ์Šค๋กœ๋„ ๋น ๋ฅด๊ฒŒ ๋ณ€ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์œ ์—ฐ์„ฑ, ํ™•์žฅ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋›ฐ์–ด๋‚˜๋ ค๋ฉด ๋ฐ”๋กœ ํ•ต์‹ฌ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ์•„์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’๋‹ค๋Š” ๊ฑด, ๊ฐ์ฒด๋‚˜ ๋ชจ๋“ˆ, ๊ณ„์ธต ๋“ฑ์ด ์„œ๋กœ ์˜์กด์„ฑ์ด ๋†’๋‹ค๋Š” ๊ฒƒ์ด๊ณ , ์˜์กด์„ฑ์ด ๋†’์œผ๋ฉด ๋ณ€๊ฒฝ์ ์— ์žˆ์–ด์„œ, ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ „ํŒŒํ•ด์•ผํ•˜๋Š” ๋ถ€๋ถ„๋“ค์ด ๋งŽ์•„์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ํŠน์ •ํ•œ ๋ณ€๊ฒฝ์ ์— ์žˆ์–ด, ๋งŽ์€ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ์œ ์ง€ ๋ณด์ˆ˜์„ฑ์ด ๋‚ฎ๋‹ค๋Š” ๊ฒƒ์ด๊ณ , ๊ฐ์ฒด ๋˜๋Š” ๋ชจ๋“ˆ๊ฐ„์ด ๊ฐ•ํ•˜๊ฒŒ ์œ ์ฐฉ๋˜์–ด ์žˆ๊ธฐ์— ์œ ์—ฐ์„ฑ๋„ ๋‚ฎ๊ณ , ํ™•์žฅํ•˜๊ธฐ์—๋„ ์–ด๋ ต๋‹ค.

 

๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๊ธฐ์— ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•ต์‹ฌ์€ ๋ฐ”๋กœ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ˜๋‹ค๋Š” ์ ์— ์žˆ๊ณ , ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ์œ„ํ•ด ๋งŽ์€ ๊ธฐ์ˆ ๋“ค์ด ๋‚˜์™”๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

๋งŽ์€ ์ฑ…์—์„œ๋„ ๋А์Šจํ•œ ๊ฒฐํ•ฉ๊ณผ ๋†’์€ ์‘์ง‘๋„๋ฅผ ๋งŽ์ด ์–˜๊ธฐํ•œ๋‹ค. ์—ฐ๊ด€์„ฑ์ด ๋†’์€ ๋˜๋Š” ๊ฐ™์€ ์ฑ…์ž„์ด ์žˆ๋Š” ์š”์†Œ๋“ค์€ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ ์‘์ง‘๋„๋ฅผ ๋†’์ด๊ณ , ๋‹ค๋ฅธ ์ฑ…์ž„๊ณผ ์—ญํ• ์ด ์žˆ๋Š” ๊ฐ์ฒด๋“ค๊ณผ๋Š” ์˜์กด๋„๋ฅผ ๋‚ฎ์ถฐ ๋А์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉํ•ด์•ผ ํ•œ๋‹ค.

 

๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜ - Monolithic Architecture 

MSA ๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „์—” ๋งŽ์€ IT ์—…๊ณ„์—์„  ๋ชจ๋†€๋ฆฌ์‹์œผ๋กœ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์ถ•ํ–ˆ๋‹ค. ๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜๋ž€ MSA ๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ธฐ ์ „๊นŒ์ง„ ์ง€์นญํ•˜๋Š” ์šฉ์–ด ์กฐ์ฐจ ์กด์žฌํ•˜์ง€ ์•Š์•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋”ฐ๋กœ ๊ตฌ๋ถ„์ง€์–ด์„œ ๋ถ€๋ฅผ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ชจ๋‘ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜๋ž€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์„œ๋น„์Šค๊ฐ€ ํ•˜๋‚˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์ด๋Ÿฐ ์‹œ์Šคํ…œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ–๋Š”๋‹ค.

  1. ํ•˜๋‚˜์˜ ์ฃผ์š” ํ”„๋กœ์„ธ์Šค๋กœ ๊ตฌ์„ฑ
  2. ๋ชจ๋“  ์„œ๋น„์Šค๊ฐ€ ํ•˜๋‚˜์˜ DB endPoint๋ฅผ ์‚ฌ์šฉ
  3. ๋‹จ ํ•œ์ค„์˜ ์ฝ”๋“œ ์ˆ˜์ •์ด ๋˜๋”๋ผ๋„, ๋ชจ๋“  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์žฌ๋ฐฐํฌ๊ฐ€ ํ•„์š”
  4. ์‹ฑ๊ธ€ ํ˜น์€ ๋ฉ€ํ‹ฐ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑํ•  ์ˆœ ์žˆ์ง€๋งŒ CI ์˜ ๋‹จ์œ„๊ฐ€ ๋‹ฌ๋ผ์งˆ ๋ฟ, CD์˜ ๋ฒ”์œ„๋Š” ์—ฌ์ „ํžˆ ์ „์ฒด

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

 

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

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

์ด๋Ÿฌํ•œ ๋‹จ์ ์€ ์˜์กด์„ฑ์ด ๋†’์€, ์ฆ‰ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’๊ธฐ์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

์ด์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž์ถฐ, ๋น ๋ฅด๊ฒŒ ํ™•์žฅํ•ด์•ผํ•˜๊ณ , ์œ ์—ฐํ•œ ๋Œ€์ฒ˜๋ฅผ ํ•ด์•ผํ•˜๊ณ , ์ ์€ ์ˆ˜์ •์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ด ์ ์ด ํž˜๋“ค์—ˆ๋‹ค๋Š” ๋œป์ด๋‹ค.

 

MSA - Micro Service Architecture

AWS ์‹œ์ž‘์œผ๋กœ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , ๋„์ปค์™€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์ฒ˜๋Ÿผ ๊ฐ€์ƒ์ปจํ…Œ์ด๋„ˆ, ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ธฐ์ˆ ๋“ค์ด ๋“ฑ์žฅ ํ•˜๋ฉด์„œ MSA ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ด ์ œ๊ณต๋๋‹ค.

๋ชจ๋†€๋ฆฌ์‹ ๊ด€๊ฒฝ์—์„œ๋Š” ๋น„๊ต์  ํ•„์š”์„ฑ์ด ํฌ์ง€ ์•Š์•˜๋˜ ๊ฒƒ๋“ค ์˜ˆ๋ฅผ ๋“ค์–ด, CI/CD ํŒŒ์ดํ”„ ๋ผ์ธ, ์ž๋™ํ™”, API GateWay ๊ธฐ์ˆ ๋“ค์ด ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์œผ๋กœ ํ—ˆ๋“ค์ด ๋‚ฎ์•„์ง€๊ฒŒ ๋๊ณ , MSA ๋กœ์˜ ์ „ํ™˜์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ์—ˆ๋‹ค.

 

MSA ๋ž€ Micro Service Architecture ๋งํ•œ๋‹ค. MSA ๋ฅผ ์ •ํ™•ํžˆ ์ง€์นญํ•˜๋Š” ๊ฐœ๋…์€ ์—†์ง€๋งŒ, ํ•ต์‹ฌ์š”์†Œ๋“ค์€ ์žˆ๋‹ค. ๊ฐœ๋ฐœ๋‹จ์œ„๋ฅผ ์„œ๋น„์Šค๋กœ ์ธ์ง€ํ•˜๊ณ  ์„œ๋น„์Šค์™€ ์„œ๋น„์Šค๋ฅผ ์„œ๋กœ ๋ถ„๋ฆฌ/๋ถ„ํ•ดํ•˜์—ฌ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ, ๋ฐฐํฌํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ์„œ๋น„์Šค ๊ฐ„ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ฒŒ ๋œ๋‹ค. ์„œ๋น„์Šค ๊ฐ„์€ ๊ทœ๊ฒฉํ™”๋œ ํ”„๋กœํ† ์ฝœ(์ธํ„ฐํŽ˜์ด์Šค)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•˜๊ณ  ๋‚ด๋ถ€ ๊ตฌํ˜„ ์‚ฌํ•ญ์„ ๋ชจ๋‘ ์ถ”์ƒํ™”ํ•œ๋‹ค.

๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋Š” ๋…๋ฆฝ๋œ ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ–๋Š”๋‹ค.

 

์„œ๋น„์Šค๋ฅผ ํ•œ ๋ฐ ๋ญ‰์ณ ํ•˜๋‚˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ž‘๋™ํ–ˆ๋˜ ๋ชจ๋†€๋ฆฌ์‹ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋น„ํ•ด ์„œ๋น„์Šค๋ฅผ ๋ถ„๋ฆฌ/๋ถ„ํ•ดํ•˜์—ฌ ๊ฐ๊ฐ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด MSA ์˜ ํ•ต์‹ฌ์ด๋‹ค. 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๊ฒŒ ๋น ๋ฅด๊ฒŒ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์„œ๋น„์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋น ๋ฅธ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. ์ด๊ฒƒ์€ ๋†’์€ Business Capabilities ๋ฅผ ๊ฐ–๊ฒŒ ๋œ๋‹ค.

Business Capability ๋ž€ ์กฐ์ง์ด ๋น„์ฆˆ๋‹ˆ์Šค์— ๋Œ€ํ•ด ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ณ  ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€ํ™”์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋Šฅ๋ ฅ์œผ๋กœ, ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋น ๋ฅธ ๋Œ€์ฒ˜ ๋Šฅ๋ ฅ์œผ๋กœ ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์„œ๋น„์Šค์—์„œ ์–ด๋–ค ๋ถ€๋ถ„์ด ์•„์‰ฌ์›Œ ์–ด๋–ค ๋ถ€๋ถ„์„ ์ถ”๊ฐ€ํ•˜๊ธธ ์›ํ•  ๋•Œ ๊ทธ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋น ๋ฅด๊ฒŒ ๋ฐ›์•„๋“œ๋ฆฌ๊ณ  ์„œ๋น„์Šค๋ฅผ ์ˆ˜์ • ๋ฐ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๋งํ•œ๋‹ค. ๋น ๋ฅธ ๋Œ€์ฒ˜ ๋Šฅ๋ ฅ์€ ๋™์ข… ์—…๊ณ„์—์„œ ๊ฒฝ์Ÿ๋ ฅ์„ ๊ฐ–์ถœ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

 

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

 

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

๋˜ํ•œ ์„œ๋น„์Šค๊ฐ€ ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. ๋˜ ๋ชจ๋†€๋ฆฌ์‹์—์„  @Transactional ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ํ•ด๊ฒฐ๋˜๋˜ ๋ฌธ์ œ๋“ค์ด MSA ์—์„  ๋ณด์ƒ ํŠธ๋žœ์žญ์…˜ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ณผ์ •์„ ๋ฐ˜๋“œ์‹œ ํ•„์š”๋กœ ํ•œ๋‹ค.

์ด์ฒ˜๋Ÿผ MSA ์—์„œ ๊ฐœ๋ฐœ์€ ๋งค์šฐ ์–ด๋ ต๊ณ , ๊ณ ๋ คํ•  ์‚ฌํ•ญ๋„ ๋งŽ์œผ๋ฉด์„œ, ๋งŽ์€ ์ง€์‹์„ ์š”๊ตฌํ•œ๋‹ค.

 

ํ•˜์ง€๋งŒ MSA๋กœ ์ธํ•œ ๊ณ ํ†ต๊ณผ ํž˜๋“ฆ ๋ณด๋‹ค MSA ๋กœ ์ธํ•œ ์ด์ ์ด ๋” ํฌ๊ธฐ์— ๋งŽ์€ IT ์„œ๋น„์Šค ํšŒ์‚ฌ์—์„œ MSA ๋กœ ์ „ํ™˜์„ ์‹œ๋„ํ•˜๊ณ  ์žˆ๋‹ค.

 

ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜ - Hexagonal Architecture

MSA ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜์—์„œ ํ•ต์‹ฌ์€ ์„œ๋น„์Šค๋ฅผ ๋ถ„๋ฆฌ/๋ถ„ํ•ด ํ•˜์—ฌ ๊ฒฐํ•ฉ๋„๋ฅผ ๋А์Šจํ•˜๊ฒŒ ํ•˜๊ณ , ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์œผ๋กœ Business Capability ๋ฅผ ๋†’์ด๊ณ , ์žฆ์€ ๋ฐฐํฌ ๋“ฑ์ด ํŠน์ง•์ด๋ผ๊ณ  ๋งํ–ˆ๋‹ค.

 

์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ, ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„์˜ MSA ํŠน์„ฑ์€ ๊ฐ Micro Service ์•ˆ์—์„œ๋„ ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜๊ณ  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์šด ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋ฅผ ์š”๊ตฌํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ ๋งŽ์ด ์“ฐ์ด๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋กœ Hexagonal Architecture (ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜)๊ฐ€ ์žˆ๋‹ค.

 

๊ธฐ์กด์— ๋„๋ฆฌ ์“ฐ์ด๋Š” ์•„ํ‚คํ…์ฒ˜๋กœ๋Š” Layered Architecture๊ฐ€ ์žˆ๋Š”๋ฐ, ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ ๊ณ„์ธต์—์„œ ํ•˜๋Š” ์ผ์„ ํ•œ์ •์‹œ์ผœ ๊ณ„์ธต๋ณ„๋กœ ๋‹ด๋‹น ์—…๋ฌด์— ๋งž๊ฒŒ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ ๊ณ„์ธต ๋‚ด์—์„œ๋Š” ์ฝ”๋“œ ์ˆ˜์ •๊ณผ ์œ ์ง€๋ณด์ˆ˜ ๋“ฑ์ด ๋น„๊ต์  ์‰ฝ๊ณ , ๊ณ„์ธต ๊ฐ„ ์ ‘๊ทผ์ด ์ž์œ ๋กญ๋‹ค.

 

 

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

  • ์ธ๋ฐ”์šด๋“œ ์–ด๋Œ‘ํ„ฐ → ์ธ๋ฐ”์šด๋“œ ํฌํŠธ → ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง
  • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง → ์•„์›ƒ๋ฐ”์šด๋“œ ํฌํŠธ → ์•„์›ƒ๋ฐ”์šด๋“œ ์–ด๋Œ‘ํ„ฐ

์•„๋ž˜ ๊ทธ๋ฆผ์€ ์™ธ๋ถ€ ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„์—์„œ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ DB์— CRUD ํ•˜๋Š” ๊ณผ์ •์„ ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜์˜ ํ๋ฆ„์œผ๋กœ ๋„์‹ํ™”ํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ์ด๋‹ค.

ํฐ ๋„ค๋ชจ์˜ ๊ตฌํ˜„์ฒด๋“ค์€ ์ž‘์€ ๋„ค๋ชจ์˜ ์ธํ„ฐํŽ˜์ด์Šค์ธ ํฌํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ณ , ํฌํŠธ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ตฌํ˜„์ฒด๋“ค์€ ์ธํ„ฐํŽ˜์ด์Šค์— ์ •์˜๋œ ๋‚ด์šฉ์„ ๊ตฌํ˜„ํ•œ๋‹ค. 

 

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

๋˜, ํฌํŠธ๋ฅผ ํ†ตํ•ด์„œ ๋‚ด๋ถ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๋‚ด๋ถ€ ๋กœ์ง์˜ ๊ตฌํ˜„์€ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ  ๋†’์€ ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์€ MSA ์˜ ๋ชฉ์ ์„ฑ๊ณผ ๋ถ€ํ•ฉํ•˜๊ฒŒ ๋œ๋‹ค. 

๋Œ“๊ธ€