Books 2014.01.18 01:44


Java Performance Fundamental - 김한도


Java 프로그래밍을 몇 년간 해 오면서도 JVM이 내부적으로 어떻게 돌아가는지 이해하고 있는 Java 개발자들은 많지 않다. 나도 몇몇 서적들에서 JVM이나 GC에 대해 피상적으로 다루는 내용들은 숙지하고 있었다. 하지만 누가 설명을 하라고 하면 추상적인 수준이 아닌 구현체 수준에서의 설명은 전혀 하지 못하는 수준이었다. 그래서 실제 JVM 구현체가 내부적으로 어떻게 동작하는지 다루고 있다는 국문 서적이 있다는 정보를 입수하고 이 책을 구매하게 되었다.

이 책은 다음의 7개의 챕터로 이루어져 있다.

1. Java virtual machine

2. Runtime data areas

3. Garbage collection

4. Class loader

5. Execution Engine

6. Thread synchronization

7. Oracle as datasource

이 책의 각 챕터들은 챕터의 주제들에대해 추상적인 JVM이 어떤 알고리즘에 의해 동작하는지 설명한 뒤 실제 구현체인 HotSpot JVM과 IBM JVM이 내부적으로 어떻게 동작하는지 설명하고 있다. 나 같은 경우엔 추상적인 JVM과 HotSpot JVM에 대해서만 읽었다. (IBM JVM은 내가 당분간 혹은 평생 다룰 일이 없을 것 같아서 스킵하였다)

책은 상당히 깊은 내용을 다루고 있다. 내가 기대했던 것보다 훨씬. 그래서 좋았던 것도 있고 좋지 않았던 것도 있다.

일단 좋았던 점은 대부분의 책들에서 피상적으로만 다루는 Runtime data areas나 Garbage collection에 대해서 완전 상세히 서술해 놓았다는 것이다. 이런 내용들은 사실 책으로는 여태껏 접할 수 없었고 Oracle 사이트 같은 곳에서만 접할 수 있었기에 상당히 유익했다. 하지만 한편으로는 저자만의 독자적인 해설 방법이 없었기에 차라리 Oracle 사이트를 읽는 것이 낫지 않을까 하는 생각을 불러일으키기도 했다. 그리고 기술서적을 읽는다기 보다는 전공서적을 읽는다는 느낌이 강했다. 나 같은 경우엔 이런 서적들을 읽을 때는 핵심만 기억해두고 금방 까먹을 것 같은 내용들은 그리 상세하게 읽지 않는다. 그런 나의 독서 스타일에 의해 이 책의 절반 정도는 그냥 스킵되어버렸다... 그냥 이 책에서 잘 다루고 있는 부분만 요약해서 발표자료 100장 정도로 만들어서 가지고 있으면 딱 좋을 것 같다.

여튼 이 책은 JVM의 내부 구조를 자세히 알고 싶은 개발자가 읽으면 좋다. 하지만 실무에서는 얼마나 도움이 될지는 잘 모르겠다. 각 챕터의 앞쪽 절반 정도는 기억해두면 실무에서 어느 정도 도움이 될 것 같다. 하지만 나머지는 실무에서 전혀 겪지 못하는 것들이 대부분이기 때문에, 이런 내용들은 누가 옆에서 JVM에 대해서 좀 아는척하면 콧방귀를 뀌면서 더 아는척을 하는 데 말고는 유용하게 쓰이기가 힘들 것 같다... 아니면 직접 JVM을 구현한다거나...

결론은 이 책은 한 번 정도 읽어 볼 가치는 있으나 발췌독 후 레퍼런스로 책장에 꽂아 놓는 것을 추천하는 바이다.

(이런 내용들을 직접 찾아보려면 검색 키워드들을 알고 있어야 하고, 키워드들을 안다고 하더라도 내용들 찾아보기도 귀찮고 또한 내용들 모두 영문으로 되어있는데, 이 책은 그런 것들이 국문으로 정리되어 있기에 레퍼런스의 가치는 한다고 본다)

신고
Trackback 0 Comment 2
  1. sadamell 2014.02.16 17:25 신고

    포스팅 잘 보았습니다.
    자바 프로그래밍에 대하여 조언을 좀 구하고 싶습니다.
    ziznzkak@gmail.com 메일로 메일주소를 알려주시면 감사하겠습니다. 남길만한 곳이 여기 밖에 없어서 댓글 답니다.

  2. 금통 2015.06.16 15:11 신고

    저도 소장하고 있는 책입니다.
    mysql connector 부분의 내용도 좋습니다.