최근 많은 프로그래밍 언어에서는 함수형 프로그래밍을 지원하기 위한 다양한 도구들을 제공하고 있습니다. 그중 Swift는 최신 트렌드가 많이 반영된 언어로써, 스몰토크형 객체지향 프로그래밍과 함수형 프로그래밍을 함께 지원함으로써 개발자들에게 함수형 프로그래밍에 대한 접근성을 증가시켰습니다.
그리고 Reactive 프로그래밍이 조명을 받기 시작하며, Reactive Extension과 같은 훌륭한 리액티브 프로그래밍을 위한 도구를 제공하고 있습니다. Reactive Extension은 Reactive 프로그래밍을 지향하고 있으며, 이를 기반으로 Functional Reactive 프로그래밍을 실현할 수 있습니다. 또한, 다양한 언어에 포팅이 되어있어 서로 다른 언어에서 일괄적인 패턴을 적용할 수 있습니다.
이 글에선 순수 함수적 상태 전이에 대해 간단하게 알아보고, 이를 기반으로 Functional Reactive 프로그래밍이 지향하는바와, 이러한 기법들의 장점을 극대화 할 수 있는 설계에 대한 기본 원칙, 그리고 그에 따른 설계의 예를 다룰 것 입니다.