본문 바로가기

Web Development/Next.js

[RxJS] 1편. RxJS와 선언형 프로그래밍의 관계

1편. RxJS와 선언형 프로그래밍의 관계

RxJS는 단순한 유틸리티 라이브러리를 넘어서, 선언형 프로그래밍의 철학을 코드에 옮긴 대표적인 예다.
이 글에서는 RxJS가 왜 선언형 프로그래밍과 관련이 깊은지 살펴보자.

✨ 선언형 프로그래밍이란?

- "무엇을 할 것인가"에 집중
- 데이터 흐름을 명시적으로 선언하고, 내부의 처리 방식은 숨김
- 대표 예시: HTML, SQL, React JSX, Array.map/filter

⚡ RxJS는 선언형 프로그래밍 그 자체

RxJS는 Observable 스트림을 통해 비동기 데이터를 선언적으로 다룬다.
직접 흐름을 제어하지 않고, 연산자를 조합해서 "무엇을 할 것인지" 선언한다.


fromEvent(document, 'click')
  .pipe(
    map(event => event.clientX),
    filter(x => x < 500)
  )
  .subscribe(console.log);

- 위 코드는 "클릭 이벤트 중에서, X좌표가 500보다 작은 것만 출력해줘" 라는 의도를 표현
- 명령어의 나열이 아니라 데이터 흐름의 조합

🔗 선언형과 함수형의 연결

  • RxJS는 순수 함수와 불변성을 지향하는 함수형 API를 제공
  • map, filter, reduce 같은 연산자를 기반으로 구성
  • 이벤트나 비동기 작업을 "데이터처럼" 다루는 점에서 선언형에 가깝다