psdmer***
2020-09-27

성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고급 자바 개발자에게 정량적이고 검증 가능한 접근 방식으로 자바 애플리케이션 성능을 튜닝하는 방법을 알려준다. 성능 튜닝은 원하는 결과를 정의하고 결정하는 과정이다. 자바 성능에 관한 대부분 자료는 자바 가상 머신 이론과 내부의 모습을 살펴보는 데 그치지만, 이 책은 레시피, 팁/트릭, 알고리즘 등 다양한 부문을 살펴보며 성능 튜닝의 실용적 측면을
자바 최적화 ( Optimizing Java )
매력적인 제목이다. 개발자에게 성능이란 늘 따라다니는 숙제이자 고민거리인데, 마치 이 책을 읽으면 작성한 프로그램의 성능을 능숙하게 끌어 올릴 수 있을 거 같은 생각이 들게 만든다. 그러나 이 책을 덮을 때에도 역시나 마법은 없었다. 마치 요술봉처럼문제가 한 번에 해결될 거라고 믿는다면 이 책은 답이 아니다. 하지만 다다르고자 하는 그 이상의 세계에조금 더 가깝게 만들어주는 가이드북이라고 여기면 좋겠다. ( 언제나 그렇듯 답은 없다. )
개발 업무를 처음 배우던 시절, 차트와 그래프가 여럿 나오고 무언가심각한 표정을 짓고 있던 선임이 그렇게 대단해 보이던 시절이 있었다. 지금이야 대쉬 보드 일 뿐이고성능 지표들을 나타내는 것 뿐이지만, 그 안을 살펴 볼 수 있는 여러 용어들을 이 책은 첫 부분에 상세히설명해준다. 당신이 대단해 보이는 시간의 연장을 위하여 후임에게는 쉽게 보여주지 말자.
재미있는 것은 자바 최적화를 목표로 한 책이지만, 자바가 태생하게된 이전 상태에 제로-오버헤드 원칙에 대해서 설명하고, 자바컴파일러와 클래스 로더로 읽어 실행을 하는 과정을 상세히 기술한다. 책을 읽다 보면 다른 기술 책과다르게 쉽게 눈에 들어온다는 느낌을 받게 되는데 책이 컬러로 인쇄되어 있다는 사실을 깨닫게 된다. 프로그래밍기술서가 컬러다. 내용도 알차지만 눈도 즐겁다.
성능 이야기라면 CPU 이야기를 빼 놓을 수 없을 것이다. 책은 순서대로 CPU 뿐 아니라 Memory부분에 대해서도 상세히 설명하고, 기존 언어와 다른 자바의 특성인 GC 부분에 대해서도 상세히 언급한다. 아울러 평소에도 궁금했던 부분인컬렉션에 대하여 어떻게 많은 데이터를 처리하는지 최적화 기법에 대하여 설명한다.
아울러, 이번 책에서 정말 감격한 부분은 상당히 많은 단어들이 용어로서의기능에 충실하고, 독자로 하여금 재차 검색 혹은 유추해야 하는 과정을 배려하도록 영어 용어를 병기했다는사실이다. 책을 읽는 내내 분명 우리 말임에도 전혀 기술 용어들이 막힘이 없다는 느낌이었다. 특히 영어 용어를 병기하지 않은 채, 차음만으로 용어를 사용한 책들을보면 가끔 짜증이 유발 되는 경우가 있다. 예를 들면 “스틸” 차음의형태로 적으면, 훔치다는 의미의 Steal 과 쇠(철)이라는 의미의 Steel, 움직이지않는다는 의미이거나 아직은 이라는 부사로서의 still 등으로 혼란을 유발시킬 수 있는데, 대부분의 번역서가 차음의 형태로 용어를 적고 원문을 누락하거나 병기를 게을리 하는 경우가 많다. 얼마 전 메신져에서 스틸이라고 적었다가, 스톨른이라고 적을 걸.. 하고 후회한 적이 있다. 그만큼 우리 말과 전혀 다른 언어를 차음으로적는 다는 것은 죄악이다.
자바 문법을 배운 단계 이후의 개발자라면 누구나 읽어 보길 추천하고 싶은 책이다. 다른 사람은 모르고 나만 이 책을 보고 싶을 만큼 좋은 책이다. 최근새로 일하게 된 현장에서 기술에 대한 목마름이 가득한데, 이 책이 상큼한 과일처럼 다가와서 새로운 힘을준다.
가을이다. 독서의 계절… 한빛미디어에서큰 맘 먹고 컬러를 질러(?)버린 이 책에 감사를 표한다.