더북(TheBook)

1.3 다른 패러다임의 필요성

 

 

수년 동안 다양한 자바스크립트 비동기 라이브러리를 사용하는 방법을 배웠고, JQuery, Async.js, Q.js 등 각자 선호하는 라이브러리가 있을 겁니다. 그런데 모든 라이브러리에는 단점이 있습니다. 따라서 단순히 라이브러리를 선택하는 것이 능사가 아니라 작업에 맞는 패러다임을 고르는 것이 중요하다고 볼 수 있습니다. RxJS는 FP와 RP의 패러다임을 결합함으로써 다음과 같은 문제를 해결하는 데 도움을 줄 수 있습니다.

비동기 함수가 있는 친숙한 제어 흐름 구조(for 또는 while과 같은 반복문)들은 비동기를 인식하지 못하므로 제대로 작동하지 않습니다. 즉, 이들 구조는 반복 사이의 지연 시간 또는 대기 시간을 인식하지 못합니다.

각 콜백 내에서 try/catch 블록이 중첩된다면 에러 처리 전략이 금방 복잡해집니다. 이와 관련해서 7장에서 에러를 함수형 관점에서 처리하는 방법을 다룹니다. 또한, 모든 단계에서 재시도 로직을 일정 수준으로 구현하기란 다른 라이브러리의 도움을 받더라도 매우 어려운 일입니다.

비즈니스 로직은 지원해야 하는 중첩된 콜백 구조 안에서 밀접하게 결합될 수 있습니다. 코드가 중첩될수록 추론하기가 어려운 것은 자명합니다. 깊게 중첩된 함수는 가독성과 복잡성 측면에서 문제가 되는 다른 변수들과 함수들과 얽히게 됩니다. 따라서 독립적으로 유지 보수와 단위 테스트를 할 수 있는, 느슨하게 결합된 비즈니스 로직을 얻으려면 재사용 가능한 모듈형 컴포넌트를 생성하는 것이 좋습니다. RxJS를 이용한 단위 테스트는 9장에서 살펴보겠습니다.

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