본문으로 이동
Kafka Streams를 활용한 이벤트 스트림 처리 삽질기 #우아콘2023 #우아한형제들
컨퍼런스

Kafka Streams를 활용한 이벤트 스트림 처리 삽질기 #우아콘2023 #우아한형제들

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

원문 보기

AI 핵심 요약

배달·라이더 이벤트를 모아 처리하던 배치 구조는 주문량과 요구 사항이 늘면서 DB 부하, 처리 시간의 변동, 늦은 이상 탐지라는 한계에 부딪혔습니다. 발표자들은 Kafka Streams를 애플리케이션에 적용해 GPS 좌표를 행정동으로 변환하고 배달 이벤트와 결합해 라이더 스냅샷을 만든 뒤, 지역별 집계 결과를 분산 상태 저장소와 백업 저장소에 제공했습니다. 운영 중에는 메시지 발행 실패, 과도한 파티션과 리밸런싱, 컨슈머 이탈, 내부 토픽의 디스크 사용량 문제를 겪었으며 설정과 토픽 구조를 조정하고 모니터링 및 오프셋 재처리 체계를 마련했습니다. 스트림 처리가 항상 배치보다 나은 것은 아니며, 상태 저장소의 용도와 복구 방식, 파티션·컨슈머 운영을 함께 설계해야 한다는 점을 강조했습니다.

  • 배치 처리의 성능을 먼저 개선해 보고도 처리 지연과 DB 부하가 도메인의 요구를 해결하지 못할 때 스트림 처리를 검토하세요.
  • Kafka Streams의 상태 저장소는 분산 집계에 활용하되, 원장 데이터보다는 재처리로 복구할 수 있는 임시 데이터에 적합합니다.
  • 파티션은 늘리면 줄이기 어려우므로 적은 수로 시작하고, 처리 지연을 파티션 증설만으로 해결하려 하지 마세요.
  • 리밸런싱과 컨슈머 이탈을 줄이려면 그룹 구성, 스레드 수, 폴링 설정을 점검하고 처리 지연과 관련 지표를 모니터링해야 합니다.
  • 키 변경에 따른 리파티셔닝과 스트림 처리 중 외부 호출은 부하와 지연을 키울 수 있으므로 가능한 한 줄이세요.

소개

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

비슷한 학습 자료

컨퍼런스 우아콘 2024

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

백엔드 데이터베이스

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 배민스토어는 올해 4월, 레거시 코드와 아키텍처를 전부 재작성하고 재설계하는 빅뱅을 겪었습니다. 그 과정에서 생산성과 효율성을 높이기 위해 여러 가지 기술을 한 번에 도입했고, 다양한 시행착오를 겪었습니다. 배민스토어의 전시 도메인 개발자들이 어떤 일을 하는지 소개하면서, Kotlin, Spring WebFlux, EDA 도입의 이유와 좋았던 점, 나빴던 점, 그리고 각 기술에 대한 개발자들의 생각까지 날것으로 풀어내 보겠습니다.ㅤ ㅤ 👉 발표자 소개 배민스토어서비스개발팀 김민태 좋은 시스템을 개발해서 밤에 약속을 나가고 싶은 개발자입니다. 배민스토어의 백엔드를 개발하며, 팀에서 광대를 담당하고 있습니다. 배민스토어서비스개발팀 오지산 좋은 코드를 써서 밤에 발 쭉 뻗고 자고 싶은 개발자입니다. 배민스토어의 백엔드를 개발하며, 팀에서 선생님을 담당하고 있습니다. 👍 추천 대상 Kotlin과 Spring WebFl...

백엔드 프로그래밍 언어

컨퍼런스 우아콘 2023

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

백엔드 데이터베이스

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 큰 힘에는 큰 책임이 따르듯, 큰 팀에는 많은 과제들이 있기 마련이죠. 배민커머스웹프론트개발팀 플랫폼 파트의 이야기입니다. 동시에 여러 가지 과제를 수행하는 팀에게 베타 배포 환경 하나는 너무 가혹합니다. 다급한 목소리로 외치는 "베타 배포 지금 이 브랜치로 나가도 되나요?" 소리가 여기까지 들리는군요. 이들을 구하기 위해 멀티버스 구축 여정에 합류한 n개월 차 새내기 개발자는 과연 무엇을 보고 배웠을까요?ㅤ ㅤ 👉 발표자 소개 배민커머스웹프론트개발팀 김요욱보고 배우는 것이 많아서 하루하루가 즐거운 개발자. 좋은 사람들과 일하는 것에 매일 감사한 마음을 가지고 있습니다. 👍 추천 대상 베타 배포 환경이 몇 개만 더 있었으면 좋겠다고 생각해 본 개발자 직접 배포 인프라 작업을 통해서 생산성을 향상시켜 보고 싶은 프론트엔드 개발자 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relations@woowa...

프론트엔드 데브옵스 · 인프라

컨퍼런스 우아콘 2023

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

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

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 비즈니스는 성장하는데 레거시가 계속 쌓여가고 있지는 않나요? 백엔드 개발 조직이 대규모 프로젝트를 어떻게 진행하는지 궁금하신가요? 배민스토어 서비스를 확장하면서 두 마리 토끼(비즈니스와 기술)를 잡기 위해 고군분투하는 배민스토어서비스개발팀의 에피소드와 그 과정에서 만들어간 팀 문화를 소개합니다.ㅤ 👉 발표자 소개 배민스토어서비스개발팀 박제현 10년 동안 백엔드를 개발해왔고 우아한형제들에서 7년간 다양한 서비스를 만들고 없애(?) 왔습니다. 이제는 팀장 2년 차로 18명의 팀을 이끌며 배민스토어 서비스의 백엔드를 만들고 있습니다. 기술을 활용하여 혁신적인 서비스를 만드는 것을 즐기며, 일을 잘하는 것뿐만 아니라 조직을 성장시키는 것에 관심이 많습니다. 👍 추천 대상 - 대규모 프로젝트를 진행하는 신임 팀장 및 개발자 - 팀 문화에 관심 있는 분 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relatio...

백엔드 애자일 · 협업