본문으로 이동
배달의 민족 주문~!: ServerSentEvents로 실시간 알림 전송하기 #우아콘2025 #우아한형제들
컨퍼런스

배달의 민족 주문~!: ServerSentEvents로 실시간 알림 전송하기 #우아콘2025 #우아한형제들

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

원문 보기

AI 핵심 요약

MQTT와 폴링을 함께 쓰던 주문 알림 시스템은 페이로드 길이 제한, 토픽 보안, 방화벽 포트 차단, 웹뷰 연결 관리 문제를 겪었다. AWS IoT에 X.509 인증과 권한을 적용하고 알림 내용을 페이로드에 담아 클라이언트 버전 의존성을 낮춘 뒤, 기존 API 구조를 유지하기 위해 단방향 통신인 SSE를 도입했다. Spring WebFlux와 Kotlin 코루틴을 기반으로 Kafka 메시지를 모든 SSE 서버에 전달하고, Last-Event-ID 재전송과 수신 확인·미확인 이벤트 재발행으로 메시지 신뢰성을 보완했다. 전환 과정에서는 코루틴 채널 버퍼 설정, 재연결 지터, 클라이언트별 이벤트 필터링으로 처리 지연과 CPU·네트워크 부하를 개선했으며, 발표자는 메시지를 안정적으로 처리하고 폴링 트래픽을 줄였다고 설명했다.

  • 클라이언트에서 양방향 통신이 필요하지 않고 기존 API 흐름을 유지하려면 WebSocket보다 SSE가 단순한 선택일 수 있다.
  • SSE 재연결 시 Last-Event-ID를 활용하면 클라이언트가 마지막으로 받은 이벤트 이후의 메시지를 다시 전달할 수 있다.
  • 주문 출력처럼 반드시 전달해야 하는 이벤트는 클라이언트의 수신 확인을 서버에 기록하고, 미확인 이벤트를 재발행하는 절차가 필요하다.
  • Kotlin 코루틴 채널의 기본 버퍼 용량과 오버플로 동작을 확인하고, 처리량에 맞게 설정해야 Kafka 소비 지연을 막을 수 있다.
  • 재연결 지터와 클라이언트별 처리 가능 이벤트 필터링은 배포 시 부하 급증과 불필요한 네트워크 트래픽을 줄이는 데 도움이 된다.

소개

[세션 설명] 기존 MQTT와 Polling 기반의 알림 시스템의 한계를 넘어, Server-Sent Events(SSE)를 도입해 더 빠르고 효율적인 실시간 알림 인프라를 구축했습니다. 단순히 기술을 교체하는 것을 넘어, 배달의민족 비즈니스에 맞춰 SSE를 최적화하고 메시지 신뢰성을 확보한 과정의 핵심 기술과 노하우를 공유합니다. [발표자 소개] 한우석(서버 개발자)

비슷한 학습 자료

컨퍼런스 if kakao

if(kakao)25 선물하기 서비스는 기존 폴링 방식의 한계를 넘어섰습니다. Spring WebFlux·Redis Pub/Sub 기반 SSE와 Angular RxJS·Signals를 활용한 실시간 UI 구조 전환 사례를 공유합니다. #TECH #PRODUCT #Backend #Frontend 카카오 커머스에서 나에게 선물하기 서버개발을 담당하고 있는 임동현(kai.do)입니다. 카카오 커머스에서 나에게 선물하기 프론트개발을 담당하고 있는 김민우(max.pro)입니다. 발표자료 보기 📍 https://if.kakao.com/2025/session?sessionId=26 📍 if.kakao.com if(kakao)25 홈페이지 : https://if.kakao.com/2025 #카카오 #kakao #이프카카오25

프론트엔드 백엔드 네트워크

컨퍼런스 우아콘 2025

[세션 설명] 공통시스템개발팀의 메시지/맵 미디에이터는 서비스 특성상 외부 벤더와 연동되며, 이에 따라 안정성·성능·비용이 크게 영향을 받습니다. 이를 개선하기 위해 미디에이터 시스템을 활용해 장애 대응, 라우팅, 데이터 통합, 사용량 추적 등 다양한 기능을 구축한 경험을 소개합니다. [발표자 소개] 김동환(서버 개발자)

백엔드 데브옵스 · 인프라

컨퍼런스 우아콘 2025

[세션 설명] 우아한형제들의 실시간 데이터 파이프라인은 비즈니스 성장과 함께 끊임없이 진화해왔습니다. 처음에는 단순한 데이터 파이프라인에 불과했지만, 지금은 수많은 기술적 도전과 극복을 거쳐 견고한 스트리밍 플랫폼으로 자리잡았습니다. 그 과정에서 얻은 실패와 성공의 기록을 바탕으로, 안정적이고 확장 가능한 시스템을 만드는 실질적인 노하우와 인사이트를 전합니다. [발표자 소개] 김민호(데이터 엔지니어)

데이터베이스 데브옵스 · 인프라

컨퍼런스 우아콘 2025

[세션 설명] 타깃팅 서비스로 출발한 BUDS는, 글로벌 시장을 위한 대규모 API 플랫폼으로 성장했습니다. 국가별 서비스 확장 과정에서 DB 스키마 복잡성, 수만 TPS 처리, 비용 최적화라는 난관을 마주했고, 이를 해결하기 위해 AOP 기반 where절 자동화, DynamoDB 활용, 아키텍처 재설계를 시도했습니다. 코드 변경 최소화부터 운영 경험까지, 글로벌 확장의 여정을 공유합니다. [발표자 소개] 박영재(서버 개발자)

백엔드 데이터베이스 클라우드

컨퍼런스 우아콘 2025

[세션 설명] B마트 가격 시스템 마이그레이션 여정을 소개합니다. 새로운 플랫폼으로 이관하며 마주친 기술·정책·일정 등의 여러가지 난제들을 풀기위하여 ADR(Architecture Decision Record)을 적용해 전략을 수립하고 기술(기능플래그, CDC, 프록시 등)을 통하여 무중단 배포와 시스템 안정성을 확보한 과정을 공유합니다. [발표자 소개] 김민태(서버 개발자), 허영범(서버 개발자)

백엔드 데브옵스 · 인프라 애자일 · 협업

컨퍼런스 우아콘 2023

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

백엔드 데이터베이스