brunch

Project Reactor

reactor-core

by youngstone

최근 Spring MVC 프레임 워크에서 Reactor Core를 사용한 코드를 보게 되었다.

새로운 기술을 도입하는 것은 좋으나 원래의 목적에 맞게 잘 사용되고 있는지가 의문이었고

코드 리뷰시 어떤 목적과 의도로 사용된 것인지 확인하고자 하였으나

깊게 의논할 겨를 없이 코드는 머지가 되고 말았다.


코드를 작성한 당사자의 의도는

성능 향상을 위함이라고 했지만

AWS DynamoDB와 통신하기 위한 클라이언트 모듈은

Non-Blocking I/O를 지원하지 않는 라이브러리 였다.

결국 또 다른 Thread를 Blocking I/O를 위해서 할당하게 될것이고

Event Loop을 이용한 Non-blocking 을 지향하는 Reactive Programming 모델의 장점을 사용하지 못한채 원래 메소드를 실행하던 메인 Thread와 DDB와 통신하기 위한 또 다른 Thread간 데이터를 동기화 하는

오버헤드가 발생하기 때문에 성능 측면에서는 오히려 손실이 있고

Spring MVC 기반의 코드에서 Reactor Core를 사용함으로 코드 가독성을 떨어뜨린다는

생각이 들었다.


나의 이해가 짧을 수도 있기 때문에

사용된 코드가 어떻게 성능향상을 이루어 낼 수 있는지

혹은 그렇지 못하다면 그 이유는 무엇인지 파악하기 위해

Project Reactor의 핵심 모듈인 reactor-core에 대해서 파악 해보고자 한다.


여기에서 말하는 Project Reactor는 https://projectreactor.io/ 웹사이트를 따라가보면

지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.

brunch membership
youngstone작가님의 멤버십을 시작해 보세요!

개발자는 제 꿈이 아니었습니다. 꿈이 아닌 길을 걸으며 살아남고자 고군분투하는 이야기를 담았습니다.

175 구독자

오직 멤버십 구독자만 볼 수 있는,
이 작가의 특별 연재 콘텐츠

  • 총 10개의 혜택 콘텐츠
최신 발행글 더보기
매거진의 이전글Stub