독립 작업을 조합하고 전용 executor와 오류 경로를 관리합니다.
CompletableFuture는 비동기 결과를 변환·결합할 수 있지만 기본 common pool을 무분별하게 사용하면 다른 작업과 자원을 경쟁합니다. 업무별 제한된 Executor와 timeout을 둡니다.
thenApply는 값을 변환하고 thenCompose는 Future를 반환하는 작업을 평탄화하며 allOf는 독립 작업을 기다립니다.
예외를 exceptionally로 기본값 처리할지 호출자에게 전달할지 업무 의미에 따라 결정합니다.
요청 thread에서 join을 남발하면 비동기의 이점을 잃고 thread starvation이 생길 수 있습니다.
비동기 작업 안에서 MDC 같은 thread-local 문맥이 자동 전달된다고 가정하지 마세요.
직접 바꿔보세요두 계산을 thenCombine으로 합치고 한 작업 실패를 처리하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.