flatMap만 사용하기는 그만! Reactor 오퍼레이터 파헤치기 - 최정수_NE DAY 23. 07
엔지니어링데이 2025 네이버 · YouTube
AI 핵심 요약
Reactor 오퍼레이터를 일부만 사용하면서 flatMap을 중첩한 코드는 들여쓰기와 긴 람다를 낳아 로직 파악과 변경을 어렵게 했다. 발표자는 마블 다이어그램으로 오퍼레이터 동작을 설명하고, map·filter·doOnNext·zip·zipWhen·delayUntil 등으로 역할을 나누는 기준을 소개했다. 실전 알림 전송 코드는 필요한 값을 튜플로 전달해 체인을 다시 시작하고, 로깅과 후처리를 적절한 오퍼레이터와 메서드로 분리해 중첩과 메서드 길이를 줄였다. 핵심은 flatMap을 무조건 피하는 것이 아니라 스트림의 흐름을 유지하고 각 오퍼레이터가 맡는 일을 명확히 해 가독성과 변경 용이성을 높이는 것이다.
- 마블 다이어그램에서 입력·출력 요소와 완료·에러 신호를 확인하면 오퍼레이터의 동작을 빠르게 파악할 수 있다.
- 동기 변환은 map, 조건에 따른 제외는 filter, 동기적 부수 효과는 doOnNext로 표현해 역할을 드러낸다.
- 여러 Mono의 결과가 모두 필요하면 zip을, 한 결과에 의존해 다른 결과를 만들 때는 zipWhen을 고려한다.
- flatMap 내부에서 서로 다른 타입을 반환하면 타입 추론과 후속 체인 이해가 어려워질 수 있으므로 반환 타입을 일관되게 유지한다.
- Flux에서 delayUntil은 앞선 요소의 내부 Publisher가 끝난 뒤 다음 요소를 처리하므로, 동시성이 중요하면 flatMap과 비교해 선택한다.
소개
네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY(7월)에서 발표되었던 세션을 공개합니다. ----- 안녕하세요! 프리미엄콘텐츠플랫폼에서 백엔드 개발을 담당하고 있는 최정수입니다. 주로 Java Spring을 사용하지만, Node.js 개발 경험도 있습니다. 기술 성장에 관심이 많아 팀 내부 및 외부에서 스터디를 열심히 하고 있습니다. 팀 내부적으로 Reactor를 이용한 비동기 프로그래밍을 많이 사용하고 있지만, Reactor의 operator가 너무 많아 제대로 사용하기 쉽지 않았습니다. 특정 상황에서 어떤 operator를 사용하는 것이 best practice인지에 대해 꾸준히 고민해오던 차에 이런 좋은 기회가 생겨 지금까지의 경험을 공유하기 위해 발표하게 되었습니다. [목차] - Project Reactor: Java의 비동기 프로그래밍 라이브러리 - 들어가며: 너무나 다양한 Reactor Operator - 마블 다이어그램 읽는 법 - flatMa...
비슷한 학습 자료
컨퍼런스 엔지니어링데이 2025
API 호출식 웜업의 부작용을 넘어서 : 라이브러리만 데우는 JVM 웜업
컨퍼런스 엔지니어링데이 2025
Windowing 기법을 적용한 대용량 고성능 표 컴포넌트 개발기
컨퍼런스 엔지니어링데이 2025
네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY 2025(5월)에서 발표되었던 세션을 공개합니다. [발표 내용] * 웹브라우저에서 대용량 데이터를 높은 성능으로 표현할 수 있는 Windowing 기법에 관해 소개하고 적용 사례를 공유합니다. [발표 대상] * Windowing 기법에 관심이 있는 개발자 [목차] * Windowing 기법이란 * 데이터 스트리밍 / 시계열 처리에서의 Windowing * 머신러닝에서의 Windowing * 컴퓨터 그래픽스에서의 Windowing * React에서의 Windowing / Virtualization 기술 * Windowing 기법을 활용한 오픈소스 라이브러리들 * Windowing기법을 사용하는 오픈소스 라이브러리 비교 * react-virtualized * react-window * @tanstack/react-virtual * 대용량 고성능 표 컴포넌트 Big Table 개발 배경...
웹 개발 프론트엔드
컨퍼런스 엔지니어링데이 2025
데이터는 흐른다, 연결될 준비가 되었다면
컨퍼런스 엔지니어링데이 2025
네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY 2025(5월)에서 발표되었던 세션을 공개합니다. [발표 내용] 유저 세그먼트를 손쉽게 정의하고, 이를 다양한 액션 채널(Braze, IDS, GAM 등)과 자동 연동할 수 있는 네이버 웹툰의 Cohort System을 소개합니다. 조건 기반 필터링, ML 모델 연동 등 다양한 방식으로 세그먼트를 만들고, 중복 제거 로직과 함께 효율적으로 활용할 수 있습니다. 시스템 구조와 기술 스택, 실제 마케팅 활용 사례까지 함께 공유하며, 데이터에서 인사이트, 나아가 액션까지의 연결을 어떻게 자동화했는지를 설명합니다. [강의 대상] * 데이터 엔지니어 / 백엔드 엔지니어: 데이터 흐름 자동화, 시스템 구조에 관심 있는 분 * ML 엔지니어 / 데이터 사이언티스트: ML 결과를 실시간 타겟팅에 적용하고 싶은 분 * 마케터 / PM: 타겟 유저 추출과 액션 전환까지의 전체 흐름을 이해하고 싶은 분 [목차] Episode 1...
백엔드 데이터베이스
컨퍼런스 우아콘 2023
[WOOWACON2023 세션 다시보기] 👉 세션 설명 배민스토어는 올해 4월, 레거시 코드와 아키텍처를 전부 재작성하고 재설계하는 빅뱅을 겪었습니다. 그 과정에서 생산성과 효율성을 높이기 위해 여러 가지 기술을 한 번에 도입했고, 다양한 시행착오를 겪었습니다. 배민스토어의 전시 도메인 개발자들이 어떤 일을 하는지 소개하면서, Kotlin, Spring WebFlux, EDA 도입의 이유와 좋았던 점, 나빴던 점, 그리고 각 기술에 대한 개발자들의 생각까지 날것으로 풀어내 보겠습니다.ㅤ ㅤ 👉 발표자 소개 배민스토어서비스개발팀 김민태 좋은 시스템을 개발해서 밤에 약속을 나가고 싶은 개발자입니다. 배민스토어의 백엔드를 개발하며, 팀에서 광대를 담당하고 있습니다. 배민스토어서비스개발팀 오지산 좋은 코드를 써서 밤에 발 쭉 뻗고 자고 싶은 개발자입니다. 배민스토어의 백엔드를 개발하며, 팀에서 선생님을 담당하고 있습니다. 👍 추천 대상 Kotlin과 Spring WebFl...
백엔드 프로그래밍 언어
컨퍼런스 FEConf 2025 A트랙