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

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

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

두줄요약

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

핵심 내용

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

선택 이유

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

장단점

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

적용해볼 점

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

댓글 0

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

댓글을 불러오는 중...