시작하기무료로 시작하기

비동기 데이터 처리 파이프라인 구현하기

분석 대시보드를 만들고 있는데, 서로 다른 서비스에서 사용자 데이터와 활동 로그를 가져온 뒤 이를 처리해 사용자 요약 정보를 만들어야 합니다. 애플리케이션의 응답성을 유지하기 위해 이 작업은 비동기로 수행되어야 합니다. 이를 CompletableFuture를 사용해 구현해 보세요.

UserDataUserSummary 클래스는 미리 로드되어 있습니다.

이 연습은 강의의 일부입니다

Java 코드 최적화

강의 보기

연습 안내

  • CompletableFuture에 사용자 데이터 가져오기를 추가하세요.
  • CompletableFuture에 사용자 데이터 처리를 추가하세요.
  • CompletableFuture에 예외 처리를 추가하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

public class AsyncDashboard {
    public static void main(String[] args) throws Exception {        
        CompletableFuture userSummaryFuture = CompletableFuture
            // Fetch the user data
            .____(() -> fetchUserData("user123"))
            
            // Create summary based on fetched data
            .____(userData -> createSummary(userData))
            
            // Add exception handling
            .____(ex -> new UserSummary(new UserData("error", "Error User"))); 
        Thread.sleep(5000);
    }
    
    private static UserData fetchUserData(String userId) {
        simulateNetworkLatency(300);
        return new UserData(userId, "John Doe");
    }
    
    private static UserSummary createSummary(UserData userData) {
        simulateNetworkLatency(200);
        return new UserSummary(userData);
    }
    
    private static void simulateNetworkLatency(int millis) {
        try { Thread.sleep(millis); } catch (InterruptedException e) {}
    }
}
코드 편집 및 실행