1์žฅ ์‚ฌ์šฉ์ž ์ˆ˜์— ๋”ฐ๋ฅธ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ ๋‹ค๋ฃจ๊ธฐ

์ˆ˜์ง์  ๊ทœ๋ชจํ™•์žฅ vs ์ˆ˜ํ‰์  ๊ทœ๋ชจํ™•์žฅ

  • ์ˆ˜์ง์  ๊ทœ๋ชจํ™•์žฅ (์Šค์ผ€์ผ์—…)

    • ์„œ๋ฒ„์— ๊ณ ์‚ฌ์–‘ ์ž์›(๋” ์ข‹์€ CPU, ๋” ๋งŽ์€ RAM)์„ ์ถ”๊ฐ€ํ•˜๋Š” ํ–‰์œ„
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ํ•˜๋“œ์›จ์–ด์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์–ด์„œ, CPU, RAM ๋“ฑ์„ ๋ฌดํ•œ ์ฆ์„ค ํ• ์ˆ˜๋Š” ์—†๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ณ„์† ๋Š˜์–ด๋‚˜๋ฉด ๊ฒฐ๊ตญ ์„œ๋ฒ„ ํ•œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋Š” ์–ด๋ ค์›€.
    • SFOF(Single Point of Failure)๋กœ ์ธํ•œ ์œ„ํ—˜์ด ํฌ๋‹ค.
      • SFOF ๋ž€ ๋‹จ์ผ ์žฅ์•  ์ง€์ . ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด ํ•˜๋‚˜์˜ ์„œ๋ฒ„๋กœ๋งŒ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” ๊ฒƒ.
  • ์ˆ˜ํ‰์  ๊ทœ๋ชจํ™•์žฅ (์Šค์ผ€์ผ์•„์›ƒ)

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

    • ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ
    • ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ์›น์„œ๋ฒ„๋“ค์—๊ฒŒ ํŠธ๋ž˜ํ”ฝ ๋ถ€ํ•˜๋ฅผ ๊ณ ๋ฅด๊ฒŒ ๋ถ„์‚ฐํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‹ค์ค‘ํ™”

    • ์ฃผ(master)-๋ถ€(slave)๊ด€๊ณ„๋ฅผ ์ •ํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์›๋ณธ์€ ์ฃผ์„œ๋ฒ„์—, ์‚ฌ๋ณธ์€ ๋ถ€์„œ๋ฒ„์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹
    • ์“ฐ๊ธฐ์—ฐ์‚ฐ์€ ๋งˆ์Šคํ„ฐ์—๋งŒ ์ง€์›ํ•˜๊ณ  ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ฃผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ๋ถ€ํ„ฐ ๊ทธ ์‚ฌ๋ณธ์„ ์ „๋‹ฌ๋ฐ›์•„์„œ ์ฝ๊ธฐ ์—ฐ์‚ฐ๋งŒ์„ ์ง€์›ํ•œ๋‹ค.

์บ์‹œ

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

์บ์‹œ๋ฅผ ์‚ฌ์šฉ ํ•  ๋•Œ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์œ ์˜์ ์ด ์žˆ๋‹ค

  1. ์บ์‹œ๋Š” ์–ด๋–ค ์ƒํ™ฉ์— ๋ฐ”๋žŒ์งํ•œ๊ฐ€?
    • ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ ์€ ์ž์ฃผ ์ผ์–ด๋‚˜์ง€ ์•Š์ง€๋งŒ, ์ฐธ์กฐ๋Š” ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚œ๋‹ค๋ฉด ๊ณ ๋ คํ•ด๋ณผ๋งŒํ•˜๋‹ค.
  2. ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ์— ๋‘์–ด์•ผํ•˜๋Š”๊ฐ€?
    • ์บ์‹œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ์— ๋‘๋ฏ€๋กœ, ์˜์†์ ์œผ๋กœ ๋ณด๊ด€ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ์— ๋‘๋Š” ๊ฒƒ์€ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š๋‹ค.
  3. ์บ์‹œ์— ๋ณด๊ด€๋œ ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋ฃŒ ๋˜๋Š”๊ฐ€?
  4. ์ผ๊ด€์„ฑ์€ ์–ด๋–ป๊ฒŒ ์œ ์ง€๋˜๋Š”๊ฐ€?
    • ์ผ๊ด€์„ฑ์€ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์˜ ์›๋ณธ์„ ๊ฐฑ์‹ ํ•˜๋Š” ์—ฐ์‚ฐ๊ณผ ์บ์‹œ๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ์—ฐ์‚ฐ์ด ๋‹จ์ผ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ผ๊ด€์„ฑ์ด ๊นจ์ง„๋‹ค.
  5. ์žฅ์• ์—๋Š” ์–ด๋–ป๊ฒŒ ๋Œ€์ฒ˜ํ•  ๊ฒƒ์ธ๊ฐ€?
    • ์บ์‹œ ์„œ๋ฒ„๋ฅผ ํ•œ๋Œ€๋งŒ ๋‘๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์„œ๋ฒ„๋Š” ๋‹จ์ผ ์žฅ์•  ์ง€์  (SPOF)์ด ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค.
  6. ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์–ผ๋งˆ๋‚˜ ํฌ๊ฒŒ ์žก์„ ๊ฒƒ์ธ๊ฐ€?
    • ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ์•ก์„ธ์Šค ํŒจํ„ด์— ๋”ฐ๋ผ์„œ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ์ž์ฃผ ์บ์‹œ์—์„œ ๋ฐ€๋ ค๋‚˜๋ฒ„๋ ค์„œ (eviction) ์บ์‹œ์˜ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๊ฒŒ ๋œ๋‹ค. ์ด๋ฅผ ๋ง‰์„ ๋ฐฉ๋ฒ•์€ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณผํ• ๋‹นํ•˜๋Š”๊ฒƒ
  7. ๋ฐ์ดํ„ฐ ๋ฐฉ์ถœ(eviction) ์ •์ฑ…์€ ๋ฌด์—‡์ธ๊ฐ€?
    • ์บ์‹œ๊ฐ€ ๊ฝ‰ ์ฐจ๋ฒ„๋ฆฌ๋ฉด ์ถ”๊ฐ€๋กœ ์บ์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์•ผ ํ•  ๊ฒฝ์šฐ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด์•ผํ•œ๋‹ค. ์ด๊ฒƒ์„ ์บ์‹œ ๋ฐ์ดํ„ฐ ๋ฐฉ์ถœ ์ •์ฑ…์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, LRU(Leat Recently Used), LFU(Least Frequently Used), FIFO(First In First Out)๊ณผ ๊ฐ™์€ ์ •์ฑ…์ด ์žˆ๋‹ค.

CDN

  • CDN์€ ์ •์  ์ฝ˜ํ…์ธ ๋ฅผ ์ „์†กํ•˜๋Š”๋ฐ ์“ฐ์ด๋Š” ์ง€๋ฆฌ์ ์œผ๋กœ ๋ถ„์‚ฐ๋œ ์„œ๋ฒ„์˜ ๋„คํŠธ์›Œํฌ์ด๋‹ค.
  • ์ด๋ฏธ์ง€/๋น„๋””์˜ค/CSS/Javascript ํŒŒ์ผ๋“ฑ์„ ์บ์‹œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

CDN ์‚ฌ์šฉ ์‹œ ๊ณ ๋ คํ•ด๋ด์•ผํ•  ์ 

  1. ๋น„์šฉ
    • ์ž์ฃผ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์บ์‹ฑํ•˜๋Š” ๊ฒƒ์€ ์ด๋“์ด ํฌ์ง€ ์•Š์œผ๋ฏ€๋กœ, CDN์—์„œ ๋นผ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์ž.
  2. ์ ์ ˆํ•œ ๋งŒ๋ฃŒ ์‹œํ•œ ์„ค์ •
    • ์‹œ์˜์„ฑ์ด ์ค‘์š”ํ•œ ์ฝ˜ํ…์ธ ์˜ ๊ฒฝ์šฐ, ๋งŒ๋ฃŒ์‹œ์ ์„ ์ž˜ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค. ๋„ˆ๋ฌด ๊ธธ๋ฉด ์ฝ˜ํ…์ธ ์˜ ์‹ ์„ ๋„๊ฐ€ ๋–จ์–ด์ง€๊ณ , ๋„ˆ๋ฌด ์งง์œผ๋ฉด ์›๋ณธ์„œ๋ฒ„์— ๋นˆ๋ฒˆํžˆ ์ ‘์†ํ•˜๊ฒŒ ๋˜์–ด ์ข‹์ง€ ์•Š๋‹ค.
  3. CDN ์žฅ์• ์— ๋Œ€ํ•œ ๋Œ€์ฒ˜ ๋ฐฉ์•ˆ
    • CDN ์ž์ฒด๊ฐ€ ์ฃฝ์—ˆ์„ ๊ฒฝ์šฐ, ์›น์‚ฌ์ดํŠธ/์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•  ์ง€ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค.
  4. ์ฝ˜ํ…์ธ  ๋ฌดํšจํ™” (Invalidation) ๋ฐฉ๋ฒ•
    • CDN ์„œ๋น„์Šค ์‚ฌ์—…์ž๊ฐ€ ์ œ๊ณตํ•˜๋Š” API๋กœ ๋ฌดํšจํ™”ํ•˜๊ธฐ.
    • ์ฝ˜ํ…์ธ ์˜ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์„œ๋น„์Šคํ•˜๋„๋ก ์˜ค๋ธŒ์ ํŠธ ๋ฒ„์ €๋‹ ์ด์šฉํ•˜๊ธฐ. URL ๋งˆ์ง€๋ง‰์— ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ธ์ž๋กœ ์ฃผ๊ธฐ.

๋ฌด์ƒํƒœ(Stateless) ์›น ๊ณ„์ธต

์›น ๊ณ„์ธต์„ ์ˆ˜ํ‰์ ์œผ๋กœ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•ด๋ณด์ž.

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

๋ฉ”์‹œ์ง€ ํ

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

๋ฉ”์‹œ์ง€ํ๋ž€ ๋ญ˜๊นŒ?

  • ๋ฉ”์‹œ์ง€ ํ๋Š” ํ”„๋กœ์„ธ์Šค ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ†ต์‹  ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ๋ฉ”์‹œ์ง€ ์ง€ํ–ฅ ๋ฏธ๋“ค์›จ์–ด (Message Oriented Middleware)๋ฅผ ๊ตฌํ˜„ํ•œ ์‹œ์Šคํ…œ

  • ๋ฉ”์‹œ์ง€ ์ง€ํ–ฅ ๋ฏธ๋“ค์›จ์–ด๋ž€, ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋“ค ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

  • ๋ฉ”์‹œ์ง€ ํ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฒ„ํผ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

  • ๋ฉ”์‹œ์ง€ ์ „์†ก์‹œ ์ƒ์‚ฐ์ž(Producer)๋กœ ์ทจ๊ธ‰๋˜๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฉ”์‹œ์ง€ ํ์— ์ถ”๊ฐ€ํ•œ๋‹ค. ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋Š” ์†Œ๋น„์ž (Consumer)๋กœ ์ทจ๊ธ‰๋˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•ด ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๊นŒ์ง€ ๋ฉ”์‹œ์ง€ ํ์— ์ €์žฅ๋œ๋‹ค.

  • ๊ฐ ๋ฉ”์‹œ์ง€๋Š” ํ•˜๋‚˜์˜ ์†Œ๋น„์ž์— ์˜ํ•ด ํ•œ๋ฒˆ๋งŒ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋‹ค. (์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ๋ฉ”์‹œ์ง€ ํ๋ฅผ ์ผ๋Œ€์ผ ํ†ต์‹ ์ด๋ผ๊ณ  ๋ถ€๋ฆ„)

๋ฉ”์‹œ์ง€ ํ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”?

  • ๋ฉ”์‹œ์ง€ ํ๋Š” ์†Œ๋น„์ž๊ฐ€ ์‹ค์ œ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์–ด๋Š ์‹œ์ ์— ๊ฐ€์ ธ๊ฐ€์„œ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ๋ณด์žฅํ•˜์ง€ ์•Š์Œ. ์–ธ์  ๊ฐ€๋Š” ํ์— ๋„ฃ์–ด๋‘” ๋ฉ”์‹œ์ง€๊ฐ€ ์†Œ๋น„๋˜์–ด ์ฒ˜๋ฆฌ๋  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ๋Š”๋‹ค.

  • ๋”ฐ๋ผ์„œ, ์ด๋Ÿฌํ•œ ๋น„๋™๊ธฐ์  ํŠน์„ฑ ๋•Œ๋ฌธ์— ๋ฉ”์‹œ์ง€ ํ๋Š” ์‹คํŒจํ•˜๋ฉด ์น˜๋ช…์ ์ธ ํ•ต์‹ฌ ์ž‘์—…๋ณด๋‹ค๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ถ€๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์— ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

  • ์ด๋ฉ”์ผ ์ „์†ก

  • ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…

๋ฉ”์‹œ์ง€ ํ์˜ ์ด์ 

  • ๋น„๋™๊ธฐ

    • ๋™๊ธฐํ™” ๋ฐฉ์‹์€ ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋  ๊ฒฝ์šฐ ๋ณ‘๋ชฉ์ด ์ƒ๊ธฐ๊ณ , ๋’ค์— ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์ง€์—ฐ์ด ์ƒ๊น€.
  • ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„

    • ์ƒ์‚ฐ์ž ์„œ๋น„์Šค์™€ ์†Œ๋น„์ž ์„œ๋น„์Šค๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ํ–‰๋™ํ•˜๊ฒŒ ๋จ์œผ๋กœ ์„œ๋น„์Šค๊ฐ„ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ์•„์ง„๋‹ค.
  • ํ™•์žฅ์„ฑ

    • ์ƒ์‚ฐ์ž ์„œ๋น„์Šค ํ˜น์€ ์†Œ๋น„์ž ์„œ๋น„์Šค๋ฅผ ์›ํ•˜๋Š”๋Œ€๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ™•์žฅ์„ฑ์ด ์ข‹๋‹ค.
  • ํƒ„๋ ฅ์„ฑ

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

    • ๋ฉ”์‹œ์ง€ ํ๋Š” ํ์— ๋ณด๊ด€๋˜๋Š” ๋ชจ๋“  ๋ฉ”์‹œ์ง€๊ฐ€ ๊ฒฐ๊ตญ ์†Œ๋น„์ž์„œ๋น„์Šค์—๊ฒŒ ์ „๋‹ฌ๋œ๋‹ค๋Š” ์ผ๋ฐ˜์ ์ธ ๋ณด์žฅ์„ ์ œ๊ณตํ•œ๋‹ค.
  • RabbitMQ, Kafka, ActiveMQ ๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค.