본문 바로가기

completablefuture3

[Spring] CompletableFuture 주요 함수들 CompletableFuture는 비동기 프로그래밍에서 다양한 함수들을 제공하여 작업의 실행, 결과 처리, 작업 병합, 에러 처리 등을 간편하게 수행할 수 있도록 합니다. 아래에서 주요 함수들과 그 기능에 대해 설명하겠습니다. 1. 비동기 작업 실행 1.1 runAsync • 결과값을 반환하지 않는 비동기 작업을 실행. • 주로 Runnable을 실행할 때 사용. • 기본적으로 ForkJoinPool을 사용하지만, Executor를 지정할 수도 있음.CompletableFuture future = CompletableFuture.runAsync(() -> { System.out.println("비동기 작업 실행!");}); 1.2 supplyAsync • 결과값을 반환하는 비동기 작업을 실행. • .. 2025. 1. 17.
[Spring] CompletableFuture 동작 예시 CompletableFuture를 실제 프로젝트에서 어떻게 사용하는지 알아보기 위해, 다양한 시나리오를 바탕으로 구체적인 예제를 단계적으로 설명하겠습니다.  1. 간단한 비동기 작업 CompletableFuture로 비동기 작업을 시작하고 결과를 처리하는 기본적인 예제입니다.import java.util.concurrent.CompletableFuture;public class CompletableFutureExample { public static void main(String[] args) { CompletableFuture future = CompletableFuture.supplyAsync(() -> { // 비동기 작업 수행 System... 2025. 1. 16.
[Spring] CompletableFuture 등장 배경 CompletableFuture는 Java에서 비동기 프로그래밍을 더욱 직관적이고 강력하게 만들기 위해 설계되었습니다. 등장 배경과 발전 과정을 살펴보면, Java의 동시성 프로그래밍과 관련된 문제들을 해결하기 위한 필요성과 이 클래스가 가진 장점이 명확히 드러납니다.  1. 배경: Java의 동시성 프로그래밍 Java는 초기부터 멀티스레딩과 동시성 프로그래밍을 지원해왔지만, 복잡한 비동기 작업을 처리하기에는 한계가 있었습니다. 1.1 Java의 초기 멀티스레딩 문제 • Thread 클래스와 Runnable 인터페이스:Java 1.0부터 Thread와 Runnable을 통해 멀티스레딩을 지원했지만, 직접적으로 스레드를 생성하고 관리해야 했습니다. 이는 코드가 복잡해지고 오류를 유발할 가능성이 높았습니다... 2025. 1. 16.