프로모션은 고객을 유치하여 행동 유도를 하고 보상을 주는 일련의 과정을 말한다. 프로모션은 세가지의 큰 특징을 갖는데, 희소성, 한시성, 신속성이 그것이다.
카카오 개발팀은 이러한 프로모션의 특징 속에서 변하는 부분을 부정하는것이 아니라 쉽게 변하는 프로그램을 만들고자 생각하던 중 유한상태기계를 떠올리게 된다
유한상태기계는 Finite State Machine의 줄임말로, 어떠한 입력이 들어오면 입력에 따라서 정해진 유한한 상태로 변환하는 기계를 지칭하는 말이다.
유한상태기계는 무어머신과 밀리머신으로 나눌 수 있다.
카카오 개발팀에서는 행위를 단순화 시킬 수 있는 무어머신을 사용했다.
*FSM에 대해서 더 알아보고 싶다면 Spring FSM을 찾아보기를 권해주었다.
유한상태기계에는 기본적으로 State, Event, Transition, 그리고 Action이 존재한다. 개발팀에서는 다음과 같은 일련의 과정들을 통해 유한상태기계를 작동시켰다.
위와 같은 방법을 통해 프로그램을 통제가능하며 재사용 가능한 상태로 만들었고, State가 많아지는 단점이 있지만, 실수와 오작동을 현저하게 줄일 수 있었다고 말한다.
정리하자면, 유한상태기계를 사용함으로써
물론 화면의 구성을 매번 달라지므로 여전히 어렵지만, 점진적으로 템플릿화 해 나가면서 더 쉽고 빠른 개발 환경을 만들고 있다고 한다.