Reactive Programming 학습 과정

this-is-spear·2023년 3월 18일
0

Intro

프로젝트를 진행하면서 프로그래밍 패러다임을 변경하는 일은 많은 리소스를 소모할만큼 의미있는 변화였는가를 고민했습니다. 그래서 Spring이 제공하는 문서를 활용해 어떤 장점이 있는지, 어떻게 잘 활용할 수 있을지 고민했습니다.

목차

  1. Reactive Programming - 개요
    Reactive programming은 비동기로 동작해 데이터 스트림과 변화를 전달하며 데이터 흐름을 쉽게 표현합니다.

  2. Reactive Programming - Blocking is not efficient
    Blocking 은 자원을 점유한 상태로 멈추면서 처리량을 떨어뜨리는 효율적이지 못한 상황을 말합니다. Reactive Programming은 Non-blocking하게 작업을 효율적으로 처리할 수 있습니다.

  3. Reactive Programming 의 기능
    reactive libraries는 전통적인 비동기식 접근 방식의 단점을 해결하는 동시에 아래의 특징을 제공합니다.

Outro

매료 된 이유

문서을 읽으면서 Reactor 가 개발자들의 개발 생산성을 높이기 위해 많은 기능을 제공하고 있는 모습을 보고 매료됐습니다. 아래는 제가 매료된 이유를 나열했습니다.

데이터 흐름을 쉽게 파악할 수 있다.

다른 사람들이 Reactor가 데이터 흐름을 쉽게 이해할 수 있다는 점이 장점이라는 걸 납득하기 어려웠는데, 다른 비동기 기술로 구현하는 것보다 쉽다는 의미라는 걸 알 수 있었습니다.

데이터 흐름을 신경쓸 필요가 없다.

Reactor를 이용하면 구독자와 공급자 간 상호 관계만 신경쓰면 우리가 원하는 동작을 한다는 신뢰를 주고 있습니다.

다양한 기능을 제공한다.

또한 Reactive Streams에서 제공하는 많은 기능을 이용해 원하는 방식으로 데이터 흐름을 제어할 수 있습니다.

마지막으로

코드를 작성하면서 데이터 흐름을 신경써본적이 없는데, Reactive Programming 덕분에 데이터 흐름을 신경쓰면서 코딩할 수 있었고, 조금 더 원초적인 기술에 가까워질 수 있었습니다.

문서를 읽으면서 장점이 된 건 코드를 작성할 용기가 생겼습니다. 막연하게 코드를 치면서 테스트를 하는 방법보다 동작을 이해하고 코드를 작성하는 게 개발 생산성을 높일 수 있는 길이라는 것을 알게 됐습니다.

profile
익숙함을 경계하자

0개의 댓글