자바 태동기에 이른바 엔터프라이즈 세계에는 오늘날보다 다양한 CPU 아키텍처와 C·C++ 컴파일러가 경쟁하고 있었습니다. 이른바 닷컴 붐이 일면서 인터넷에서 돌아가는 서비스를 개발해야 하는 개발자들에게 C·C++의 까다로운 메모리 관리와 플랫폼 이식성은 큰 골칫거리였죠. 그러다 “한 번 작성하면 어디서든 실행된다”라는 구호와 함께 등장한 자바는 적지 않은 개발자에게 구원자처럼 여겨졌을 겁니다. 그리고 그러한 구호를 현실로 만든 토대가 바로 자바 가상 머신(JVM)입니다.

한때 많은 주목을 받았으나 이제는 잊히고 있는 비운의 CPU 아키텍처

자바 가상 머신은 복잡한 저수준을 감추고 개발자들에게 가비지 컬렉션으로 대표되는 자동 메모리 관리와 바이트코드 기반의 플랫폼 이식성이라는 선물을 안겨 주었습니다. 그 덕분에 ‘로직’에만 집중할 수 있는 해방의 시대가 열리는 것처럼 보였습니다. 그런데 공짜는 없다고 선물 대신 대가를 치러야 했습니다. 바로 낮은 성능과 메모리 부족 오류 등의 문제를 겪어야 했고 이는 지금도 여전합니다.

개발자들은 메모리를 일일이 할당, 해제하고 플랫폼 의존적인 코드를 짜지 않는 대신 그 일을 대신 하는 자바 가상 머신을 관리, 감독해야 합니다. 그리고 그렇게 하려면 그동안 그다지 신경 쓰고 싶지 않았던 자바 가상 머신의 덮개를 열어야 합니다.
그런데 자바 가상 머신은 수십 년의 이론적 연구와 구현 기법이 켜켜이 쌓인 복잡도가 매우 높은 소프트웨어입니다. 자바 가상 머신을 분석해야 한다니 배보다 배꼽이 더 큰 셈 아닐까요?
그래서 자바 가상 머신의 복잡도를 고려해 무엇을 공부해야 할지 잘 선택하는 것이 중요합니다. 자바 가상 머신 자체를 만들지 않는 한 핵심적인 원리를 위주로 배워서 자신의 상황에 맞게 잘 적용해야 합니다.
이번에 소개하는 《JVM 밑바닥까지 파헤치기》는 자바 가상 머신의 네 가지 핵심 주제라 할 수 있는 자동 메모리 관리, 실행 서브시스템, 컴파일, 동시성의 동작 원리를 살펴보면서 이러한 원리들이 실제 자바로 작성된 소프트웨어가 실행되는 데 어떤 식으로 영향을 미치며, 개발 현장에서 부딪히는 문제들에 자바 가상 머신 동작 메커니즘을 어떻게 적용해 볼 수 있을지 소개하고 있습니다.
《JVM 밑바닥까지 파헤치기》는 중국에서 2011년 초판이 발간된 이후로 2019년 3판까지 개정을 거듭하며 수십만 부가 팔린 자바 가상 머신 분석 서적의 역작으로 평가받는 책으로 한국어판에서는 특별히 원서 3판에서 미처 다루지 못한 변화된 자바 기술과 자바 가상 머신의 최근 내용까지 반영하고 있습니다.
먼 옛날 아기자기한 애플릿을 만들던 시절을 지나 이제는 인터넷 세상의 한편을 떠받치는 언어로 성장한 자바를 이용해 탄탄한 시스템을 구축하고자 하는 개발자들이라면 이 책을 통해 많은 아이디어와 영감을 얻을 수 있을 것입니다.
다음 인터넷 서점에서 구매하실 수 있습니다.

교보문고 | 알라딘 | 예스24

정오표