더북(TheBook)

실제로 OOP로 도메인을 모델링하고 RP와 FP의 강력한 조합(함수형 반응형 프로그래밍으로 알려진 조합)을 사용하여 동작과 이벤트를 이끌어낼 수 있습니다. 이벤트 관리에 관해서는 Rx가 포함된 코드에서 중요한 주제를 곧 살펴보게 됩니다. 상태 또는 데이터가 변수나 컬렉션에 저장되는 OOP와 달리 반응형 프로그래밍에서 상태는 일시적(transient)입니다. 즉, 데이터가 저장되지 않고 실제로 구독 중인 스트림을 통해 흐르므로 이벤트 처리를 추론하고 테스트하기가 쉽습니다.

또 다른 OOP와 RP의 차이점은 두 패러다임에서 사용되는 스타일입니다. 먼저, OOP는 보통 명령형으로 작성됩니다. 다시 말해, 원하는 해결책에 도달하기 위해 객체들이 어떻게 상호 작용하고 변환하는지를 나타내는 일련의 구문들을 실행하는 동안 상태를 추적하는 객체를 초기화합니다.

반면에 RxJS에서는 코드를 선언적으로 작성하길 권장합니다. 즉, 코드에서 수행하려는 작업의 방식이 아니라 표현하는 것을 의미합니다. RxJS는 FP에서 영감을 얻은 간단하고 선언적인 디자인을 따릅니다. 더는 콜백 진행 상황을 추적하기 위한 변수를 만들거나 실수로 일부 폐쇄된 외부 상태를 손상시켜 부가 작용이 발생하는 일을 걱정하지 않아도 됩니다. 게다가 RxJS를 사용하면 다중 데이터 스트림을 관리하기 쉽고 마음대로 필터링하거나 변환할 수 있습니다. 함께 연결될 수 있는 작업을 생성하여 “7월 중에 잡지를 받게 된다면 알려주세요”와 같이 문장을 말하는 것처럼 로직의 파이프라인을 만들 수 있습니다.

이 장에서는 옵저버블(스트림)을 전면에 내세운 간단한 연산 모델로 RxJS가 함수형과 반응형 패러다임을 멋지게 결합하는 방법을 배웠습니다. 옵저버블은 비동기 작업을 통해 비즈니스 로직을 우아하게 구성할 수 있게 연산자와 변환이라는 강력한 무기를 사용하여 순수하고 부가 작용이 없습니다. 지금까지 새로운 개념들을 배우면서 코드 추상화를 사용했지만, 지금부터는 라이브러리에 관한 포괄적인 이론과 실제 지식을 신속하게 파악하여 실무나 개인 프로젝트에서 바로 적용할 수 있게 해보겠습니다. 이제는 실제로 스트림 측면에서 생각해야 하며 바로 이것이 다음 장의 주제입니다.

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