목록 보기
하루 N억 건의 알림 시스템 구축기 (1): 카카오뱅크는 어떻게 발송 플랫폼의 새로운 뼈대를 세웠나
아키텍처

하루 N억 건의 알림 시스템 구축기 (1): 카카오뱅크는 어떻게 발송 플랫폼의 새로운 뼈대를 세웠나

카카오뱅크
카카오뱅크
2026년 9월 7일

두줄요약

카카오뱅크가 대규모 알림 발송기의 성능 병목과 복잡한 구조를 해결하기 위해 Service/Core Layer 분리 아키텍처를 도입했습니다. 개발자는 단순한 인터페이스만 구현하고, Lock-Free와 Work-Stealing 같은 최적화는 Core Layer에 숨겼습니다.

문제 상황

  • 하루 N억 건의 알림을 처리해야 하는 발송기에서 처리량, P99 지연시간, GC 안정성 요구가 동시에 존재
  • 레거시는 요청마다 Thread 생성, 단일 큐 병목, 불명확한 구조로 성능과 확장성 모두 한계
  • 새로운 채널 추가와 공통 기능 적용 시 내부 구조를 모두 이해해야 해 멘탈 모델과 유지보수 비용이 과도

원인 분석

  • Thread Pool 미사용과 요청별 Thread 생성으로 Context Switching, 메모리 사용량, OOM 위험 증가
  • 단일 큐 구조로 느린 작업이 뒤의 빠른 작업을 막아 Tail Latency가 확대
  • 계층 경계 부재로 공통 로직의 위치와 채널 간 영향 범위가 불명확

해결 방법

  • Service Layer와 Core Layer를 분리해 개발자에게는 단순한 인터페이스만 제공
  • RequestHandler와 Sender를 선언적 API로 단순화해 비즈니스 로직만 구현하도록 구성
  • Core Layer에서 Work-Stealing, Lock-Free, Barrier, Zero-Copy, GC 최적화를 캡슐화
  • 큐 분리와 중앙 스캔 기반 Age-Based Work-Stealing으로 오래 대기한 메시지 우선 분산

카카오뱅크 계열사 채용7건

채용 사이트에서 전체 보기

다음 읽기

#Kotlin 주제를 이어서 읽기

만능도구는 없다, 적절한 선택은 있다: Spring Statemachine으로 완성한 알림 2.0

Spring Statemachine으로 알림 시스템의 상태 관리를 체계화한 사례를 다뤘습니다. 직접 구현과 프레임워크 도입의 장단점, TTL 관리 같은 주의점도 함께 정리했습니다.

카카오뱅크
카카오뱅크
백엔드
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...