[IT가이드]자바 퍼포먼스 튜닝

잭 시라지 지음, 홍상욱 옮김, 한빛미디어 펴냄

 

 자바 언어는 현재 엔터프라이즈 환경에서 가장 각광받는 개발 언어이고 JAVA2 ME가 발표되면서 임베디드 시스템에서도 주목받는 솔루션으로 자리잡고 있다. 인터넷이나 엔터프라이즈 환경의 프로그램들은 동시에 접근하는 다수의 사용자에 의해 상당한 로드가 집중돼 최적화한 성능을 낼 수 있는 코드를 작성하는 것이 매우 중요하다. 또 임베디드 시스템의 경우, 역시 한정된 시스템 자원을 최대한 활용하기 위해 개발자의 코드 최적화 노력이 많이 요구되는 부분이다. 따라서 개발자 대부분은 여러 개발 경험과 컴퓨터 공학에 근거한 지식을 통해 자신만의 최적화 노하우를 보유하고 있다. 하지만 정리되지 않은 머리 속의 지식들을 필요한 순간에 끌어내 적용하는 것은 쉬운 일이 아니다. 또 최적화를 적용해야 할 순간이 오기 전에 문제를 미리 파악해 설계하는 것도 만만치 않다.

 ‘자바 퍼포먼스 튜닝’은 개발자들이 프로그램의 성능을 향상시키기 위해 필요한 주요 최적화 방법과 여러 자료를 체계적으로 정리, 제공하고 있다. 단순한 자바 코드 작성만을 목표로 삼고 있는 개발자가 아니라면 꼭 한번 살펴보아야 할 것이다. 책의 수준으로 볼 때 기본적인 자바 언어 지식은 있어야 이 책의 내용을 이해하고 유용하게 쓸 수 있다.

 도입부에서는 최적화의 주요 개념과 전체적인 수행 방법을 설명하고 있다. 본론에서는 ‘분석 도구’를 다뤄 최적화의 실제 결과를 확인하기 위해 개발자들이 사용할 수 있는 측정 방법을 여러 측면에서 제안하고 있다. 또 여러 가상머신 간에 있을 수 있는 성능의 차이점을 설명하고 있으며 자바 컴파일러가 수행하는 코드 최적화 기법을 소개하고 있다. 자바에서 객체 생성과 소멸은 성능에 많은 영향을 미친다는 사실도 중요 테마로 다루고 있다.

 후반부에서는 예외 처리, 캐스팅 문제와 어떠한 변수 타입이 가장 성능이 좋은지를 살펴보고 있다. 일반적인 프로그램에서 성능을 떨어뜨리는 주요 요소인 입출력 과정에 대한 성능 향상 방법을 살펴보고 JDK가 제공하는 정렬 알고리듬을 향상하는 방법과 효율적인 정렬 알고리듬 정보를 제공하고 있다. 마지막 부분에서는 JDK가 제공하는 여러 알고리듬의 성능을 비교하고 향상시키는 기법들을 소개하고 있다. 또 JDK가 제공하지 않는 다른 알고리듬을 구현해 성능을 향상시키는 몇 가지 예제를 제공하고 자바를 이용해 분산 애플리케이션을 개발할 때 어떻게 성능을 향상시킬 수 있는지 간단히 정리하고 있다.

 이 책은 실질적인 개발 예제를 제공하지 않아 약간 아쉬운 감이 있지만 체계적으로 정리된 자료만으로도 충분한 가치가 있다. 소프트웨어 개발 과정에서 언제나 참고할 수 있도록 각 장의 마지막 부분에 ‘성능 확인표’를 제공하고 있어 개발자들은 각 단계별 최적화를 위한 가이드 라인으로 적용할 수 있다. 또 각 장은 필요에 따라 원하는 내용만 우선 살펴볼 수도 있다. 이런 측면에서 이 책은 전체적인 최적화의 개념을 우선적으로 습득한 후 프로그램 개발 및 설계 과정 중에 지속적으로 참조할 수 있는 참고서로서 역할을 할 수 있을 것이다. 자바는 속도가 느리다고 생각한다면 이 책을 한번 읽어볼 만하다.

 김원일