Kafka & 이벤트 기반 아키텍처 — 입문부터 운영까지
글 12개
메시지 브로커 선택부터 파티션 설계, 이벤트 기반 아키텍처(EDA), CDC, 메시지 중복·순서 보장까지. 국내 IT 회사들의 Kafka 실전 사례를 학습 순서로 묶었습니다.
Pinterest의 CDC 기반 DB 수집 파이프라인은 MySQL에서 Kafka, Flink, Spark, Iceberg를 거치는 다층 구조다. 스키마 변경이 생기면 모든 계층을 동시에 업데이트해야 해 드리프트, 배포 실패, 데이터 불일치가 반복됐다. Pinterest 엔지니어링 팀은 이를 해결하기 위해 가산적 변경만 자동화하는 스키마 진화 프레임워크를 구축하고, PR 기반 롤아웃과 SLA 기반 일관성 모델을 도입했다.
LY Corporation이 구 LINE의 Verda와 구 Yahoo Japan의 YNW를 통합하며 구축한 차세대 클라우드 플랫폼 Flava의 DBaaS 아키텍처를 상세히 설명한다. Kubernetes 오퍼레이터 패턴으로 DBA 도메인 지식을 코드화했고, 마이그레이션 전략부터 AI 기반 DBA-as-a-Service까지 미래 로드맵을 함께 다룬다.
에잇퍼센트가 레거시 EC2 기반 워크로드를 Kiro CLI와 오픈소스 AI-Driven Modernization Prompt Sets를 활용해 Amazon ECS Fargate로 전환한 사례다. 소규모 백엔드 팀이 기능 개발·장애 대응을 병행하면서도 내부 API는 2영업일, 메인 API는 약 2주 만에 전환을 완료했다. 월 운영 비용 약 76% 절감이라는 실측 성과도 달성했다.
Cloudflare가 Security Insights 스캔 시스템의 처리량을 초당 10건에서 120건 이상으로 12배 끌어올린 과정을 다룬다. 추가 하드웨어 없이 Kafka 소비자, PostgreSQL 쿼리, API 아키텍처 최적화만으로 달성했으며, 스캔 주기를 주 1~2회에서 플랜별 1~7일로 대폭 단축했다.
초당 10억 건 이상의 이벤트가 ClickHouse, Kafka, BigQuery 등 수십 개 분산 시스템에 흩어져 통합 분석이 불가능했다.
KBO 라이브 방송 이닝 교체 시 모든 시청자가 동시에 광고를 요청해 SSAI 서버 병목이 발생했다.
Kafka 토픽 생성 시 파티션 개수를 일관된 기준 없이 결정해 운영 편차가 컸다.
flex 백엔드는 3년간 MySQL·ES·Redis·Kafka 통합 테스트를 유지했지만 Spring TestContext dirty context 로 컨테이너가 중복 기동돼 CI가 10분대로 늘어났다.
HR SaaS 의 시간은 급여/연차/퇴직금 계산의 핵심 변수라서 미래 시나리오 (내년 3월 15일 퇴사 시 퇴직금) 검증이 안 되면 비즈니스 결과를 보장할 수 없다.
비정형·미문서화된 프로덕션 데이터 위에 LLM 을 얹으면 부서마다 다른 customer 정의, 스키마 변경 미공지, 소유자 불명, 데이터 lineage 부재가 그대로 답변 품질을 망친다.
10년 누적 프로시저 기반 배치로 혜택 정보가 최대 45분 지연돼 고객 경험이 저하됐다.
Kubernetes 위 Spring Boot 서버가 평균 90초, Pod 별 55~130초 부팅으로 배포/스케일링이 느렸다.
사내 알림 웹훅이 개인 계정에 종속돼 퇴사 시 끊기고, SaaS 알림은 포맷·라우팅이 경직돼 전사 정책을 세우기 어려웠다.
HR SaaS 에서 직원 부서 변경이 일어나면 급여/근무정책/권한 시스템이 원자적으로 같이 반영돼야 하는데 Dual Write 는 둘 중 하나만 실패해도 불일치를 만든다.
HR SaaS 는 한 사람이 여러 역할을 겸임하고 조직 관계에 따라 권한이 동적으로 바뀌어서 RBAC 만으로는 "인사팀이면서 마케팅 매니저인 사람이 다른 부서원의 급여 명세서를 볼 수 있나" 같은 복합 판단이 어렵다.
MSA 환경에서 프로모션·픽업 주문 등 흩어진 도메인 데이터를 통합하면서 API 호출 부하를 최소화해야 했다.
SSG.COM의 MSA 환경에서 노출 누락·데이터 이상 문의가 들어올 때마다 DB, 로그, 소스를 수동으로 오가야 해 운영 대응이 비효율적이었다.
레거시 알림톡 발송 로직이 여러 비즈니스 코드에 산재되고 데이터 조회 기준이 달라 일관성이 부족했다.
온라인 플랫폼은 악성 계정과 콘텐츠 위협에 실시간 대응해야 하지만, 규칙 작성과 배포가 엔지니어링 병목이 되기 쉽다.
기존 Kafka·MSK 운영은 CLI와 콘솔, 시스템별로 다른 API 포맷에 묶여 있어 일관된 자동화와 자연어 기반 조작이 어려웠다.