https://product.kyobobook.co.kr/detail/S000213057051
JVM 밑바닥까지 파헤치기 | 저우즈밍 - 교보문고
JVM 밑바닥까지 파헤치기 | 자바 가상 머신의 깊숙한 내부를 향해 떠나는 흥미진진한 모험C·C++를 사용해 주로 프로그래밍을 하던 시절 까다로운 메모리 관리와 플랫폼 이식성 문제는 개발자들에
product.kyobobook.co.kr
해당 책은 는 JVM의 내부를 심도 있게 다루는 고급 기술서이다. 이 책은 절대 기초용 서적이 아니며, 번역된 자바 서적 중에서도 JVM을 이만큼 깊게 다루는 책을 찾기 어렵다.
출간 직후 구매했으나, 중간까지 읽다가 포기한 경험이 있다. 기술 서적을 읽다가 포기한 것은 처음이었다.
너무 깊은 내용을 다루고 있어 어려웠고, 그만큼 내 지식의 부족함을 실감하게 했다. 당시에는 이 책을 통해 얻을 수 있는 지식보다 더 기본적인 책들이 나에게 더 가치가 있지 않을까 생각하여 우선순위를 조정했다.
약 1년이 지나 다시 이 책을 펼쳐보게 되었다.
이 책은 JVM의 거의 모든 영역을 다루고 있다. 메모리 구조부터 가비지 컬렉션의 동작 원리, 클래스 로딩 메커니즘, JIT 컴파일러, 스레드와 동시성 문제까지 포괄한다.
모두 중요한 영역이며, 각 기술의 역사적 발전과 최신 최적화 기법까지 상세히 설명한다.
특히 인상 깊었던 내용은 다음과 같다 (몰랐던 것들...)
- volatile의 가시성 보장 메커니즘: 이전에는 단순히 개념만 알고 있었으나, 이 책을 통해 어떻게 메인 메모리와 작업 메모리 사이에서 특별한 규칙이 적용되어 가시성이 보장되는지 이해할 수 있었다.
- 핫스팟 탐지 기준: JIT 컴파일러가 최적화할 코드를 선별하는 방식으로 메서드 호출 횟수와 백 에지 카운터 방식을 사용한다는 것을 배웠다. 이것이 JIT 컴파일 촉발의 기준이 된다.
- synchronized와 ReentrantLock의 성능 비교: 최신 JDK에서는 두 방식의 성능 차이가 예전보다 크게 줄었다는 점이 흥미로웠다. 다만 ReentrantLock은 페어 락과 같은 추가 기능을 제공한다는 장점이 있다.
이런 개념들을 작동 원리까지 세세하게 알려주는데, 아직도 완전히 이해 못한 부분 많아서 더 공부해볼 생각이다. GC 부분 설명도 진짜 유익했다.
이 책 장점 중 하나는 번역체 아니라서 읽기 편하다는 거다. 복잡한 개념도 자연스럽게 설명해서 이해하기 좋았다.
JVM에 관심 있는 개발자면 꼭 읽어봐야 할 책이라고 본다. 진짜 어렵고 지루할 수 있으니까, 관심 있는 챕터만 골라 먼저 읽는 것도 좋을 것 같다.
다음으로 읽을 예정인 기술서는 오랫동안 미뤄온 Real MySQL 2이다. 현재 메인 서버로는 PostgreSQL을 사용하고 있지만, MySQL을 사용할 기회가 생겨 읽어보려고한다.
'후기' 카테고리의 다른 글
[책후기] Real MySQL 8.0 - 2권 (0) | 2025.03.30 |
---|---|
[책 후기] 읽기 쉬운 코드 (0) | 2025.03.21 |
[책 후기] 실용 주의 프로그래머 (2) | 2025.03.10 |
[책 후기] 레거시 코드 활용 전략 (1) | 2025.03.03 |
[책 후기] 이벤트 소싱과 마이크로서비스 아키텍처 (2) | 2025.02.24 |