concurrency 2

Java Virtual Thread — 경량 스레드의 시대 (Project Loom 실무 가이드)

Java 21 Virtual Thread(Project Loom)로 동시성을 쉽게 확장하는 방법과 플랫폼 스레드와의 차이, 실무 적용 시 주의점을 정리합니다.도입 (문제 상황)동시 요청이 조금만 늘어도 스레드 풀이 꽉 차서 지연이 길어지거나, “스레드 수를 올리면 메모리부터 터진다” 같은 상황을 겪으실 때가 있어요. 반대로 비동기(CompletableFuture, 리액티브)로 바꾸자니 코드가 복잡해지고 디버깅이 어려워지는 경우도 많습니다. 이런 딜레마를 줄이기 위해 나온 해답이 Virtual Thread(가상 스레드) 입니다.핵심 개념 (Java Virtual Thread와 Project Loom이 중요한 이유)Project Loom은 “블로킹 코드를 그대로 두면서도 대규모 동시성”을 목표로 한 프로젝트..

JAVA 2026.02.28

Java 모던 동시성 — ExecutorService & CompletableFuture로 스레드 풀과 비동기 처리 정리

Java 17 기준으로 ExecutorService 스레드 풀 관리와 CompletableFuture 비동기 조합 패턴을 실무 관점에서 정리합니다.도입 (문제 상황)외부 API를 5개 호출하는데, 하나가 느려지면 전체 응답이 같이 늦어지는 경험을 해 보셨을 거예요. 또는 “스레드를 직접 만들면 되지 않나?”로 시작했다가, 스레드가 늘어나면서 CPU 컨텍스트 스위칭과 장애 대응이 어려워진 적도 있을 겁니다. 이럴 때 필요한 게 스레드 풀(ExecutorService) 과 비동기 조합(CompletableFuture) 입니다.핵심 개념: Java에서 “스레드 관리”와 “비동기 조합”을 분리해서 생각하기 동시성에서 중요한 건 단순히 “동시에 실행”이 아니라, 자원을 예측 가능하게 쓰고(스레드 풀), 결과를 안..

JAVA 2026.02.25