๋ฐœํ–‰-๊ตฌ๋… ํŒจํ„ด์€ ์˜ต์ €๋ฒ„ ํŒจํ„ด๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ์กฐ๊ธˆ ๋‹ค๋ฅธ ์ ์ด ํŠน์ง•์ธ ๋””์ž์ธํŒจํ„ด์ด๋‹ค. ์˜ต์ €๋ฒ„ ํŒจํ„ด์ด ํ•œ ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋ฐ”๋€” ๋•Œ ๊ทธ ๊ฐ์ฒด์— ์˜์กดํ•˜๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค์—๊ฒŒ ์•Œ๋ฆผ์ด ๊ฐ€๊ณ  ์ž๋™์œผ๋กœ ์ •๋ณด๊ฐ€ ๊ฐฑ์‹ ๋˜๋Š” 1:N์˜ ๊ฐ•ํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ€์กŒ๋‹ค๋ฉด, Pub-subํŒจํ„ด์€ ์ด๋ณด๋‹ค๋Š” ๋А์Šจํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋Š” ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค.

์ด ๋””์ž์ธ ํŒจํ„ด์€ ๋น„๋™๊ธฐ ๋ฉ”์„ธ์ง• ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ ,๋ฐœํ–‰์ž์ธ Publisher๊ฐ€ ์žˆ๊ณ , ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด์„œ ๊ตฌ๋…์ค‘์ธ Subscriber๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ทธ ๋‘˜ ์‚ฌ์ด์—๋Š” Message Broker๊ฐ€ ์กด์žฌํ•œ๋‹ค.

Message Broker๋Š” Publisher๊ฐ€ ๋ฐœํ–‰ํ•˜๋Š” ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ณ , ๋งŒ์•ฝ ์ด๋ฒคํŠธ๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด Message Broker๋ฅผ ํ†ตํ•ด ์ •ํ•ด์ง„ ๋ฒ”์ฃผ์— ๋”ฐ๋ผ ๊ตฌ๋…์„ ์‹ ์ฒญํ•œ ์ˆ˜์‹ ์ž์—๊ฒŒ ์ „๋‹ฌ์„ ํ•˜๋Š” ์—ญํ• ์ด๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋ฉ”์‹œ์ง€ ํ๊ฐ€ ๋ธŒ๋กœ์ปค์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๊ตฌ๋…๊ณผ ๋ฐœํ–‰ ์ดํ›„์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.

์˜ต์ €๋ฒ„ ํŒจํ„ด๊ณผ์˜ ์ฐจ์ด์ 

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

์ด ์™ธ์—๋„ ์ฐจ์ด์ ์€

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

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

์ด๋Ÿฌํ•œ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค์— ์žˆ๋Š” ๋ฉ”์‹œ์ง€ ํ์˜ ๊ฒฝ์šฐ ๋ฉ”์‹œ์ง€ ์ง€ํ–ฅ ๋ฏธ๋“ค์›จ์–ด (MOM : Message Oriented Middleware, ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐ„ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ )๋กœ ๊ตฌํ˜„ํ•œ ์‹œ์Šคํ…œ์œผ๋กœ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ฐฐ์น˜ ์ž‘์—…์ด๋‚˜ ์ฑ„ํŒ… ์„œ๋น„์Šค, ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋“ฑ์— ์ด์šฉ๋œ๋‹ค.

๋ฉ”์‹œ์ง€ ํ์˜ ํŠน์ง•

  • ๋น„๋™๊ธฐ(Asynchronous) : ํ์— ๋„ฃ์–ด์„œ ๋‚˜์ค‘์— ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
  • ๋น„๋™์กฐ(Decoupling) : ์•ฑ๊ณผ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ
  • ํƒ„๋ ฅ์„ฑ(Resilience) : ์ผ๋ถ€ ์‹คํŒจ๊ฐ€ ์ „์ฒด์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š์Œ
  • ๊ณผ์ž‰(Redunadancy) : ์‹คํŒจํ•  ๊ฒฝ์šฐ ์žฌ์‹คํ–‰ ๊ฐ€๋Šฅ
  • ๋ณด์ฆ(Guarantees) : ์ž‘์—… ์ฒ˜๋ฆฌ ํ™•์ธ ๊ฐ€๋Šฅ
  • ํ™•์žฅ์„ฑ(Scalable) : ๋‹ค์ˆ˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ํ์— ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ ๊ฐ€๋Šฅ

ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฉ”์‹œ์ง€ ํ์˜ ๋‹จ์ ์œผ๋กœ๋Š” ํ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ตญ ๋’ค์— ์žˆ๋Š” ๋ฉ”์‹œ์ง€์˜ ๊ฒฝ์šฐ ๊ตฌ๋…์ž์—๊ฒŒ ๊ฐ€๊ธฐ ๊นŒ์ง€ ๊ณผ๋„ํ•œ ํŠธ๋ž˜ํ”ฝ์— ๋”ฐ๋ผ ์ง€์—ฐ์ด ๋งŽ์ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ ์ด ์žˆ๋‹ค.