Repository navigation
Home
hyoguoo edited this page Oct 5, 2026
·
14 revisions
๊ฒฐ์ ํ๋ซํผ ํ๋ก์ ํธ์ ๊ฐ ๋จ๊ณ๋ณ ์ค๊ณ ๊ฒฐ์ , ๊ตฌํ ์ธ๋ถ ๋ด์ฉ, ํธ๋ ์ด๋์คํ๋ฅผ ๊ธฐ๋กํ ๊ณต๊ฐ์ด๋ค.
- Architecture โ 4์๋น์ค MSA + hexagonal 6ํจํค์ง ๊ตฌ์กฐ, ํต์ ยท์ธํ๋ผ ํ ํด๋ก์ง
- MSA ์ ํ โ ๋ชจ๋๋ฆฌ์ค์์ 4์๋น์ค ๋ถํด, ๋์ ๊ฒฐํฉ โ ์๋ก ๋ง๋ ์์ฐ
- ์ด๋ฒคํธ ๋๋ฆฌ๋ธ ์ฝ๋ ์ค๊ทธ๋ํผ โ Kafka ํ ํฝ ์นดํ๋ก๊ทธ์ 3์ ์ํ์ค
-
์ฌ๊ณ ์บ์ ๋ณด์ ํ๋ณต โ Lua atomic โ ๋ณด์ ์คํจ์ Kafka native ํ๋ณต + dedupe lease ํ๊ธฐ (Lua ์ค๊ณ๋ Phase 6 ์ด๊ธฐ ๋ชจ๋ธ)
- ์ฌ๊ณ ์ ์ฐจ๊ฐ ๊ฒ์ดํธ ์ํ ๋จ์ ๋ถํด โ ์บ์ ์ค๋ฉ์ ์ ์ ๋ก ์์์ฑ ๊ฒฝ๊ณ๋ฅผ ์ํ ๋จ์๋ก ๋ด๋ฆฐ ํ์ฌ ๋ชจ๋ธ
-
Outbox ํจํด โ ํธ๋์ญ์
๊ณผ ๋ฐํ์ ํ RDB๋ก ๋ฌถ๋ ๋ฐํ ๋ณด์ฅ (2 ๋ชจ๋ธ ๋น๊ต)
- Outbox ์ฑ๋ ๋์คํจ์น โ pg-service ํจํด B ์์ธ (in-memory channel + OTel/MDC ํธ๋์คํ)
- ๋ฉ์์ง ์ ๋ฌ ๋ณด์ฅ + dedupe โ at-least-once + ๋๋ฉ์ธ๋ณ ๋ฉฑ๋ฑ ์๋น + DLQ
- ๊ฒฐ์ ๋ณต๊ตฌ ๋ชจ๋ธ โ ๋ฉ์ถ ๊ฒฐ์ ๋ฅผ ๋์ด๋ฆฌ๋ ๋ณต๊ตฌ ์ค์ผ์ค๋ฌ, ๋๋๋ฆฌ๊ธฐ์ ๋์ฐฉ์ง, ๋ฎ์ด์ฐ๊ธฐ๋ฅผ ๋ง๋ ๋ ์๋ฆฌ
- PG ๊ฒฐ์ ํ์ธ ํ๋ฆ โ pg-service ๊ฐ ํ์ธ ๋ช ๋ น ํ ๊ฑด์ ๋ฐ์ ๊ฒฐ๊ณผ ์ด๋ฒคํธ๋ก ํ์ ํ๋ ํ ์ฌ์ดํด
- MySQL Index Merge ๋ฐ๋๋ฝ โ ์๋ก ๋ค๋ฅธ ์ฃผ๋ฌธ์ UPDATE ์ถฉ๋ ์ฌํ, ๋ณตํฉ ์ธ๋ฑ์ค ๊ต์ฒด์ ์๋ฃ p99 ๊ฐ์
- ๋ถ์ฐ ํธ๋ ์ด์ฑ โ OTel + Kafka ํค๋ + ๊ฐ์ ์ค๋ ๋ ์ปจํ ์คํธ ์ ํ
- Benchmark-Report โ Phase 5 ๋ชจ๋๋ฆฌ์ค์ Sync vs Async ์ ๋ต TPSยท๋ ์ดํด์ ์ ๋ ๋น๊ต
- MSA ์น์ธ ๊ฒฐ๊ณผ ์ ์ฅ ๋ฐ๋๋ฝ ๊ฐ์ โ ์๋ฃ p99 73.10์ด โ 9.28์ด, paymentยทPG ๊ฐ 2๋ / ์ฃผ ๋ถํ 40๊ฑด/์ด / ๊ฐ ์กฐ๊ฑด 1ํ
๐ Home
- MSA ์ ํ
- ์ด๋ฒคํธ ๋๋ฆฌ๋ธ ์ฝ๋ ์ค๊ทธ๋ํผ
- ์ฌ๊ณ ์บ์ ๋ณด์ ํ๋ณต โ Lua atomic
- Outbox ํจํด
- ๋ฉ์์ง ์ ๋ฌ ๋ณด์ฅ + dedupe
- ๊ฒฐ์ ๋ณต๊ตฌ ๋ชจ๋ธ
- PG ๊ฒฐ์ ํ์ธ ํ๋ฆ
- ๋ถ์ฐ ํธ๋ ์ด์ฑ
Phase 1 ยท ๋ฐ์ดํฐ ์ ํฉ์ฑ ํ๋ฆฝ
Phase 2 ยท ๊ฒฐํฉ๋ ํด์ ๋ฐ ์๊ฐ ๋ณต๊ตฌ๋ ฅ
Phase 3 ยท ์ด์ ๊ฐ์์ฑ ๋ฐ ์์ ์ฑ
Phase 4 ยท ๋ฐ์ดํฐ ์ ํฉ์ฑ ์ฌํ ๋ฐ ์ค๋ณต ์ ์ด
Phase 5 ยท ๋น๋๊ธฐ ๊ฒฐ์ ์ํคํ ์ฒ ์ ํ
- ๋น๋๊ธฐ Outbox & ๊ฐ์ ์ค๋ ๋ ๊ธฐ๋ฐ ๊ฒฐ์ ํ๋ก์ฐ
- ๊ฒฐ์ ์ํ ๊ด๋ฆฌ โ ๋๋ฉ์ธ ์ํ ๋จธ์ ๊ณผ ๋ฐฑ์คํ ๊ธฐ๋ฐ ์ฌ์๋
ETC ยท ์ค๊ณ ์ ์ฐ์ฑ
ETC ยท AI ๊ธฐ๋ฐ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ