본문으로 바로가기
평면표지(2D 앞표지)
입체표지(3D 표지)
2D 뒤표지

JVM 밑바닥까지 파헤치기

자동 메모리 관리, 실행 서브시스템, 컴파일, 동시성


  • ISBN-13
    978-89-6626-441-4 (93000)
  • 출판사 / 임프린트
    인사이트 / 인사이트
  • 정가
    43,000 원 확정정가
  • 발행일
    2024-04-30
  • 출간상태
    출간
  • 저자
    저우즈밍
  • 번역
    이복연
  • 메인주제어
    컴파일러 및 인터프리터
  • 추가주제어
    프로그래밍 및 스크립트언어 / 일반
  • 키워드
    #프로그래밍 및 스크립트언어 / 일반 #자바 #JVM #컴파일러 및 인터프리터
  • 도서유형
    종이책, 무선제본
  • 대상연령
    모든 연령, 학술 전문서
  • 도서상세정보
    188 * 240 mm, 688 Page

책소개

“자바 가상 머신의 깊숙한 내부를 향해 떠나는 흥미진진한 모험”

C·C++를 사용해 주로 프로그래밍을 하던 시절 까다로운 메모리 관리와 플랫폼 이식성 문제는 개발자들에게 적지 않은 부담이었다. 그런 상황에서 “한 번 작성하면 어디서든 실행된다”라는 구호와 함께 등장한 자바는 획기적인 언어로 여겨졌다. 그리고 그 구호를 현실로 만든 토대가 된 기술이 바로 자바 가상 머신(JVM)이다.
JVM 덕분에 개발자들은 자동 메모리 관리와 플랫폼 독립성이라는 선물을 받은 듯했지만 낮은 성능과 메모리 부족 오류 같은 대가를 치러야 했다. 그리고 오늘날까지도 그런 문제에서 자유롭지 못한 것이 현실이다. 이러한 문제를 해결하려면 JVM이 복잡한 저수준 문제를 어떻게 처리하는지 그 핵심 원리를 익혀야 한다. 
《JVM 밑바닥까지 파헤치기》는 JVM의 네 가지 주요 주제라 할 수 있는 자동 메모리 관리, 실행 서브시스템, 컴파일, 동시성의 핵심 동작 원리를 살펴보면서 이러한 원리들이 실제 자바로 작성된 소프트웨어가 실행되는 데 어떤 식으로 영향을 미치며, 개발 현장에서 부딪히는 문제들에 JVM 동작 메커니즘을 어떤 식으로 적용해 볼 수 있을지 소개하고 있다.
먼 옛날 아기자기한 애플릿을 만들던 시절을 지나 이제는 인터넷 세상의 한편을 떠받치는 언어로 성장한 자바를 이용해 탄탄한 시스템을 구축하고자 하는 개발자들은 이 책을 통해 많은 아이디어와 영감을 얻을 수 있을 것이다.

목차

옮긴이의 말 
서문 
감사의 말

1부 자바와 친해지기 
1장 자바 기술 시스템 소개 
1.1 들어가며 
1.2 자바 기술 시스템 
1.3 자바의 과거와 현재 
1.4 자바 가상 머신 제품군 
1.5 자바 기술의 미래 
1.6 실전: 내 손으로 빌드하는 JDK 
1.7 마치며

2부 자동 메모리 관리 
2장 자바 메모리 영역과 메모리 오버플로 
2.1 들어가며 
2.2 런타임 데이터 영역 
2.3 핫스팟 가상 머신에서의 객체 들여다보기 
2.4 실전: OutOfMemoryError 예외 
2.5 마치며

3장 가비지 컬렉터와 메모리 할당 전략 
3.1 들어가며 
3.2 대상이 죽었는가? 
3.3 가비지 컬렉션 알고리즘 
3.4 핫스팟 알고리즘 상세 구현 
3.5 클래식 가비지 컬렉터 
3.6 저지연 가비지 컬렉터 
3.7 적합한 가비지 컬렉터 선택하기 
3.8 실전: 메모리 할당과 회수 전략 
3.9 마치며

4장 가상 머신 성능 모니터링과 문제 해결 도구 
4.1 들어가며 
4.2 기본적인 문제 해결 도구 
4.3 GUI 도구 
4.4 핫스팟 가상 머신 플러그인과 도구 
4.5 마치며

5장 최적화 사례 분석 및 실전 
5.1 들어가며 
5.2 사례 분석
5.3 실전: 이클립스 구동 시간 줄이기 
5.4 마치며

3부 가상 머신 실행 서브시스템
6장 클래스 파일 구조 
6.1 들어가며 
6.2 플랫폼 독립을 향한 초석 
6.3 클래스 파일의 구조 
6.4 바이트코드 명령어 소개 
6.5 설계는 공개, 구현은 비공개 
6.6 클래스 파일 구조의 진화 
6.7 마치며

7장 클래스 로딩 메커니즘 
7.1 들어가며 
7.2 클래스 로딩 시점 
7.3 클래스 로딩 처리 과정 
7.4 클래스 로더 
7.5 자바 모듈 시스템 
7.6 마치며

8장 바이트코드 실행 엔진 
8.1 들어가며 
8.2 런타임 스택 프레임 구조 
8.3 메서드 호출 
8.4 동적 타입 언어 지원 
8.5 스택 기반 바이트코드 해석 및 실행 엔진 
8.6 마치며

9장 클래스 로딩과 실행 서브시스템, 사례와 실전 
9.1 들어가며 
9.2 사례 연구
9.3 실전: 원격 실행 기능 직접 구현하기 
9.4 마치며

4부 컴파일과 최적화 
10장 프런트엔드 컴파일과 최적화 
10.1 들어가며 
10.2 javac 컴파일러 
10.3 자바 편의 문법의 재미난 점 
10.4 실전: 플러그인 애너테이션 처리기 제작 
10.5 마치며

11장 백엔드 컴파일과 최적화 
11.1 들어가며 
11.2 JIT 컴파일러 
11.3 AOT 컴파일러 
11.4 컴파일러 최적화 기법 
11.5 실전: 그랄 컴파일러 깊이 이해하기 
11.6 마치며

5부 효율적인 동시성 
12장 자바 메모리 모델과 스레드 
12.1 들어가며 
12.2 하드웨어에서의 효율과 일관성 
12.3 자바 메모리 모델 
12.4 자바와 스레드 
12.5 자바와 가상 스레드 
12.6 마치며

13장 스레드 안전성과 락 최적화 
13.1 들어가며 
13.2 스레드 안전성 
13.3 락 최적화 
13.4 마치며

부록 약어 목록 
찾아보기

본문인용

-

서평

-

저자소개

저자 : 저우즈밍
원광소프트웨어연구소(YGSOFT) 소장. 오픈 소스 기술의 적극적인 옹호자이자 홍보자이며, 특히 인공 지능, 자바, 엔터프라이즈 개발, 애자일 등 분야에 깊은 통찰력을 가지고 있다. 〈InfoQ〉와 〈IBM DeveloperWorks〉에 기술 칼럼을 여러 편 기고했다. 지은 책으로는 《JVM 밑바닥까지 파헤치기》와 《OSGi 심층 이해》 등이 있으며, 《자바 가상 머신 명세》를 중국어로 번역했다. 《JVM 밑바닥까지 파헤치기》 초판은 2011년에 출간된 후 개정을 거듭하며 수십만 부가 판매되어 중국 컴퓨터 서적 분야에서 보기 드문 걸작으로 인정받고 있다.
번역 : 이복연
1997년부터 자바로 개발하기 시작했으며 삼성전자에서 자바 가상 머신, 바다 플랫폼, 챗온 메신저 서비스 개발에 참여했다. 주 업무 외에 분산 빌드, 지속적 통합, 수명 주기 관리 도구, 애자일 도입 등 동료 개발자들에게 실질적인 도움을 주는 일에 적극적이었다. 그 후 창업 전선에 뛰어들어 좌충우돌하다가 개발자 커뮤니티에 기여하는 더 나은 방법을 찾아 출판 시장에 뛰어들었다. 《이펙티브 자바 3판》, 《리팩터링 2판》, 《구글 엔지니어는 이렇게 일한다》, 《밑바닥부터 시작하는 딥러닝》 시리즈 등을 번역했다. 독자들과의 소통 창구로 소소하게 facebook.com/dev.loadmap 페이지를 운영 중이다.
상단으로 이동