CodeGym
AI Academy
프로모션
CodeGym University
학습
강좌
과제
설문 & 퀴즈
게임
도움말
일정
커뮤니티
사용자
포럼
채팅
아티클
성공 사례
활동
후기
구독
라이트 테마

강의

  • 리뷰
  • 회사 소개
시작
학습 시작
Start learning now
  • 진행 상황
  • 코스
  • 퀘스트 맵
  • 레슨
  • CompletableFuture 입문

    JAVA 25 SELF
    레벨 55,레슨 0
    이 강의에서는 왜 동기 코드가 블로킹을 유발하는지, Future의 제약(블로킹 get() 등)은 무엇이었는지, 그리고 java.util.concurrent 패키지의 CompletableFuture 클래스가 비동기 작업 방식을 어떻게 바꾸는지 살펴보겠습니다. 또한 supplyAsync로 백그라운드에서 작업을 시작하고, thenAccept/ thenApply로 결과를 구독하는 법, ForkJoinPool의 역할과 흔한 실수들—메인 스레드에서 get()/ join()을 호출하는 것, exceptionally/ handle로 오류를 처리하지 않는 것 등을 연습합니다.
    사용 가능
  • 비동기 작업: thenApply, thenAccept, thenRun

    JAVA 25 SELF
    레벨 55,레슨 1
    CompletableFuture를 사용해 비동기 계산을 시작하고 구성하는 방법을 살펴봅니다: supplyAsync와 runAsync로 작업을 시작하는 법, 처리기 thenApply, thenAccept, thenRun의 차이점, 그리고 이들의 비동기 버전 thenApplyAsync/ thenAcceptAsync/ thenRunAsync를 언제 선택할지. 실행 스레드( ForkJoinPool 또는 여러분의 Executor), 결과 타입( CompletableFuture<T>, CompletableFuture<Void>)과 흔한 실수도 다룹니다: 블로킹하는 get()/ join(), exceptionally/ handle/ whenComplete 없이 처리되지 않은 예외, 그리고 thenRun 내부에서 결과를 사용하려는 시도 등.
    사용 가능
  • CompletableFuture 결합: thenCombine, allOf, anyOf

    JAVA 25 SELF
    레벨 55,레슨 2
    CompletableFuture로 작업을 병렬화하고 결과를 결합하는 방법: thenCombine/ thenCombineAsync로 두 결과를 합치기, allOf로 여러 작업을 기다리기, anyOf로 가장 빠른 응답에 반응하기. supplyAsync를 사용한 실전 예제, 논블로킹 처리( thenAccept, thenRun), 그리고 오류와 그 처리( exceptionally, handle, whenComplete)의 시그니처와 핵심 포인트를 다룹니다. 마지막에는 메서드 비교를 위한 간단한 표를 제공합니다.
    사용 가능
  • 비동기 코드에서의 오류 처리: exceptionally, handle

    JAVA 25 SELF
    레벨 55,레슨 3
    체인의 CompletableFuture에서 예외를 안전하게 포착하고 처리하는 방법: exceptionally(오류 시 대체 값), handle(성공/실패 공용 처리기), whenComplete(결과를 바꾸지 않는 부수 동작)의 역할을 살펴봅니다. 왜 get()/ join()을 직접 호출하면 원인이 ExecutionException/ CompletionException으로 래핑되는지, 단계들을 어떻게 결합하는지( thenApply, thenAccept), 그리고 어떤 전형적인 실수를 피해야 하는지도 논의합니다.
    사용 가능
  • thenCompose + 커스텀 Executor + 타임아웃

    JAVA 25 SELF
    레벨 55,레슨 4
    Java의 CompletableFuture에서 thenCompose로 비동기 단계를 올바르게 “연결”하는 방법과 언제 thenApply로 충분한지, ExecutorService를 통해 자체 스레드 풀을 연결해야 하는 이유와 방법( ForkJoinPool.commonPool() 대신), 그리고 orTimeout, completeOnTimeout으로 체인을 “무한 대기”로부터 보호하는 방법을 다룹니다. 마지막에는 커스텀 Executor, thenCompose, 타임아웃을 함께 사용하는 실전 예제와 함께 흔한 실수와 해결책을 정리합니다.
    사용 가능
학습
  • 등록
  • Java 과정
  • 과제 도움
  • 요금
  • Java 문법
커뮤니티
  • 사용자
  • 아티클
  • 포럼
  • 채팅
  • 성공 사례
  • 활동
  • 제휴 프로그램
회사
  • 회사 소개
  • 연락처
  • 후기
  • 보도자료실
  • CodeGym for EDU
  • FAQ
  • 지원
CodeGymCodeGym 은(는) 처음부터 Java 프로그래밍을 배우기 위한 온라인 코스입니다. 이 과정은 초보자가 Java를 마스터하기에 완벽한 방법입니다. 즉시 검증 기능이 포함된 1200개 이상의 과제와 Java 기초 이론의 필수 범위를 제공합니다. 학습 성공을 돕기 위해 퀴즈, 코딩 프로젝트, 효율적인 학습법 관련 콘텐츠, Java 개발자 경력 관련 자료 등 동기 부여 기능들을 구현했습니다.
팔로우하기
인터페이스 언어
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語
한국어
Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmers Are Made, Not Born" © 2026 CodeGym
MastercardVisa
"Programmers Are Made, Not Born" © 2026 CodeGym