๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ”ฌ์•„ํ‚คํ…์ฒ˜/- Event-Driven-Architecture3

Event-Driven-Architecture ์— ๋Œ€ํ•œ Overview ์™€ ์—ฌ๋Ÿฌ ๊ณ ๋ ค์‚ฌํ•ญ๋“ค ๋ชฉ์ฐจ Event ๋ž€ Event Driven Architecture ๋ž€ Event Driven Architecture ์˜ ๊ตฌํ˜„ ๋ชจ๋ธ Event-Driven-Architecture ์—์„œ ๊ณ ๋ คํ•ด์•ผํ•  ๋ฌธ์ œ๋“ค Event ๋ž€ Event ๋Š” ๋ฌด์—‡์ผ๊นŒ? Event ์˜ ๊ฐœ๋…์€ ๊ฐ„๋‹จํ•˜๋‹ค. ์ด๋ฒคํŠธ๋Š” ๊ณผ๊ฑฐ์— ์ผ์–ด๋‚œ ์–ด๋– ํ•œ ์‚ฌ๊ฑด์ด๋‹ค. Event-Streaming-Platform ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ด๋ฒคํŠธ๋ฅผ ํ†ตํ•ด์„œ ๋ถ„์‚ฐ๋œ ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ณ  ์–ด๋– ํ•œ side effect ๋ฅผ ์ผ์œผํ‚ค๊ฑฐ๋‚˜ ํŠน์ • process ๋ฅผ trigger ํ•˜๋ฉฐ ์–ด๋–จ ๋Œ€๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”๋ฅผ ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์—ฌ๋Ÿฌ ์ด์œ ๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ ์ƒ๊ฐํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” ๋ฐ”๋กœ ์‹œ์Šคํ…œ๊ฐ„ ๊ฐ•ํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋œ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€.. 2022. 8. 22.
[Event-Driven-Architecture] CQRS ํŒจํ„ด์— ๋Œ€ํ•œ ์˜คํ•ด ํ’€๊ธฐ ๋ชฉ์ฐจ ๋„์ž… Query ์™€ Command ๋ž€? CQRS ๋ž€ CQRS ์˜ ์žฅ๋‹จ์  ๋„์ž… ํšŒ์‚ฌ ์‹œ์Šคํ…œ์ด ์ „ํ†ต์ ์ธ CRUD ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ Event ๊ธฐ๋ฐ˜์˜ ์‹œ์Šคํ…œ์œผ๋กœ ๋ฐ”๋€Œ์–ด ๊ฐ€๋Š” ๊ณผ์ •์— ํŒ€์— ํ•ฉ๋ฅ˜๋ฅผ ํ•˜๊ฒŒ ๋˜์–ด ๋‚˜์˜ ์ตœ๊ทผ ๊ฐ€์žฅ ํฐ ๊ด€์‹ฌ์‚ฌ๊ฐ€ ๋ฐ”๋กœ ์ด CQRS ์ด๋‹ค. ํ•™๋ถ€ ์‹œ์ ˆ์—๋„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž ๊น ์ž ๊น ๋ดค๋˜ CQRS ๋Š” ์ด๋ฆ„ ๋ถ€ํ„ฐ ์ƒ์†Œํ•˜๊ธฐ์— ๊ฒ์„ ๋จน์—ˆ๋˜ ๊ธฐ์–ต์ด ๋‚œ๋‹ค. ํ•˜์ง€๋งŒ CQRS ์˜ ์›๋ฆฌ ์ž์ฒด๋Š” ์‚ฌ์‹ค ๋˜๊ฒŒ ๊ฐ„๋‹จํ•˜๋‹ค Command ์™€ Query ๋ฅผ ๋ถ„๋ฆฌํ•˜์ž! Command ์™€ Query ๋ฅผ ๋จผ์ € ์ •์˜ํ•˜๊ณ  ์ด์•ผ๊ธฐ๋ฅผ ๊ณ„์† ํ•ด๋ณด์ž Query ์™€ Command ๋ž€? Query ์™€ Command ์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” CQS ์— ๋Œ€ํ•ด์„œ ๋จผ์ € ์•Œ์•„๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. CQS ๋Š” Design By Contr.. 2022. 6. 11.
[Event-Driven-Architecture] Message Oriented Middleware๊ณผ Message Broker์˜ ์ฐจ์ด ๋ฐ ์›๋ฆฌ ๋ชฉ์ฐจ ๋ฏธ๋“ค์›จ์–ด๋ž€? MOM ์ด๋ž€? MOM ๊ตฌ์„ฑ์š”์†Œ MOM vs without MOM Messaging ์˜ 2๊ฐ€์ง€ ๋ฐฉ์‹ PTP Messaging Pub/Sub Messaging Message Broker ๋Œ€ํ‘œ์ ์ธ MOM ์†”๋ฃจ์…˜ ์˜ค๋Š˜์€ ์š”์ฆ˜ ๋งŽ์€ ๋ถ„์•ผ์—์„œ ์ฑ„ํƒ๋˜์–ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” Message Oriented Middleware ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค. Message Oriented Middleware, MOM ์ด๋ž€ ํ•˜๋‚˜์˜ ์†Œํ”„ํŠธ์›จ์–ด๋‚˜ ์†”๋ฃจ์…˜ ๋ณด๋‹ค๋Š” ๋” ์ƒ์œ„ ๊ฐœ๋…์œผ๋กœ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ด๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์— ํ•ด๋‹นํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋ฌผ๋ก  MOM์„ ์œ„ํ‚คํ”ผ๋””์•„์—์„œ๋Š” ์‘์šฉ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์„ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ผ๊ณ  ๋ถ€๋ฅด์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์กฐ๊ธˆ ๋” ํฐ ๊ฐœ๋…์—์„œ ์ดํ•ดํ•ด๋ณด์ž. ์ด๋Ÿฐ MOM ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์šฐ์„  Middlew.. 2021. 5. 19.