java map 사용법

sun·3일 전

2026

목록 보기
6/6

map 안에서는 여러 줄 로직을 쓸 수 있다.
단, 마지막에 반드시 "하나를 반환" 해야 한다.


비교 : map vs forEach

map (변환)

.map(d -> {
    return new DrResponse(...);
})

forEach (소비)

.forEach(d -> {
    System.out.println(d.getName());
})
구분mapforEach
목적변환실행
return필수없음
결과새로운 Stream없음

조건 로직도 가능하다고 한다.

.map(d -> {
    if (d.getName().isBlank()) {
        return new DrResponse(d.getId(), "이름없음");
    }

    return new DrResponse(d.getId(), d.getName());
})

-> 조건 분기 OK


그렇다고 "비즈니스 로직" 전부 map에 넣지 않는다.

map에 적당한 것

  • DTO 변환
  • 단순 포맷 가공
  • 표시용 값 처리

map에 부적절한 것

  • DB 조회
  • 권한 판단
  • 핵심 비즈니스 규칙
    ====> 이런 것들은 Service에서 처리.

📌 메서드로 분리

"

.map(this::toResponse)

"
"

private DrResponse toResponse(Dr d) {
    return new DrResponse(d.getId(), d.getName());
}

"

  • 읽기 훨씬 좋고, 테스트도 쉽다.

한 문장 요약

map은 여러 줄 로직을 가질 수 있지만,
"변환"이라는 역할은 절대 벗어나면 안 된다.

0개의 댓글