목록 보기
만능도구는 없다, 적절한 선택은 있다: Spring Statemachine으로 완성한 알림 2.0
백엔드

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

카카오뱅크
카카오뱅크
2025년 11월 3일

두줄요약

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

핵심 내용

  • 카카오뱅크 알림 발송 시스템에서 메시지 상태를 체계적으로 관리하기 위해 FSM 개념을 적용한 사례
  • 직접 구현한 상태 관리의 한계와 Spring Statemachine 도입의 배경, 그리고 프레임워크 활용 후의 장단점 정리
  • Guard, Action, 이벤트 헤더, Redis 영속화 등으로 서비스 요구에 맞게 커스터마이즈한 상태 머신 구성

선택 이유

  • Spring 기반 시스템과의 호환성, 빠른 개발, 유지보수와 확장성 측면의 이점 고려
  • 직접 구현 대비 검증된 프레임워크 활용이 복잡한 상태 전이에 더 적합하다고 판단

장단점

  • 상태 전이와 비즈니스 로직 분리, 명확한 상태 관리, 개발 생산성 향상
  • 학습 비용, 프레임워크 제약, TTL 부재로 인한 인스턴스 관리 부담
  • 불필요한 기능으로 인한 복잡성 증가 가능성

적용해볼 점

  • 프레임워크 의존성을 낮추기 위한 내부 인터페이스 래핑과 DIP 적용
  • 상태 머신 생명 주기와 영속화 정책을 함께 설계할 필요

다음 읽기

#Redis 주제를 다룬 다른 회사 글

분산 시스템에서 로컬 캐시 활용하기

분산 환경에서 로컬 캐시와 Redis Pub/Sub을 함께 사용해 조회 성능을 높이고 데이터 정합성을 맞추는 방법을 설명했습니다. 서버별 캐시 불일치와 오래된 데이터 문제를 줄이기 위한 설계와 구현 경험을 공유했습니다.

카카오페이
카카오페이
백엔드

댓글 0

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

댓글을 불러오는 중...