mapping과 collectingAndThen은 bucket 안 값과 완성 결과를 서로 다른 시점에 바꾼다

둘을 같은 map으로 생각하면 element 변환과 collection finishing 경계를 혼동합니다.

  1. 1

    bucket T

    groupingBy input

  2. 2

    mapping

    T→R per element

  3. 3

    downstream collect

    A 축적

  4. 4

    downstream finish

    A→D

  5. 5

    collectingAndThen

    D→RR once

핵심: mapping은 accumulator 전에, collectingAndThen은 downstream 결과가 끝난 뒤 실행됩니다.