머리말
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
이 책을 쓴 이유
동시성은 오랫동안 Java 개발에서 가장 까다로운 측면 중 하나였습니다. 이전 버전과의 호환성에 대한 강력한 의지를 유지하면서 최신 소프트웨어 개발의 요구 사항을 충족하기 위해 지속적으로 발전해 왔습니다. Java가 수년에 걸쳐 도입한 모든 발전 중에서 Project Loom의 가상 스레드 도입은 동시성의 세계에 근본적인 변화를 가져왔습니다.
동시성은 본질적으로 까다로운 문제이며, 성능에 대한 요구가 증가함에 따라 그 난이도는 더욱 높아졌습니다. 숙련된 개발자에게도 이를 효과적으로 관리하는 것은 여전히 복잡한 작업입니다. 오늘날 최신 애플리케이션은 확장성에 대한 증가하는 요구 사항을 충족하기 위해 특히 최근 소프트웨어 개발을 지배하는 마이크로서비스 아키텍처 내에서 수많은 다른 시스템과 상호 작용하기 때문에 주로 I/O를 기반으로 합니다.
I/O 작업은 종종 상당한 시간이 걸립니다. 스레드가 I/O 호출을 하면 일반적으로 작업이 완료될 때까지 기다려야 하는데, 이는 전통적인 접근 방식이었습니다. 최신 운영 체제는 수백만 개의 열린 소켓을 관리할 수 있지만, 사용 가능한 스레드 수는 여전히 제한되어 있습니다. 따라서 기존 스레드로 더 높은 처리량에 대한 증가하는 수요를 충족하는 것은 점점 더 복잡해지고 있습니다.
이러한 한계에 대응하기 위해 다양한 기술과 대체 동시성 모델이 고안되었지만, 각 모델에는 고유한 장단점이 있습니다. 가상 스레드는 더 적은 수의 커널 스레드에 다중화할 수 있는 경량 사용자 모드 스레드를 활용하는 유망한 솔루션입니다. 이 접근 방식을 사용하면 시스템 리소스를 보다 효율적으로 사용할 수 있습니다. 확장성이 향상되어 동시성 분야에서 주목할 만한 개선이 이루어졌습니다.
가상 스레드를 처음 접했을 때 저는 즉시 흥미를 느꼈습니다. JVM에서 동시 프로그램을 작성하는 방식을 근본적으로 바꿀 수 있는 대망의 돌파구처럼 느껴졌고, 이전에는 Java에 없던 간단하고 우아한 솔루션을 제공했습니다.
저는 가상 스레드를 실험하고, 블로그에 결과를 문서화하고, 컨퍼런스에서 발표하기 시작했습니다. 개발자 커뮤니티의 열광적인 반응은 가상 스레드가 단순한 기능 향상이 아니라 동시성에 대한 접근 방식의 근본적인 변화라는 사실을 재확인시켜 주었습니다.
계속 살펴보면서 공식 문서, 통찰력 있는 블로그 게시물, 실제 사례가 담긴 GitHub 리포지토리, 훌륭한 컨퍼런스 세션 등 가상 스레드와 관련된 풍부한 리소스를 발견할 수 있었습니다. 이러한 리소스는 개별적으로도 가치가 있지만, 각각 주제의 다른 측면에 초점을 맞추고 있습니다. 일부는 기술적 구현을 다루고, 일부는 마이그레이션 전략과 구체적인 사용 사례에 대해 논의했습니다.
지속적인 글쓰기, 발표, 실습을 통해 저는 이 주제에 대해 보다 명확하고 포괄적인 이해를 얻었습니다. 이러한 탐구를 통해 프로젝트 Loom의 동기, Java의 기존 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access