안녕하세요! 왈라비🦘 입니다.

지난번에 concat에 이어서 concatMap에 대해서 알아보도록 하겠습니다!

일단 concatMap이란 이름 익숙하지 않나요?

네 그렇습니다. flatMap이라는 연산자를 아신다면 이름이 뭔가 익숙하다 라고 느끼셨을 겁니다.

concatMapflatMap과 비슷하면서도 concat만의 성질을 지닌 연산자라 할 수 있습니다.

concat의 특징은 “순서를 보장해준다” 인데요.

이처럼 concatMapflatMap과 비슷하지만 순서를 보장해준다 라는 특징에서 flatMap과 다릅니다.

그럼 한번 마블로 flatMap이랑 concatMap이 어떻게 다른지를 비교해가면서 알아보도록 하겠습니다.

마블


우선 아래는 flatMap의 마블 다이어그램 입니다.

flatMap.png

flatMap을 통해서 방출 받은 요소를 가지고 새로운 Observable을 생성해서 넘겨주고~ 그렇게 생성된 각 Observable들에서 방출되는 요소들을 마치 하나 시퀀스에서 관리하는 것 처럼 사용할 수 있는 것이였죠.