
'thenApply'는 주로 Java의 CompletionStage/CompletableFuture API에서 쓰이는 메서드로, 비동기 작업의 결과를 받아 그 결과에 대한 변환(mapping)을 수행하고 그 변환 결과를 담는 새로운 CompletionStage를 반환합니다. 핵심 사항은 다음과 같습니다. - 용도: 이전 단계의 결과를 입력으로 받아 함수를 적용한 값을 다음 단계의 결과로 만드는 '맵(map)' 연산. - 반환값: CompletionStage
(보통 CompletableFuture) — 새 비동기 단계가 반환됨. - 실행 시점/스레드: thenApply는 이전 단계가 완료된 스레드에서 즉시 함수를 실행합니다. (비동기 실행을 원하면 thenApplyAsync를 사용.) - 예외 처리: 이전 단계가 예외로 완료되면 함수는 호출되지 않고 반환 단계도 예외로 완료됩니다. 함수 내부에서 예외가 발생하면 반환 단계는 그 예외로 예외 완료됩니다. - 비교: - thenApply: 결과를 동기적으로 변환(map). - thenApplyAsync: 변환을 비동기(다른 스레드/스레드풀)로 수행. - thenCompose: 함수가 CompletableFuture를 반환할 때 사용(즉, flatMap처럼 중첩된 미래를 펼침). - thenAccept / thenRun: 결과 소비(부수효과) 전용. 간단한 예 (Java): CompletableFuture.supplyAsync(() -> 2) .thenApply(n -> n * 3) // 6 .thenApply(n -> "Result: " + n); // "Result: 6" 정리하면, thenApply는 비동기 파이프라인에서 결과를 변환해 새로운 단계로 연결하는 용도의 메서드입니다.