๋ฐฐ์น๋ ์คํธ๋ฆฌ๋ฐ์ ํน๋ณํ ๊ฒฝ์ฐ์ ๋๋ค. ๋น์ฆ๋์ค๊ฐ ๋ช ์๊ฐ ๋์ ๋ช ์ด ๋ด์ ๋ฐ์ํด์ผ ํ ๋, ์ง์์ ์ธ ๋ฐ์ดํฐ ํ๋ฆ์ ์ํ ์ํคํ ์ฒ๊ฐ ํ์ํฉ๋๋ค.

๋์๋ณด๋๋ ๋๊ตฐ๊ฐ๊ฐ ๋ณผ ๋์ฏค์ด๋ฉด ์ด๋ฏธ ์ค๋๋์์ต๋๋ค. ์ฌ๊ธฐ ํ์ง๋ ์ผ๊ฐ ๋ฐฐ์น ์์ ์ผ๋ก ์คํ๋์ด ๋ค์ ๋ ์์นจ์ ์ฌ๊ธฐ๋ฅผ ์ก์ต๋๋ค. ์ฌ๊ณ ์๋์ ์๊ฐ ๋จ์๋ก ์ ๋ฐ์ดํธ๋์ด ๊ณผ๋งค์ถ์ ์ด๋ํฉ๋๋ค. ์ผ์ ๋ฐ์ดํฐ๋ ์์ง๋์ง๋ง ์ผ๊ฐ ETL์์ ๋ถ์๋ ๋๊น์ง ์กฐ์น๊ฐ ์ทจํด์ง์ง ์์ต๋๋ค. ๋ฐ์ดํฐ๊ฐ ์์ค์์ ์ฒ๋ฆฌ ๋ฐ ์๋น์์๊ฒ ์ด๋จ์ ์ง์ฐ์ผ๋ก ์ง์์ ์ผ๋ก ํ๋ฅด๋ ์์คํ ์ด ํ์ํฉ๋๋ค โ ์ค์๊ฐ ๋ถ์, ๋ผ์ด๋ธ ์๋ฆผ, ์คํธ๋ฆฌ๋ฐ AI ์ถ๋ก , ์์คํ ๊ฐ ์ฆ๊ฐ์ ์ธ ๋๊ธฐํ.
Explore more design patterns and system architectures
MicrocosmWorks๋ multi-consumer replay, ์ฅ๊ธฐ retention periods, cross-cloud portability๊ฐ ํ์ํ ํ์๊ฒ Kafka๋ฅผ ์ถ์ฒํฉ๋๋ค. Kafka์ log-based architecture๋ ๋ฌด์ ํ์ consumer groups๊ฐ ๋์ผํ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ค์ ์ฝ๋ ๊ฒ์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. Kinesis๋ AWS ecosystem์ ๊ธด๋ฐํ๊ฒ ํตํฉ๋ fully managed service๋ฅผ ์ํ๊ณ ๋ฐ์ดํฐ retention ์๊ตฌ ์ฌํญ์ด 7์ผ ๋ฏธ๋ง์ด๋ฉฐ consumer applications๊ฐ 10๊ฐ ๋ฏธ๋ง์ผ ๋ ๋ ๋์ ์ ํ์ ๋๋ค. ์ ํฌ๋ ์ฌ๋ฐ๋ฅธ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํ๊ธฐ ์ํด architecture assessment ์ค์ ๊ณ ๊ฐ์ ํน์ ์๊ตฌ ์ฌํญโthroughput, retention, consumer patterns, operational maturityโ์ ํ๊ฐํฉ๋๋ค.
MicrocosmWorks๋ ๋ฉฑ๋ฑ์ฑ(idempotent) ํ๋ก๋์, ํธ๋์ญ์ (transactional) ์๋น์, ๊ทธ๋ฆฌ๊ณ Redis์ ๊ฐ์ ๋น ๋ฅธ ์กฐํ ์บ์์ ์ ์ฅ๋ ์ด๋ฒคํธ ์ง๋ฌธ(event fingerprints)์ ์ฌ์ฉํ๋ ์ค๋ณต ์ ๊ฑฐ(deduplication) ๊ณ์ธต์ ์กฐํฉ์ ํตํด exactly-once ์๋งจํฑ์ ๊ตฌํํฉ๋๋ค. Kafka ๊ธฐ๋ฐ ์์คํ ์ ๊ฒฝ์ฐ, ์ฐ๋ฆฌ๋ ์๋น์ ์คํ์ (consumer offsets)๊ณผ ํ๋ก๋์ ์ฐ๊ธฐ(producer writes)๋ฅผ ์์์ ์ผ๋ก ์ปค๋ฐํ๋ Kafka์ ๋ด์ฅ transactional API๋ฅผ ํ์ฉํ๋ฉฐ, ๋ฐ๋ฉด ์ฌ์ฉ์ ์ ์ ์คํธ๋ฆฌ๋ฐ ํ์ดํ๋ผ์ธ์ ๊ฒฝ์ฐ ์๋น์ ์ธก์์ ์ค๋ณต ์ ๊ฑฐ(deduplication)๋ฅผ ํตํด outbox pattern์ ๊ตฌํํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์์ ๋ง(safety net)์ผ๋ก์ ์๋น์๋ฅผ ํญ์ ๋ฉฑ๋ฑ์ฑ(idempotent)์ ๊ฐ์ง๋๋ก ์ค๊ณํ์ฌ, exactly-once ๋ฉ์ปค๋์ฆ์ ์ฃ์ง ์ผ์ด์ค(edge-case) ์คํจ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ด๋ฒคํธ ์ฌ์ฒ๋ฆฌ(reprocessing)๋ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋๋ก ํฉ๋๋ค.
MicrocosmWorks๋ ์ผ๋ฐ์ ์ผ๋ก ingestion, processing, ๊ทธ๋ฆฌ๊ณ sink writing์ ํฌํจํ๋ ์คํธ๋ฆฌ๋ฐ ํ์ดํ๋ผ์ธ์ ๋ํด 50-200ms์ ์ข ๋จ ๊ฐ(end-to-end) ์ง์ฐ ์๊ฐ(๋ ์ดํด์)์ ์ ๊ณตํ๋ฉฐ, Apache Flink ๋๋ Kafka Streams์ ๊ฐ์ ์ธ๋ฉ๋ชจ๋ฆฌ ์คํธ๋ฆผ ํ๋ก์ธ์๋ฅผ ์ฌ์ฉํ๋ ๋ ๊ฐ๋จํ passthrough ๋๋ filtering ์ํฌ๋ก๋์ ๊ฒฝ์ฐ 10ms ๋ฏธ๋ง๋ ๋ฌ์ฑ ๊ฐ๋ฅํฉ๋๋ค. ๊ฐ์ฅ ํฐ ์ง์ฐ ์๊ฐ(๋ ์ดํด์) ๋ฐ์ ์์ธ์ ์ผ๋ฐ์ ์ผ๋ก ๋คํธ์ํฌ ํ, ์ง๋ ฌํ ์ค๋ฒํค๋, ๊ทธ๋ฆฌ๊ณ ์ฑํฌ ์ฐ๊ธฐ ๋ฐฐ์น(batching)์ด๋ฉฐ, ์ด๋ ๊ณ ๊ฐ์ ์ง์ฐ ์๊ฐ(latency)๊ณผ ์ฒ๋ฆฌ๋(throughput) ๊ฐ์ ํธ๋ ์ด๋์คํ ์ ํธ๋์ ๋ฐ๋ผ ์กฐ์ ํฉ๋๋ค. ์ํคํ ์ฒ ์ค๊ณ ์, ์ ํฌ๋ ํ์ดํ๋ผ์ธ ๋จ๊ณ๋ณ๋ก ๋ช ์์ ์ธ ์ง์ฐ ์๊ฐ(latency) SLO๋ฅผ ์ค์ ํ๊ณ , ํ๋ก๋์ ํ๊ฒฝ์์ p50, p95, p99 ์ง์ฐ ์๊ฐ(๋ ์ดํด์)์ ์ถ์ ํ๋ ๋ชจ๋ํฐ๋ง ๋์๋ณด๋๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
MicrocosmWorks๋ ์ญ๋ฐฉํฅ ๋ฐ ์ ๋ฐฉํฅ ํธํ์ฑ ๊ท์น์ ์ ์ฉํ๋ ์คํค๋ง ๋ ์ง์คํธ๋ฆฌ(์ผ๋ฐ์ ์ผ๋ก Confluent Schema Registry ๋๋ AWS Glue Schema Registry)๋ฅผ ๊ตฌํํ์ฌ, ์์ฐ์๊ฐ ๊ธฐ์กด ์๋น์๋ฅผ ์์์ํค์ง ์๊ณ ๋ฐ์ดํฐ ํ์์ ๋ฐ์ ์ํฌ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ ํฌ๋ ๋ช ์์ ์ธ ์คํค๋ง ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ Avro ๋๋ Protobuf ์ง๋ ฌํ๋ฅผ ์ด์ฉํ์ฌ, ๋ชจ๋ ๋ฉ์์ง๊ฐ ์์ฒด ์ค๋ช ์ ์ด๋ฉฐ ๋ฉ์์ง๊ฐ ์์ฑ๋ ์ดํ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋์๋๋ผ๋ ์ญ์ง๋ ฌํ๋ ์ ์๋๋ก ํฉ๋๋ค. ์ ํฌ CI/CD ํ์ดํ๋ผ์ธ์๋ ์ ์๋ ์คํค๋ง ๋ณ๊ฒฝ์ด ๋ค์ด์คํธ๋ฆผ ์๋น์๋ฅผ ์์์ํฌ ๊ฒฝ์ฐ ๋ฐฐํฌ๋ฅผ ์ฐจ๋จํ๋ ์๋ํ๋ ์คํค๋ง ํธํ์ฑ ๊ฒ์ฌ๊ฐ ํฌํจ๋ฉ๋๋ค.
MicrocosmWorks๋ ํ๋ก๋์ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ์ ์์ ์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ถ์ฐ ์์คํ , ์คํธ๋ฆผ ์ฒ๋ฆฌ ํ๋ ์์ํฌ, ์ธํ๋ผ ์๋ํ ๊ฒฝํ์ ๊ฐ์ง ์ต์ 2~3๋ช ์ ์์ง๋์ด๋ฅผ ๊ถ์ฅํฉ๋๋ค. ์ด๋ฌํ ์ ๋ฌธ ์ง์์ ์ฌ๋ด์์ ๊ตฌ์ถํ๊ธฐ๋ฅผ ์์น ์๋ ๊ธฐ์ ์ ์ํด, ์ ํฌ๋ ์๊ฐ๋น $15~$40์ ๋น์ฉ์ผ๋ก ๊ด๋ฆฌํ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ ์ง์์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ํฌ ํ์ด ํด๋ฌ์คํฐ ์ด์, ์ฑ๋ฅ ํ๋ ๋ฐ ์ฌ๊ณ ๋์์ ์ฒ๋ฆฌํ๋ ๋์, ๊ณ ๊ฐ์ฌ์ ๊ฐ๋ฐ์๋ ์คํธ๋ฆผ ์ฒ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ง์คํ ์ ์์ต๋๋ค. ์ ํฌ๋ ๋ํ 4-8์ฃผ๊ฐ์ ์ฐธ์ฌ๋ฅผ ํตํด ๊ธฐ์กด ์์ง๋์ด๋ง ํ์ Kafka, Flink ๋๋ Kinesis ์ด์ ์ญ๋์ ํฅ์์ํค๋ ๊ต์ก ํ๋ก๊ทธ๋จ์ ์ ๊ณตํฉ๋๋ค.
์ฐ๋ฆฌ์ ์ํคํ ํธ๋ค์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์ด ํจํด์ ์ฌ์ฉํ์ฌ ์์คํ ์ ์ค๊ณํ๊ณ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ ๋๋ฆด ์ ์์ต๋๋ค.
์ฐ๋ฝํ๊ธฐ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ์ํคํ ์ฒ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ณ ๋ฐฐ์น๊ฐ ์๋ ์ฐ์์ ์ด๊ณ ๋ฌดํํ ํ๋ฆ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ฒคํธ ์์ฑ์๋ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ(Kafka, Kinesis, Pulsar)์ ๊ฒ์ํฉ๋๋ค. ์คํธ๋ฆผ ํ๋ก์ธ์๋(Flink, Kafka Streams, ์ปค์คํ ์๋น์) ์ด๋ฒคํธ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ณํ, ํ๋ถํ, ํํฐ๋ง, ์ง๊ณํฉ๋๋ค. ์ฒ๋ฆฌ๋ ๊ฒฐ๊ณผ๋ ์๋น์์๊ฒ ํธ์๋ฉ๋๋ค: ์ค์๊ฐ ๋์๋ณด๋(WebSocket), ๊ฒ์ ์ธ๋ฑ์ค(Elasticsearch), ๋ถ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(ClickHouse), ๋ค์ด์คํธ๋ฆผ ์๋น์ค. Change Data Capture (CDC)๋ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ณ๊ฒฝ ์์ด ์ด๋ฒคํธ ์์ค๋ก ์ฐธ์ฌํ ์ ์๊ฒ ํฉ๋๋ค.
์ํคํ ์ฒ๋ ๋ค ๊ฐ์ ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด๋ฒคํธ ์์ค๋ ๋ฐ์ดํฐ๋ฅผ ์์ฑํฉ๋๋ค โ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฒคํธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค CDC ์คํธ๋ฆผ, IoT ์๊ฒฉ ์ธก์ , ์ฌ์ฉ์ ํด๋ฆญ์คํธ๋ฆผ, ์ธ๋ถ API ์นํ . ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ(Kafka)์ ๋ด๊ตฌ์ฑ ์๊ณ , ์์๊ฐ ์์ผ๋ฉฐ, ์ฌ์ ๊ฐ๋ฅํ ์ด๋ฒคํธ ์ ์ฅ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ์คํธ๋ฆผ ํ๋ก์ธ์๋ ํ ํฝ์์ ์๋นํ๊ณ , ๋ณํ(ํํฐ๋ง, ํ๋ถํ, ์๋์ฐ ์ง๊ณ, ์กฐ์ธ)์ ์ ์ฉํ๋ฉฐ, ์ถ๋ ฅ ํ ํฝ ๋๋ ์ฑํฌ๋ก ์์ฑํฉ๋๋ค. ์๋น์๋ ์ฒ๋ฆฌ๋ ์คํธ๋ฆผ์ ๊ตฌ๋ ํฉ๋๋ค โ WebSocket ์๋ฒ๋ ๋ธ๋ผ์ฐ์ ๋ก ํธ์ํ๊ณ , ์ปค๋ฅํฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฑํฌํ๋ฉฐ, ๊ฒฝ๊ณ ์์ง์ ๊ท์น์ ํ๊ฐํ๊ณ ์๋ฆผ์ ๋ฐ์กํฉ๋๋ค.
| ๊ณ์ธต | ๊ธฐ์ |
|---|---|
| ์คํธ๋ฆฌ๋ฐ | Apache Kafka (MSK, Confluent), Kinesis, Apache Pulsar, Redpanda |
| CDC | Debezium, AWS DMS, Maxwell |
| ์ฒ๋ฆฌ | Apache Flink, Kafka Streams, Benthos, ์ปค์คํ ์๋น์ |
| ์ค์๊ฐ ์ ๋ฌ | WebSocket (Socket.io), SSE, GraphQL Subscriptions |
| ๋ถ์ | ClickHouse, Apache Druid, Elasticsearch, TimescaleDB |
| ๊ด์ธก์ฑ | Kafka ์ง์ฐ ๋ชจ๋ํฐ๋ง (Burrow), Flink ๋ฉํธ๋ฆญ, ์ปค์คํ ์ง์ฐ ์ถ์ |
| ์ฌ์ฉ ์๊ธฐ | ํผํด์ผ ํ ์๊ธฐ |
|---|---|
| ๋น์ฆ๋์ค ๊ฒฐ์ ์ด ์ด๋จ์ ๋ฐ์ดํฐ ์ ์ ๋๋ฅผ ํ์๋ก ํ ๋(์ฌ๊ธฐ, ๋ชจ๋ํฐ๋ง, ๊ฑฐ๋) | ์๊ฐ๋ณ/์ผ๋ณ ์ ์ ๋๊ฐ ๋น์ฆ๋์ค ์๊ตฌ๋ฅผ ์ถฉ์กฑํ๋ ๋ฐฐ์น ์ฒ๋ฆฌ |
| ์ฌ๋ฌ ์๋น์๊ฐ ๋์ผํ ์ด๋ฒคํธ ์คํธ๋ฆผ์ ํ์๋ก ํ ๋(ํฌ์์, ๋ถ๋ฆฌ๋ ์์คํ ) | ๋จ์ผ ํ๋ก๋์์ ๋จ์ผ ์๋น์๊ฐ ์๋ ๊ฒฝ์ฐ โ ๊ฐ๋จํ ํ๋ก ์ถฉ๋ถํฉ๋๋ค |
| ๋๋ฒ๊น , ์ฌ์ฒ๋ฆฌ ๋๋ ์๋ก์ด ์๋น์ ๊ตฌ์ถ์ ์ํ ์ด๋ฒคํธ ์ฌ์์ด ํ์ํ ๋ | ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ด ๋ฎ๊ณ (< 1K ์ด๋ฒคํธ/๋ถ) ์คํธ๋ฆฌ๋ฐ ์ธํ๋ผ๋ฅผ ์ ๋นํํ์ง ์์ ๋ |
| ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฝ๋ ๋ณ๊ฒฝ ์์ด ๋ค์ด์คํธ๋ฆผ ์์คํ ๊ณผ ๋๊ธฐํํ๊ธฐ ์ํด CDC๊ฐ ํ์ํ ๋ | ํ์ด ๋ถ์ฐ ์์คํ ์ ๋ํ ๊ฒฝํ์ด ๋ถ์กฑํ ๋ โ ์คํธ๋ฆฌ๋ฐ์ ์๋นํ ์ด์ ๋ณต์ก์ฑ์ ์ถ๊ฐํฉ๋๋ค |
MW๋ "์ฌ์ ์์น"์ผ๋ก ์คํธ๋ฆฌ๋ฐ ์์คํ ์ ์ค๊ณํฉ๋๋ค โ ๋ชจ๋ ์คํธ๋ฆผ์ ํน์ ์์ ๋ถํฐ ์ฌ์ ๊ฐ๋ฅํด์ผ ํ๋ฉฐ, ์๋ก์ด ์๋น์๊ฐ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑํํ ์ ์๊ณ ๊ธฐ์กด ์๋น์๊ฐ ๋ฒ๊ทธ ์์ ํ ์ฌ์ฒ๋ฆฌํ ์ ์๊ฒ ํฉ๋๋ค. ์ฐ๋ฆฌ์ Kafka ๋ฐฐํฌ์๋ ์คํค๋ง ์งํ ์ ์ฑ (๊ธฐ๋ณธ์ ์ผ๋ก ํ์ ํธํ), ์๋น์ ์ง์ฐ ๊ฒฝ๊ณ (๋น์ฆ๋์ค์ ๊ฐ์์ ์ธ ์ง์ฐ์ด ๋๊ธฐ ์ ), ์๋ ์ฌ์๋๋ฅผ ์ํ ๋ฐ๋๋ ํฐ ํ ํฝ์ด ํฌํจ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋น๋์ค ๋ถ์, IoT ์๊ฒฉ ์ธก์ , ์ค์๊ฐ ๋์๋ณด๋๋ฅผ ์ํด ์ด๋น 500K+ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ์คํธ๋ฆฌ๋ฐ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ต๋๋ค.
ํ๋์ ์ฝ๋๋ฒ ์ด์ค, ์๋ฐฑ ๊ฐ์ ํ ๋ํธ, ๋ฐ์ดํฐ ์ ์ถ ์ ๋ก โ ๋ชจ๋ ํ์ฅ ๊ฐ๋ฅํ SaaS ๋น์ฆ๋์ค์ ๊ธฐ๋ฐ์ ๋๋ค.