자바 최적화 - 가장 빠른 성능을 구현하는 검증된 10가지 기법
벤저민 J. 에번스 외 지음, 이일웅 옮김 / 한빛미디어 / 2019년 4월
평점 :
장바구니담기


자바 최적화 ( Optimizing Java )

 



매력적인 제목이다. 개발자에게 성능이란 늘 따라다니는 숙제이자 고민거리인데, 마치 이 책을 읽으면 작성한 프로그램의 성능을 능숙하게 끌어 올릴 수 있을 거 같은 생각이 들게 만든다. 그러나 이 책을 덮을 때에도 역시나 마법은 없었다. 마치 요술봉처럼 문제가 한 번에 해결될 거라고 믿는다면 이 책은 답이 아니다. 하지만 다다르고자 하는 그 이상의 세계에 조금 더 가깝게 만들어주는 가이드북이라고 여기면 좋겠다. ( 언제나 그렇듯 답은 없다. )

 

개발 업무를 처음 배우던 시절, 차트와 그래프가 여럿 나오고 무언가 심각한 표정을 짓고 있던 선임이 그렇게 대단해 보이던 시절이 있었다. 지금이야 대쉬 보드 일 뿐이고 성능 지표들을 나타내는 것 뿐이지만, 그 안을 살펴 볼 수 있는 여러 용어들을 이 책은 첫 부분에 상세히 설명해준다. 당신이 대단해 보이는 시간의 연장을 위하여 후임에게는 쉽게 보여주지 말자.

 

재미있는 것은 자바 최적화를 목표로 한 책이지만, 자바가 태생하게 된 이전 상태에 제로-오버헤드 원칙에 대해서 설명하고, 자바 컴파일러와 클래스 로더로 읽어 실행을 하는 과정을 상세히 기술한다. 책을 읽다 보면 다른 기술 책과 다르게 쉽게 눈에 들어온다는 느낌을 받게 되는데 책이 컬러로 인쇄되어 있다는 사실을 깨닫게 된다. 프로그래밍 기술서가 컬러다. 내용도 알차지만 눈도 즐겁다.

 

성능 이야기라면 CPU 이야기를 빼 놓을 수 없을 것이다. 책은 순서대로 CPU 뿐 아니라 Memory 부분에 대해서도 상세히 설명하고, 기존 언어와 다른 자바의 특성인 GC 부분에 대해서도 상세히 언급한다. 아울러 평소에도 궁금했던 부분인 컬렉션에 대하여 어떻게 많은 데이터를 처리하는지 최적화 기법에 대하여 설명한다.

 

아울러, 이번 책에서 정말 감격한 부분은 상당히 많은 단어들이 용어로서의 기능에 충실하고, 독자로 하여금 재차 검색 혹은 유추해야 하는 과정을 배려하도록 영어 용어를 병기했다는 사실이다. 책을 읽는 내내 분명 우리 말임에도 전혀 기술 용어들이 막힘이 없다는 느낌이었다. 특히 영어 용어를 병기하지 않은 채, 차음만으로 용어를 사용한 책들을 보면 가끔 짜증이 유발 되는 경우가 있다. 예를 들면  스틸차음의 형태로 적으면, 훔치다는 의미의 Steal 과 쇠()이라는 의미의 Steel, 움직이지 않는다는 의미이거나 아직은 이라는 부사로서의 still 등으로 혼란을 유발시킬 수 있는데, 대부분의 번역서가 차음의 형태로 용어를 적고 원문을 누락하거나 병기를 게을리 하는 경우가 많다. 얼마 전 메신져에서 스틸이라고 적었다가, 스톨른이라고 적을 걸.. 하고 후회한 적이 있다. 그만큼 우리 말과 전혀 다른 언어를 차음으로 적는 다는 것은 죄악이다.

 

자바 문법을 배운 단계 이후의 개발자라면 누구나 읽어 보길 추천하고 싶은 책이다. 다른 사람은 모르고 나만 이 책을 보고 싶을 만큼 좋은 책이다. 최근 새로 일하게 된 현장에서 기술에 대한 목마름이 가득한데, 이 책이 상큼한 과일처럼 다가와서 새로운 힘을 준다.

 

가을이다. 독서의 계절한빛미디어에서 큰 맘 먹고 컬러를 질러(?)버린 이 책에 감사를 표한다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo