본문으로 이동
Kafka를 활용한 이벤트 기반 아키텍처 구축 #우아콘2023 #우아한형제들
컨퍼런스

Kafka를 활용한 이벤트 기반 아키텍처 구축 #우아콘2023 #우아한형제들

우아콘 2023 우아한형제들 · YouTube

원문 보기

AI 핵심 요약

배달 기능이 늘면서 알림·통계·쿠폰 처리까지 배달 시스템에 얽혀 복잡도가 커졌고, 강한 동시 일관성이 필요하지 않은 기능을 분리하기 위해 이벤트 기반 아키텍처를 도입했습니다. 이벤트를 대상·행동·데이터·발생 시각으로 정의하고, Kafka에서 배달 번호를 키로 사용해 순서를 관리했지만 브로커 장애와 재시도로 이벤트 유실 및 순서 변경 문제가 발생했습니다. 이를 해결하기 위해 도메인 변경과 아웃박스 저장을 한 트랜잭션으로 묶고, Kafka Connect의 Debezium으로 변경 로그를 발행했으며 처리량 확장을 위해 아웃박스 테이블을 파티셔닝했습니다. 구축한 이벤트 스트림은 CQRS 조회 모델, S3·Glue·Athena 분석 환경, Kafka Streams 실시간 집계에 재사용할 수 있었고, 이벤트 데이터의 범위와 순서 보장이 중요하다는 점을 확인했습니다.

  • 이벤트는 대상·행동·관련 데이터·발생 시각을 명확히 정의하고, 소비처 요구에 맞춘 데이터를 무분별하게 추가하지 않습니다.
  • Kafka에서 키를 기준으로 파티션을 정하면 해당 키에 속한 이벤트의 순서를 보장할 수 있습니다.
  • 도메인 변경과 이벤트 발행의 불일치를 막으려면 트랜잭셔널 아웃박스 패턴을 고려하고, CDC 도구로 릴레이를 구성할 수 있습니다.
  • MySQL Debezium 커넥터의 처리량을 높이기 위해 아웃박스 테이블을 파티셔닝하고 테이블별 커넥터를 연결했습니다.
  • 이벤트 스트림은 CQRS 조회 모델, S3·Glue·Athena 기반 분석 환경, Kafka Streams 실시간 집계에 활용할 수 있습니다.

소개

[WOOWACON2023 세션 다시보기] 👉 세션 설명 이벤트 기반 아키텍처를 적용했던 경험담을 공유 드립니다. 이벤트 정의부터 구현 과정 그리고 이후로 더 해볼 수 있는 것들까지, 우리가 고민했던 부분들을 이야기해보려 합니다.ㅤ ㅤ 👉 발표자 소개 딜리버리서비스팀 임준수 시행착오를 겪으며 계속 고쳐나가려는 개발자입니다. 좋은 서비스를 만들기 위해 노력하고 있습니다. 배차시스템팀 송인태 다양한 도전과 경험을 기반으로 지속 가능한 서비스를 구축 및 제공하는 데 관심이 많은 개발자입니다. 👍 추천 대상 - Kafka를 사용해 봤거나 개념에 대해 아는 개발자 - 늘어가는 시스템 복잡도로 고민이 많은 개발자 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relations@woowahan.com 으로 문의주시기 바랍니다.

비슷한 학습 자료

컨퍼런스 우아콘 2024

[WOOWACON2024 세션 다시보기] 👉 세션 설명 ㅤ 메시지 플랫폼에서는 Kafka를 이용하여 대량의 메시지를 발송하고 있습니다. 두 번의 큰 장애를 겪고 새로운 요구사항을 수용하면서 아키텍처를 어떻게 개선해왔는지 소개합니다. ㅤ 👉 발표자 소개ㅤ 허창오, 서버 개발자 김동환, 서버 개발자

백엔드 데이터베이스

컨퍼런스 우아콘 2024

[WOOWACON2024 세션 다시보기] 👉 세션 설명 ㅤ Request-Reply 패턴의 실제 구현에 대해 심도있게 다룹니다. 기존 시스템의 한계점을 분석하고, Request-Reply 패턴을 적용하여 대규모 데이터 처리의 동시성을 최적화한 과정을 상세히 설명합니다. ㅤ 👉 발표자 소개ㅤ 임성호, 서버 개발자 권성준, 서버 개발자

백엔드 네트워크

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 5년 전 배달의민족에 합류했을 때, 주문시스템은 급격하게 증가하는 주문수를 처리하기 어려운 시스템이었습니다. 5년간 주문시스템은 “주문DB 샤딩“, “CQRS 적용” 등 여러 작업들을 통해 일 300만 건 이상의 주문수를 처리하는 안정적인 시스템이 되었습니다. 대규모 트랜잭션을 처리하는 배민 주문시스템이 변화해간 내용을 공유합니다.ㅤ ㅤ 👉 발표자 소개ㅤ 푸드주문서버개발팀 강홍구 일 300만 건 이상의 주문수를 처리하는 배민 주문시스템 서버 개발을 하고 있습니다. 내가 만든 서비스를 누군가 사용해주면 보람을 느끼는 개발자입니다. 커머스 도메인은 하나도 몰랐던 제가 5년간 주문서비스를 개발하며 경험한 경험들을 공유하고 싶습니다. 👍 추천 대상 대용량 트래픽을 처리하는 도메인의 아키텍처가 궁금하신 분 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relations@woowahan.com 으로 문의주시기 바랍...

백엔드 데이터베이스

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 배달 도메인에서 배달/라이더 이벤트를 다루면서 경험한 스트림 처리 과정에 대해 이야기합니다. 스트림 처리를 위한 구조 설계부터, Kafka Streams를 실제 적용하기까지의 전반적인 과정을 소개합니다. 특히 운영 과정에서 마주한 이슈들과 그에 따른 전략 및 해결 과정 등을 중점적으로 공유합니다. 배치 처리의 한계로 스트림 처리 도입을 고려하고 계신 애플리케이션 개발자에게 이번 세션을 바칩니다.ㅤ ㅤ 👉 발표자 소개 딜리버리서비스팀 서오상 동료들과 개발 문화를 가꾸고, 문제를 정의하고 해결하는 과정을 즐깁니다. 소프트스킬도 유연한 개발자이고 싶습니다. 먼 훗날 어딘가 베이커리 카페를 열고 디지털 노마드처럼 코딩하는 게 꿈입니다. 딜리버리서비스팀 이신은 방탈출을 좋아하고, 언젠가 회사 탈출을 꿈꾸는 개발자입니다. 의견 충돌과 협상, 극적 타결까지 이르는 과정에서 희열을 느끼는 평화주의자입니다. 👍 추천 대상 스...

백엔드 데이터베이스

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 지난 3년간 이벤트 스토밍 워크숍 퍼실리테이터로서 우아한형제들의 다양한 팀과 도메인에 참여하면서 느꼈던 점, 워크숍을 넘어선 실제 개발 문화와 코드 구현에 대한 이야기를 나누고자 합니다.ㅤ ㅤ 👉 발표자 소개 클라이언트교육팀 박재성(Jason) 좋은 코드에 관심이 많으며, 1년이 지나도 10년이 지나도 변화에 대응할 수 있는 코드를 추구합니다. 어떻게 하면 도메인을 깊이 이해하고 더 나은 소프트웨어를 개발할 수 있을지 여러분과 공유하고 싶고, 항상 고민하고 있습니다. 👍 추천 대상 - 이벤트 스토밍이 소프트웨어 개발 프로세스의 일부로 매력적인 아이디어라고 생각하는 분 - 도메인 주도 설계에 대한 기본적인 이해와 바운디드 컨텍스트, 애그리거트, 도메인 이벤트가 무엇인지 아는 분 - 지금은 무엇인지 모르겠으나 나중을 위해 미리 듣는 분 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relations@woow...

개발 · 프로그래밍 기타 애자일 · 협업

컨퍼런스 우아콘 2022

MSA의 중심에서 '이벤트'를 안정적으로 다루기 위한 회원시스템의 경험을 공유합니다. [발표자 소개] 권용근 | 회원플랫폼팀 합리적인 기술 선택, 개발 문화, 아키텍처를 지향하는 서버 개발자입니다.

백엔드