넷플릭스는 리액티브 프로그래밍이 제공하는 높은 처리량의 필요를 인정하면서도 전 구간 리액티브 제약과 복잡한 에러 처리, 디버깅의 어려움 때문에 더 이상 새로운 서비스에 스프링 웹플럭스를 사용하지 않고 스프링 웹 MVC로 표준을 전환했다. 캐시프리 같은 금융 서비스나 이커머스처럼 높은 동시성 작업이 필요한 산업에서도 비슷한 이유로 가상 스레드 기반의 동기식 코드로 회귀하고 있다. 이들이 공통으로 발견한 것은 자바의 가상 스레드가 리액티브의 복잡성 없이도 동등한 확장성을 제공한다는 점이다. 자바는 점진적이지만 근본적인 해결책을 추구했다. 그 덕분에 지난 수십 년간 만들어진 수많은 엔터프라이즈 애플리케이션이 아키텍처 재설계 없이도 가상 스레드 도입으로 확장성을 개선할 수 있게 되었다.
이 책은 가상 스레드를 중심으로 한 새로운 자바 동시성 기술을 다루지만, 동시에 자바 동시성의 근간이 되는 스레드 모델, 동기화 같은 기본 개념도 하나하나 친절하게 설명한다. 그저 새로운 API를 나열하는 것을 넘어, 스레드풀이 어떻게 동작하는지, 가상 스레드가 왜 고정 문제를 겪는지, 구조적 동시성이 왜 중요한지를 코드 수준에서 설명하고, 나아가 운영 환경에서 실제로 마주칠 수 있는 트러블슈팅 사례와 모니터링 방법까지 실무적인 관점을 놓치지 않는다. 이론과 실무, 과거와 현재를 아우르는 저자의 깊은 통찰을 엿볼 수 있다.
무엇보다 이 책이 빛나는 이유는 옮긴이 오명운 님의 꼼꼼함과 친절함 때문이다. 감사하게도, 모든 코드를 직접 실행해 보며 헤맬 수 있는 부분마다 이정표를 세워두고, 함께 읽으면 좋을 글을 소개해 주었다. 단어 하나하나 곱씹으며 번역을 했다는 사실이 책 전반에서 느껴진다. 기술의 본질을 파고드는 번역가의 자세가 이 책을 더욱 완성도 높게 만들어준다.
자바 동시성의 미래를 알고 싶은 모든 개발자에게 이 책을 권한다.
- 박용권 (당근마켓 시니어 엔지니어)
이 책은 자바 1.0의 전통적인 스레드 모델에서 출발해 자바 21 이후 도입된 가상 스레드와 구조적 동시성에 이르기까지 자바 동시성의 진화를 코드 중심으로 풀어낸 실용적인 전문서입니다. 각 시대의 동시성 모델이 지닌 한계와 그 해결 과정을 따라가며 변화의 흐름을 자연스럽게 이해하도록 도와줍니다. 특히 새로운 기능을 단순히 소개하는 데 그치지 않고, 실제 애플리케이션 코드와 구체적인 예제를 통해 설계와 적용 방법을 실질적으로 안내해 주는 점이 매우 인상적입니다. 독자들은 이 책을 통해 동시성 코드의 복잡성을 줄이면서도 안정성과 확장성을 함께 확보하는 방법을 자연스럽게 익힐 수 있을 것입니다.
『OpenAPI와 스웨거를 활용한 실전 API 설계』 등의 여러 기술서를 옮긴 오명운 님은 원서의 의도와 맥락을 정확히 살리는 것으로 정평이 나 있습니다. 그간의 전문성이 녹아 있는 이 책을 최신 자바 동시성 모델을 깊이 있게 이해하고자 하는 개발자 여러분께 자신 있게 추천합니다.
- 신동민 (NHN Dooray CTO)
많은 프로그래머에게 동시성 문제는 늘 골칫거리이며, 이를 해결하기 위한 방법 또한 다양하게 존재합니다. 하지만 실제 현장에서는 동시성의 기본 개념이나 대표적인 문제들에 대한 충분한 이해 없이 단순히 프로그래밍 언어에서 제공하는 동시성 처리 API를 활용하는 경우를 자주 봐왔습니다. 이러한 접근 방식은 운영 환경에서 동시성 문제가 발생했을 때 원인 규명과 해결책 도출에 많은 시간을 소모하게 만들며, 경우에 따라서는 문제를 정확히 파악하는 것조차 어려워집니다. 특히 AI 기반 바이브코딩이 보편화되고 있는 오늘날에는, AI가 작성한 코드에 대한 리뷰와 검증을 위해서라도 개발자 스스로 동시성에 대한 기본 이해도를 갖추는 것이 더욱 중요해지고 있습니다.
이 책은 동시성의 기본 개념과 주요 문제점을 깊이 있게 다루며 자바 언어에서 제공하는 다양한 동시성 API와 그 활용 방법을 체계적으로 설명합니다. 또한 단순한 기술 소개에 그치지 않고, 설계 단계에서 동시성 문제를 어떻게 바라보고 고민해야 하는지에 대한 실질적인 지침까지 제시하므로 매우 시의적절합니다. 동시성 개념과 문제에 대해 폭넓은 이해를 원하는 프로그래머들에게 이 책을 강력히 추천합니다.
- 심천보 (카카오엔터테인먼트 베리즈개발그룹장)
자바 개발자를 20세기에 시작한 저 같은 분들은 자바를 처음 접할 때 그린 스레드(green thread)라는 걸 배우셨을 겁니다. 저 또한 배웠었고, 실제 개발에서는 네이티브 스레드(native thread)를 써서 고성능의 자바 애플리케이션을 개발해 왔습니다. 그런데 2017년 무렵 프로젝트 룸(Project Loom)이 올라왔을 때 저는 정말 세상이 많이 변했다는 생각을 했습니다. 예전에 고(Go), 프로그래밍 언어의 고루틴(goroutine)을 보면서 아이디어가 참 좋다고 생각했었는데 이게 코틀린(Kotlin)에서도 사용되는 것을 보면서 이대로 굳어지겠다는 생각이 들었습니다.
23년 9월 JDK 21에 가상 스레드가 공식으로 포함되면서 이제 대다수 프레임워크에서 적용되고 있습니다. “이걸 굳이 알 필요가 있을까?”라고 질문한다면 저는 이 책을 꼭 일독하시라고 권해드리고 싶습니다.
컴퓨팅 환경의 변화가 정말 빠르고 광범위하게 바뀌고 있는데, 우리가 API만 찍어내는 일만 한다 하더라도 이제는 그 API를 구현하는 프레임워크에서 어떻게 돌아가는지를 이해하지 못한다면, 장애나 문제가 발생했을 때 챗GPT나 제미나이 같은 AI 서비스가 온라인이 안 되는 사태가 발생할 때는 바보 개발자가 될 수도 있다고 생각합니다. 동시성이 항상 적용되고 있는 상황에서 “왜?”라는 질문에 답할 수 있도록 잘 이해하며 프로그래밍할 수 있다면, 그건 개발자로서 역량의 격차를 만들 것입니다.
이 책을 꼭 한번 읽어보시길 강력 추천합니다.
- 양수열 (크라우드웍스 CTO, 한국인 최초의 자바 챔피언)
함께 프로젝트를 진행하며 알게 된 옮긴이 명운 님은 언제나 새로운 시도를 두려워하지 않고, 생소한 개념을 좀 더 빠르게 파악해 상용 프로젝트에 도입하여 직간접적인 리소스를 절감하는 것을 좋아하는 지칠 줄 모르는 혁신형 개발자입니다. 혁신형 개발자의 풍부한 실무 경험을 바탕으로 한국어로 옮겨온 이 책은, 정교하게 구조화된 자바 비동기 프로그래밍에 대한 갈증을 느껴왔거나 저와 같이 Node.js, C# 프로젝트에서 경험한 async/await 모델을 자바의 가상 스레드로 우아하게 구현해 보고 싶은 개발자들에게 완벽한 가이드가 될 것이라 확신합니다.
평소 코드 리뷰를 통해 복잡하게 얽혀 있던 도메인 로직과 설명하기 애매한 구조적 내용도 언제나 쉽고 직관적으로 풀어서 설명해 주셨던 명운 님 특유의 스타일이 이 책에도 고스란히 녹아 있어 조금만 읽으려 해도 다음 페이지를 넘기고 있는 제 모습을 발견하게 됩니다.
- 윤승재 (네이버제트 개발자)
자바로 서비스를 만들어온 개발자라면, 언젠가 반드시 동시성 문제와 마주하게 됩니다. 급격히 늘어나는 요청을 감당해야 하는 서비스, 데이터 정합성이 생명인 금융이나 예약 시스템, 한정된 재고를 다루는 커머스 등이 대표적입니다. 이런 서비스에서 장애나 오류의 원인을 끝까지 추적해 보면, 결국 동시성 문제에 닿는 경우가 많습니다.
동시성을 본격적으로 학습하려는 개발자에게 그동안 추천하던 책은 브라이언 게츠의 『자바 병렬 프로그래밍』이었습니다. 하지만 거의 20년 전에 출간된 책이었기에 고전적인 내용에 머물러 있었으므로, 자바 25까지 발전해 온 현대적 동시성을 안내하는 새로운 지침서가 절실했습니다. 이 책은 바로 그 오랜 빈자리를 채워주는 자바 동시성의 새로운 바이블입니다.
오랜 기다림 끝에 등장한 가상 스레드는 동시성을 다루는 방식을 근본적으로 바꿔놓은 혁신적인 기술입니다. 이 책은 가상 스레드를 비롯해 구조적 동시성, 스코프드 밸류 등 최신 자바가 제시하는 현대적 동시성 모델을 체계적으로 다루고 있습니다. 동시성 문제와 마주하는 것은 피할 수 없지만, 이 책이 그 여정을 훨씬 수월하게 만들어줄 것입니다.
- 이일민 (이프릴 대표, 『토비의 스프링』 저자)
숙련된 개발자와 그렇지 않은 개발자를 가르는 지식을 한 가지만 꼽으라면, ‘동시성에 대한 이해’가 가장 먼저 떠오른다. 실무 운영 환경에서 발생하는 심각한 장애를 해결하고, 대량 트래픽을 안정적으로 처리하는 시스템을 만들기 위해 갖춰야 할 지식이기 때문이다. 자신의 PC에서 잘 동작하는 프로그램을 누구나 만들 수 있게 된 요즘 시대에도, 개발자의 전문성은 결국 이 지점에서 드러난다. 안정성, 확장성, 효율성에 대한 높은 기준을 스스로 세우고, 동시성 관련 기법을 활용해 그 기준을 충족하는 프로그램을 작성하는 개발자는 여전히 흔치 않기 때문이다.
최근의 자바는 가상 스레드, 구조적 동시성, 스코프드 밸류 등을 도입하며 개발자들이 오랫동안 씨름해 온 동시성의 난관을 좀 더 쉽게 해결할 수 있는 도구를 제공했다. 이를 통해 실질적인 가치를 창출해야 하는 차례가 현장의 개발자들에게 넘어왔다.
이러한 흐름에 발맞춰, 이 책은 동시성에 대한 과거 자바의 여정부터 시작하여 현시점의 자바 개발자가 갖춰야 할 소양을 친절하면서도 깊이 있게 안내해 준다.
- 정상혁 (네이버 개발 리더)
바이브코딩이 프로그래밍의 지형을 근본부터 뒤흔들고 있는 시대에도, 자바는 자신의 정체성을 잃지 않으며 유유히 진화해 왔습니다. 프로젝트 룸을 시작으로, 기존 프로그래밍의 틀을 파괴하지 않고도 획기적으로 효율적인 스레드 모델을 사용할 수 있게 되었습니다. 가상 스레드를 발표한 이후에도 현장의 목소리를 반영하여 StructuredTaskScope와 ScopedValue를 잇달아 선보이며, 자바는 실용성과 안정성이라는 자신만의 철학을 묵묵히 증명해 가고 있습니다.
이 책은 자바 1.0 시절의 스레드 모델부터 이그제큐터(Executor) 프레임워크, CompletableFuture, 리액티브 프로그래밍에 이르는 동시성의 진화 과정을 차근차근 짚어줍니다. 그 위에서 가상 스레드의 내부 동작 원리인 ForkJoinPool과 Continuation을 깊이 있게 다루고, 직접 가상 스레드를 만들어보는 과정까지 안내하여 ‘왜 이렇게 설계되었는가’를 체감할 수 있게 합니다. 나아가 요청 제한(rate limiting), 디버깅, 모니터링 같은 운영 환경의 현실적인 과제를 다루며, 스프링 부트, 쿼커스, 자카르타 EE 등 주요 프레임워크에서 가상 스레드를 통합하는 방법까지 폭넓게 안내합니다.
끝으로, 역자의 도서 선택에 대한 선구안에 늘 감탄합니다. 기본을 탄탄히 다지면서도 새로운 기술의 본질을 꿰뚫는 책을 골라내는 안목이 이번에도 빛을 발했습니다. 오랜 기간 현업에서 쉬지 않고 프로그래밍해 온 경험이 고스란히 녹아든 번역은, 현장에서 바로 통하는 자연스러운 용어 선택으로 이 책의 가치를 한층 더 높여줍니다.
- 정지범 (NHN Dooray 협업서비스개발블루팀 팀장)
프로그래머에게 동시성 프로그래밍은 사춘기를 보내는 아이를 대하는 것과 비슷합니다. 이해하기도 어렵고, 불안정하며, 제대로 동작하는지 테스트하는 것조차 버거워 프로그램에 치명적인 상처를 입히기도 합니다. 최근에 자바에 도입된 가상 스레드와 구조적 동시성, 스코프드 밸류는 동시성 프로그래밍에 대한 이런 오해와 불신을 완벽하지는 않아도 만족스러울 정도로 해결해 주고 있습니다. 그리고 이 책은 이런 개선사항들에 대한 개념과 사용 방법을 놀랍도록 완벽하면서도 만족스럽게 설명합니다.
이 책은 단순히 신기술을 나열하는 데 그치지 않고 자바 동시성 모델의 역사와 내부 메커니즘을 깊이 있게 파고들며, 기존 라이브러리의 한계와 최적의 활용법을 명확히 짚어줍니다. 패러다임 관점에서도 주목할 만한데, 명령형 프로그래밍 방식으로도 충분히 이해하기 쉽고 예상 가능한 동시성 프로그램을 작성할 수 있음을 보여줍니다. 예제는 실무에서 활용할 수 있을 만큼 실용적이고 구체적이며, 리액티브 프로그래밍과의 비교, 스프링 부트와 쿼커스를 포함한 최신 프레임워크에서의 활용 방법 등 개발자에게 유용한 내용들로 가득 차 있습니다.
그동안 동시성 프로그래밍이 어렵게만 느껴지셨나요? 그렇다면 이 책을 꼭 읽어보시기 바랍니다. 동시성 프로그래밍의 본질적인 불안정성 자체는 제거할 수 없겠지만, 최소한 안정적으로 통제할 수 있다는 확신은 들 것입니다. 적어도 저는 그렇게 느꼈습니다.
- 조영호 (『객체지향의 사실과 오해』, 『오브젝트』 저자)
자바에서 스레드를 사용해 왔지만, 그 내부 동작 원리와 성능에 어떤 영향을 미치는지까지 제대로 이해해 보고 싶었던 개발자라면 이 책을 읽어보길 강력히 추천합니다.
이 책에서는 플랫폼 스레드의 한계에서 출발해 JDK 21의 가상 스레드가 왜 등장했는지, 그리고 JVM이 이를 실제 OS 스레드 위에서 어떻게 실행하고 관리하는지까지 설명합니다. 핵심 개념을 차근차근 풀어주므로, 동시성을 단순히 사용하는 수준을 넘어 제대로 이해하도록 돕습니다. 또한 기존의 이그제큐터나 스레드 풀 방식과 무엇이 다른지 쉽게 비교해 주므로, 왜 새로운 접근이 필요한지도 자연스럽게 이해할 수 있습니다. 또한 구조적 동시성과 스코프드 밸류를 통해 복잡한 비동기 코드를 더 단순하고 안전하게 구성하는 방법도 보여줍니다.
스레드의 원리를 더 깊이 이해하고 싶은 중급 개발자, 그리고 가상 스레드의 내부 메커니즘까지 제대로 알고 싶은 모든 개발자에게 자신 있게 추천합니다.
- 홍상표 (포티투닷(42dot) 스태프 백엔드 엔지니어, 팀 리드)
바즐루어 라만이 자바의 동시성을 멋지게 정리해낸 이 책은 제목 그대로 “모던”하다. 오랜 기다림 끝에 최신 JDK에 포함된 많은 기능을 다뤄주는 덕분에, 자바의 최신 가상 스레드 정보, 그리고 전반적인 동시성 프로그래밍과 관련한 팀 차원의 모범 사례를 모두 배울 수 있는 매우 훌륭한 책이다. 강력히 추천한다.
- 마크 로이(Marc Loy) (자바 저자)