만능도구는 없다, 적절한 선택은 있다: Spring Statemachine으로 완성한 알림 2.0
역량 개발 · 카카오뱅크 테크 · 2025.11.03
카카오뱅크 플랫폼엔지니어링팀의 Danny님이 공유해주신 이 글은, 복잡한 알림 발송 시스템(UMS)에서 메시지의 상태를 어떻게 효율적으로 관리할 것인가에 대한 고민과 해결 과정을 담고 있습니다.
단순히 직접 FSM(Finite State Machine)을 구현했을 때의 한계점을 분석하고, 왜 Spring Statemachine 프레임워크를 도입하게 되었는지 그 이유를 상세히 설명합니다. 특히, 외부 프레임워크에 대한 의존성을 낮추기 위해 DIP(Dependency Inversion Principle)를 적용하여 커스텀 인터페이스를 설계한 노하우와, Redis를 활용해 분산 환경에서 상태를 영속화하는 방법 등 실전적인 기술 스택 활용법을 배울 수 있습니다.
마지막으로, 프레임워크 도입 시 고려해야 할 학습 비용과 제약 사항을 언급하며, 기술 선택에 있어 가장 중요한 것은 프로젝트의 규모와 맥락에 맞는 '균형 잡힌 시각'이라는 소중한 인사이트를 전달합니다.