더북(TheBook)

2.1.1 함수형 프로그래밍

FP는 함수로 선언적이고 불변하며 부가 작용(side effect)이 없는 프로그램 만들기를 강조하는 소프트웨어 패러다임입니다. 불변(immutable)이라는 말에 멈칫했나요? 프로그램에서 이 개념은 상태를 절대 변경하지 않는다는 뜻인데, 다소 이해하기 어렵습니다. 그래서 결국에는 데이터를 변수에 넣고 마음대로 수정하게 됩니다. 지금까지 작성한 객체 지향 또는 절차적 애플리케이션 코드는 모두 변수를 변경하고 전달하여 문제를 해결했는데, 이렇게 하지 않고 어떻게 동일한 목표를 달성할 수 있을까요? 시계를 예로 들어 보겠습니다. 시계는 오후 1시부터 오후 2시까지 의심의 여지 없이 계속해서 변화한다는 걸 알 수 있습니다. 그러나 이를 함수형 관점에서 본다면 매초 단일 시계 인스턴스를 변경하는 대신에 1초마다 새로운 시계 인스턴스를 반환하는 것이 됩니다. 이론적으로 둘은 동시에 도착하고 둘 다 결국에는 단일 상태가 됩니다.

RxJS는 FP에서 여러 가지 원칙, 특히 함수 체인(function chain), 지연 평가(lazy evaluation), 데이터 흐름을 조정하기 위한 추상형 데이터 타입 사용 개념을 차용합니다. 이 개념들은 Observable 데이터 타입을 통해 RxJS의 스트림 프로그래밍 개발을 주도하는 디자인 의사 결정입니다. 자세히 살펴보기 전에 FP 정의의 주요 부분을 설명하고 배열과 관련된 간단한 예제를 살펴보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.