์ด๋ฒคํธ ๋๋ฆฌ๋ธ ์ํคํ ์ฒ ๋๋ ์ด๋ฒคํธ ์ฃผ๋ ์ํคํ ์ฒ๋ ์ด๋ฒคํธ๋ฅผ ์์ฑ, ์ ๋ฌ, ์ฒ๋ฆฌ, ์๋นํ๋ ๋ฐฉ์์ผ๋ก ์์คํ ์ ๊ตฌ์ฑ ์์๊ฐ ํต์ ์ด ์ด๋ฃจ์ด์ง๋ ํ๋์ ์ธ ์ํคํ ์ฒ ์คํ์ผ์ด๋ค. ์ค๋๋ ๋๊ท๋ชจ ํธ๋ํฝ์ด๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ๋ง์ด ์ฐ์ธ๋ค. MSA, ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์ด๋ฒคํธ ์์ฑ๊ณผ ๊ฐ์ ๋ค์ํ ์๋๋ฆฌ์ค์์ ํ์ฉ๋๋ค. ๊ทธ ์ด์ ๋ ์ด๋ฒคํธ ๋ธ๋ก์ปค๋ฅผ ํ์ฉํด ๋น๋๊ธฐ์ ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ณ , ํ๋ก์ธ์ค ๊ฐ ๋์จํ ๊ฒฐํฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ๋์ ๊ฐ์ฉ์ฑ์ ๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค. ์์คํ ๋ด์์ ํน์ ์์ ์ด๋ ์ํ ๋ณํ๊ฐ ๋ฐ์ํ ๋ ์ด๋ฅผ ์ด๋ฒคํธ๋ก ํํํ๊ณ ํด๋น ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น๋๊ธฐ์ ์ผ๋ก ํ์ ์์ ์ด ์งํ๋๋ค.
์ด๋ฒคํธ
์์คํ ๋ด์์ ๋ฐ์ํ๋ ์ํ ๋ณํ๋ ํ๋์ ๋ํ๋ธ๋ค.
์์: ์ฃผ๋ฌธ ์์ฑ, ๊ฒฐ์ ์๋ฃ, ์ฌ์ฉ์ ๊ฐ์ ๋ฑ
์ด๋ฒคํธ ํ๋ก๋์ - Event Producer
์ด๋ฒคํธ๋ฅผ ์์ฑํ๊ณ ๋ฐํํ๋ ์ฃผ์ฒด
์๋น์๊ฐ ์ด๋ฒคํธ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋ ์ง๋ ์ ๊ฒฝ์ฐ์ง ์๊ณ ์ด๋ฒคํธ ๋ฐ์๋ง์ ์ ๊ฒฝ์ฐ๊ณ ๋ด๋นํ๋ค.
์์: ๊ฒฐ์ ์์คํ ์์ "๊ฒฐ์ ์๋ฃ" ์ด๋ฒคํธ๋ฅผ ๋ฐํ
์ด๋ฒคํธ ๋ธ๋ก์ปค - Event Broker
์ด๋ฒคํธ ๋ผ์ฐํ ๋ฐ ์ ๋ฌ์ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค. ์ด๋ฒคํธ ๋ธ๋ก์ปค๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋์ด์ ์ด๋ฒคํธ๋ฅผ ํด๋ง, ํํฐ๋ง ๋ฐ ๋ผ์ฐํ ํ ์ฝ๋ ์์ฑ ํ์๊ฐ ์ฌ๋ผ์ก๋ค. ์ด๋ฒคํธ ๋ธ๋ก์ปค๋ ์๋์ผ๋ก ์ด๋ฒคํธ๋ฅผ ํํฐ๋งํ๊ณ ์๋น์์๊ฒ ํธ์ํ๋ค. ๋ํ ์์ฐ์ ์๋น์ค์ ์๋น์ ์๋น์ค ๊ฐ ๊ณผ๋ํ ์กฐ์ ์ ํ์์ฑ์ ์์ ๊ฐ๋ฐ ํจ์จ์ฑ์ ๋์ธ๋ค.
์์: Kafka, RabbitMQ, AWS SNS/SQS, Azure Event Hub
์ด๋ฒคํธ ์๋น์ - Event Consumer
๋ธ๋ก์ปค๋ถํฐ ๋ฉ์์ง๋ฅผ ์๋นํ๋ ์ฃผ์ฒด
๋ฐ์๋ ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋ ํ๊ณ , ํด๋น ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น์ฆ๋์ค ๋ก์ง์ ์คํํ๋ค.
์์: "๊ฒฐ์ ์๋ฃ" ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋ํ ์๋ฆผ ์์คํ ์์ ์๋ฆผ ๋ฌธ์ ๋ฐ ์ด๋ฉ์ผ ๋ฐ์ก
์ด๋ฒคํธ ํธ๋ค๋ฌ - Event Handler
ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ์คํ๋๋ ๋น์ฆ๋์ค ๋ก์ง ๋๋ ํ๋ก์ธ์ค๋ฅผ ๋ด๋นํ๋ค.
EDA ์ ํต์ฌ ์ฃผ์ ํน์ง
1. ๋น๋๊ธฐ ์ฒ๋ฆฌ
์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌ๋๋ฉฐ, ๊ฐ๊ฐ ํ๋ก๋์์ ์ปจ์๋จธ๊ฐ ๋ ์ง์ ์ผ๋ก ๋์ํ๋ค.
2. ๋์จํ ๊ฒฐ๊ณผ
ํ๋ก๋์์ ์ปจ์๋จธ ๊ฐ์ ์ง์ ์ ์ธ ์์กด์ฑ์ด ์ฌ๋ผ์ง๋ค. ๋ธ๋ก์ปค๋ฅผ ํตํด ๋ฉ์์ง๊ฐ ์ ๋ฌ๋๋ฏ๋ก ๊ฐ ์ปดํฌ๋ํธ๋ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ, ๋ฐฐํฌ, ํ์ฅ์ด ๊ฐ๋ฅํด์ง๋ค.
3. ํ์ฅ์ฑ
๋คํ ํ์ดํ์ธ ๋ฉ์์ง ๋ธ๋ก์ปค๋ฅผ ํตํด ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์์คํ ์ ํ์ฅ์ฑ์ด ๋ฐ์ด๋๋ค.
4. ์ค์๊ฐ ์ฒ๋ฆฌ
์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์๋ง์ ์๋น์๊ฐ ์ค์๊ฐ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค. ํนํ ์นดํ์นด ๊ฐ์ ์ค์๊ฐ ๋ฐ์ดํฐ ์คํ๋ฆฌ๋ฐ ํ๋ซํผ์ ์ฌ์ฉํ๋ค๋ฉด ๋์ฑ ๋์ ์ฑ๋ฅ์ ๋ณด์ผ ์ ์๋ค.
EDA ์ฅ์
1. ๋ด๊ฒฐํจ์ฑ
์ด๋ฒคํธ ๋ธ๋ก์ปค๊ฐ ๋ฉ์์ง ์ ์ฅ ๋ฐ ์ฌ์ ์ก์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ์์คํ ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ๋ฐ์ดํฐ๋ฅผ ์์ค์์ด ๋ณต๊ตฌํ ์ ์๋ค.
2. ์ ์ฐ์ฑ, ํ์ฅ์ฑ๊ณผ ๋ ๋ฆฝ์ฑ
๊ฐ ์ปดํฌ๋ํธ๋ค์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ฉฐ ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค. ๋๋ถ์ ์ปดํฌ๋ํธ๋ค์ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅ๋ ๊ฐ๋ฅํ๋ค.
EDA ๋จ์
1. ๋ณต์ก์ฑ ์ฆ๊ฐ
๋น๋๊ธฐ ํต์ ๊ณผ ๋์จํ ๊ฒฐํฉ์ผ๋ก ์ธํด ์์คํ ์ค๊ณ์ ๋๋ฒ๊น ์ด ์ด๋ ค์์ง๋ค.
2. ๋ฉ์์ง ์ค๋ณต ์ฒ๋ฆฌ
์ด๋ฒคํธ๋ฅผ ์ค๋ณต์ผ๋ก ์ฒ๋ฆฌํ ์ํ์ด ์์ผ๋ฏ๋ก ์์ดํ ํฌํด์( idempotency ) ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ค. ์ฆ ๋ฉฑ๋ฑ์ฑ์ด ๊ตฌํ๋ ๋ฉ์์ง ์๋ฃจ์ ์ ์ ๊ฒฝ์จ์ผ ํ๋ค.
3. ์ง์ฐ๋ฌธ์
๋ธ๋ก์ปค๋ฅผ ํตํ ์ด๋ฒคํธ ์ ๋ฌ๋ก ์ผ๋ถ ์ํฉ์์๋ ์ง์ฐ์ด ๋ฐ์ํ ์ ์๋ค. ๋ฐ๋ผ์ ์ ์ ํ ๋ณต์ฌ๋ณธ๊ณผ ํด๋ฌ์คํฐ ๊ด๋ฆฌ๊ฐ ํ์์ ์ด๋ค.
'Architecture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฒฐ์ ์์คํ ๊ตฌ์กฐ์ ๊ฐํธ ๊ฒฐ์ ์์คํ ์ํคํ ์ฒ์์ ๊ณ ๋ คํด์ผ ํ๋ ์ (0) | 2024.10.14 |
---|---|
MSA ์ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ (0) | 2024.08.26 |
๋๊ธ