메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

자바 최적화

가장 빠른 성능을 구현하는 검증된 10가지 기법

한빛미디어

번역서

판매중

  • 저자 : 벤저민 J. 에번스 , 제임스 고프 , 크리스 뉴랜드
  • 번역 : 이일웅
  • 출간 : 2019-04-29
  • 페이지 : 500 쪽
  • ISBN : 9791162241776
  • 물류코드 :10177
초급 초중급 중급 중고급 고급
4.4점 (9명)
좋아요 : 1

자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기 

 

성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고급 자바 개발자에게 정량적이고 검증 가능한 접근 방식으로 자바 애플리케이션 성능을 튜닝하는 방법을 알려준다.

 

성능 튜닝은 원하는 결과를 정의하고 결정하는 과정이다. 자바 성능에 관한 대부분 자료는 자바 가상 머신 이론과 내부의 모습을 살펴보는 데 그치지만, 이 책은 레시피, 팁/트릭, 알고리즘 등 다양한 부문을 살펴보며 성능 튜닝의 실용적 측면을 이야기한다.

 

 

자바 최적화_상세이미지[900].jpg

 

저자

벤저민 J. 에번스

데브옵스 팀을 위한 성능 툴 개발사인 jClarity의 공동 창업자이자 기술 위원이다. 자바 커뮤니티 프로세스 집행 위원회에서 런던 자바 커뮤니티 대표로 활동하며 자바 생태계의 표준을 제정하는 일을 했다. 자바 챔피언, 자바원 록스타인 그는 『The Well-Grounded Java Developer』(매닝, 2012)를 공동 집필했고 자바 플랫폼, 동시성, 기타 관련된 주제로 강연을 계속해오고 있다.

저자

제임스 고프

자바 개발자 및 저자이다. 워릭 대학교에 다니던 중 처음 자바에 매료되어, 졸업 후 런던 자바 커뮤니티에 가입했고 그때부터 이 커뮤니티를 중심으로 수년간 JSR-310 설계/테스트를 담당하며 JCP 집행 위원회에서 활동해왔다. 콘퍼런스 상임 연사이기도 한 그는 현재 모건 스탠리에서 고객응대 기술 구축에 매진하고 있으며, 세계 각지를 돌며 다양한 나라에서 오랫동안 자바, C++를 가르치고 있다.

저자

크리스 뉴랜드

자바 기술을 응용해 실시간 주식 데이터를 처리하는 ADVFN 사이트의 선임 자바 개발자다. 핫스팟 JVM 내부에서 이루어지는 JIT (적시) 컴파일 결정을 시각화하는 오픈 소스 로그분석기, JITWatch 프로젝트의 저작자다. 자바 챔피언인 그는 여러 콘퍼런스에서 JIT 컴파일 기술 강연을 한다.

역자

이일웅

13여 년 동안 자바/스칼라 개발자, 애플리케이션 아키텍트로 활동하며 엔터프라이즈 프로젝트 현장을 누벼온 야전형 정보 기술자이자, 한 여인과 두 딸의 사랑을 한 몸에 받고 사는 행복한 딸바보이다. 2014년 이후로 십수 권의 IT 전문서를 번역하며 동료, 후배 개발자들과 지식, 경험을 나누는 일에도 힘쓰고 있으며, 시간이 나면 피아노를 연주한다.

CHAPTER 1 성능과 최적화

1.1 자바 성능: 잘못된 방법

1.2 자바 성능 개요

1.3 성능은 실험과학이다

1.4 성능 분류

1.5 성능 그래프 읽기

1.6 마치며

 

CHAPTER 2 JVM 이야기

2.1 인터프리팅과 클래스로딩

2.2 바이트코드 실행

2.3 핫스팟 입문

2.4 JVM 메모리 관리

2.5 스레딩과 자바 메모리 모델(JMM)

2.6 JVM 구현체 종류

2.7 JVM 모니터링과 툴링

2.8 마치며

 

CHAPTER 3 하드웨어와 운영체제

3.1 최신 하드웨어 소개

3.2 메모리

3.3 최신 프로세서의 특성

3.4 운영체제

3.5 단순 시스템 모델

3.6 기본 감지 전략

3.7 가상화

3.8 JVM과 운영체제

3.9 마치며

 

CHAPTER 4 성능 테스트 패턴 및 안티패턴

4.1 성능 테스트 유형

4.2 기본 베스트 프랙티스

4.3 성능 안티패턴 개요

4.4 성능 안티패턴 카탈로그

4.5 인지 편향과 성능 테스트

4.6 마치며

 

CHAPTER 5 마이크로벤치마킹과 통계

5.1 자바 성능 측정 기초

5.2 JMH 소개

5.3 JVM 성능 통계

5.4 통계치 해석

5.5 마치며

 

CHAPTER 6 가비지 수집 기초

6.1 마크 앤 스위프

6.2 핫스팟 런타임 개요

6.3 할당과 수명

6.4 핫스팟의 가비지 수집

6.5 병렬 수집기

6.6 할당의 역할

6.7 마치며

 

CHAPTER 7 가비지 수집 고급

7.1 트레이드오프와 탈착형 수집기

7.2 동시 GC 이론

7.3 CMS

7.4 G1

7.5 셰난도아

7.6 C4(아줄 징)

7.7 밸런스드(IBM J9)

7.8 레거시 핫스팟 수집기

7.9 마치며

 

CHAPTER 8 GC 로깅, 모니터링, 튜닝, 툴

8.1 GC 로깅 개요

8.2 로그 파싱 툴

8.3 GC 기본 튜닝

8.4 Parallel GC 튜닝

8.5 CMS 튜닝

8.6 G1 튜닝

8.7 jHiccup

8.8 마치며

 

CHAPTER 9 JVM의 코드 실행

9.1 바이트코드 해석

9.2 AOT와 JIT 컴파일

9.3 핫스팟 JIT 기초

9.4 코드 캐시

9.5 간단한 JIT 튜닝법

9.6 마치며

 

CHAPTER 10 JIT 컴파일의 세계로

10.1 JITWatch란?

10.2 JIT 컴파일 개요

10.3 인라이닝

10.4 루프 펼치기 

10.5 탈출 분석

10.6 단형성 디스패치

10.7 인트린직

10.8 온-스택 치환

10.9 세이프포인트 복습

10.10 코어 라이브러리 메서드

10.11 마치며

 

CHAPTER 11 자바 언어의 성능 향상 기법

11.1 컬렉션 최적화

11.2 List 최적화

11.3 Map 최적화

11.4 Set 최적화

11.5 도메인 객체 

11.6 종료화 안 하기

11.7 메서드 핸들 

11.8 마치며

 

CHAPTER 12 동시 성능 기법

12.1 병렬성이란?

12.2 JMM의 이해

12.3 동시성 라이브러리 구축

12.4 동시 라이브러리 정리

12.5 실행자와 태스크 추상화

12.6 최신 자바 동시성

12.7 마치며

 

CHAPTER 13 프로파일링

13.1 프로파일링 개요

13.2 샘플링과 세이프포인팅 편향

13.3 개발자용 프로파일링 툴

13.4 최신 프로파일러

13.5 할당 프로파일링

13.6 힙 덤프 분석

13.7 마치며

 

CHAPTER 14 고성능 로깅 및 메시징

14.1 로깅

14.2 성능에 영향이 적은 로거 설계하기

14.3 리얼 로직 라이브러리를 이용해 지연 줄이기

14.4 마치며

 

CHAPTER 15 자바 9와 미래

15.1 자바 9에서 소소하게 개선된 성능

15.2 자바 10과 그 이후 버전

15.3 자바 9 Unsafe 그 너머

15.4 발할라 프로젝트와 값 타입

15.5 그랄과 트러플

15.6 바이트코드의 향후 발전 방향

15.7 동시성의 향후 발전 방향

15.8 마치며

  •  

    한빛미디어, 자바 최적화

     

    책 소개

    자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기

    성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고급 자바 개발자에게 정량적이고 검증 가능한 접근 방식으로 자바 애플리케이션 성능을 튜닝하는 방법을 알려준다.

    성능 튜닝은 원하는 결과를 정의하고 결정하는 과정이다. 자바 성능에 관한 대부분 자료는 자바 가상 머신 이론과 내부의 모습을 살펴보는 데 그치지만, 이 책은 레시피, 팁/트릭, 알고리즘 등 다양한 부문을 살펴보며 성능 튜닝의 실용적 측면을 이야기한다.

    한빛미디어 제공: http://www.hanbit.co.kr/store/books/look.php?p_code=B7707787549

     

    Java 또는 jvm 기반의 언어(jRuby, Jython 등)를 사용하는 개발자라면 혹은 Java 기반의 프레임워크(Srping, Elasticsearch 등)를 사용하고 있는 개발자라면 Jvm, GC 모니터링을 해본 경험이 한번 쯤은 있을 것 입니다.

    신규 기능을을 개발하고 서비스에 배포하기 전 부하 테스트를 하면서 Jvm 성능 모니터링을 하거나, 운영 중인 시스템에 급작스런 부하가 많이 걸려 속도가 느려진다던지 혹은 최악의 경우로 시스템이 전면 장애 상황을 맞이하는 경우 모니터링을 넘어 분석 및 튜닝을 하는 경우도 생깁니다.

    이 책은 자바 최적화라는 제목답게 자바 성능 최적화를 위한 jvm, GC에 대한 개념지식과 로깅과 모니터링 방법 등 전반적인 지식에 대해 잘 설명해주고 있습니다.

    운영 중인 시스템이 규모가 크지 않아 "나는 아직 성능 최적화를 할 필요가 없어"라고 생각하시더라도 자바로 밥 벌이하시는 개발자라면 한 번쯤은 읽어볼만한 책인 것 같습니다.

     

  • 지난 달 말에 한빛미디어에서 리뷰할 책으로 O’REILLY 사의 Optimizing Java를 번역한 자바 최적화 라는 책을 받았습니다. 회사에서 사용하는 대부분의 업무처리가 자바(Java)로 되어 있다보니 이 책을 읽고 싶었기에 속으로 ‘아싸’를 외쳤습니다.

     

    자바(Java)는 자바 가상 머신(Java Virtual Machine, 이하 JVM)에서 실행됩니다. 자바 소스 코드를 컴파일 하면 Java Intermediate Language(이하 JIL)라는 일종의 Intermediate Representation(이하 IR) 형식의 파일을 만듭니다. 그리고 JVM은 이 JIL을 읽어서 CPU가 이해할 수 있는 기계어 코드로 변환을 합니다. 즉, 기계어와 소스 코드 사이에 IR이라는 추상층(Abstract Layer)을 하나 더 만들어 언어의 유연성(Flexibility)을 살렸습니다. Microsoft의 .NET Framework 도 OS에 관계없이 프로그램을 실행할 수 있는데 이 또한 C#이 IR을 사용하기 때문입니다.

     

    하지만 세상에는 100% 좋기만 한 것은 없습니다. 모든 선택에는 장점과 단점이 혼합되어 있으니까요. C/C++ 같은 언어는 컴파일을 하면 CPU 명령어(=기계어)와 1:1 매칭되는 어셈블리어 코드를 생성하기 때문에 JVM 같은 별도의 프로그램 없이 OS에서 바로 실행할 수 있습니다. 즉, 실행환경이 자바(Java)보다 간단합니다. 그러나 자바(Java)로 만들어진 프로그램은 (앞에서 언급했듯이) 실행을 하려면 JVM이 필요합니다. 이러한 이유로 자바(Java)의 실행환경은 C/C++ 로 만들어진 프로그램보다 상대적으로 복잡합니다. 결국, 자바(Java)로 만들어진 프로그램을 잘 이해하려면 OS 뿐만 아니라 JVM에 대해서도 이해할 필요가 있습니다.

     

    한빛미디어의 <자바 최적화>는 JVM에 대한 상세한 설명을 토대로 어떻게 자바 프로그램의 성능을 측정하고 개선할 수 있는지 소개합니다. 쉽게 읽히는 책은 아닙니다. 그러나 훌륭한 자바 프로그래머로서 성장하는데 필요한 내공을 쌓을 수 있는 훌륭한 책입니다.

     

    자바 최적화 표지 
     

    특별히 책을 읽으며 유용했던 것은 6~7장의 쓰레기 수집기(Garbage Collector, 이하 GC) 작동 원리, 8장의 GC 로깅 분석 방법 그리고 11장의 자바 언어의 성능 향상 기법이었습니다. 예를 들어 8장에서는 아래와 같은 조언이 나옵니다.

     

    GC로그는 더 없이 훌륭한 원천 정보입니다. 특히, 시스템이 내려간 원인의 단서를 찾는 ‘콜드 케이스(cold case)’ 분석을 할 때 매우 유용합니다. 파일에 씌여진 로그를 분석하는 작업이므로 애플리케이션 프로세스가 살아 있지 않아도 됩니다. 모든 중요한 애플리케이션에는 다음 두 가지를 설정해야 합니다.

     

    * CG 로그를 생성한다.
    * 애플리케이션 출력과는 별도로 특정 파일에 GC 로그를 보관한다.


    223쪽, CHAPTER 8 GC 로깅, 모니터링, 튜닝, 툴 <자바 최적화>

     

    프로그램이 단순히 돌아가는 것으로 만족하면 놓치는 게 많습니다. 문제가 발생하기 전에 미리 손을 써야 합니다. 예를 들어, 자바(Java) 프로그램을 실행할 때 GC 로그를 항상 남기도록 설정하여 실제 런타임에서 어떤 일이 발생하고 있는지 파악하고 이를 개선할 수 있는 방법이 있는지 검토해야 합니다.

     

    11장에서 저자는 평범한 개발자와 고급 개발자를 구분할 수 있는 중요한 잣대를 소개합니다. 그리고 주요 자바 Collection 객체를 어떻게 최적화할 수 있는지 소개합니다.

     

    자료 구조가 어떤 원리로 조회되고 수정되는지 모른 채 자료 구조를 선택하는 것처럼 위험한 일도 없습니다. 평소 즐겨 쓰는 클래스를 별생각 없이 바로 갖다 쓰는 개발자들이 참 많지요. 사려 깊은 개발자라면 데이터가 어떻게 질의 되고, 어떤 알고리즘이 가장 효율적인지 신중히 살펴볼 것입니다.

     

    326쪽, CHAPTER 11 자바 언어의 성능 향상 기법 <자바 최적화>

     

    이 책을 읽으면서 기본의 중요성을 절실히 깨달을 수 있었습니다. 저는 단순히 돌아가는 프로그램을 만들고 싶지 않습니다. 잘 돌아갈 뿐만 아니라 내부적으로 아름다운 프로그램을 만들고 싶습니다. 다루는 데이터의 특성을 고려하여 적절한 자료 구조를 선택하고, JVM의 작동원리와 OS가 프로그램을 실행하는 원리를 고려하여 프로그램을 작성하고 싶습니다.

     

    한빛미디어의 <자바 최적화>는 처음 읽을 때는 뇌에 부하를 줍니다. 읽는 게 다소 고생스럽습니다. 그러나 운동을 편하게 하면 성장이 없는 것처럼 공부도 그렇다는 걸 생각해야 합니다. 어려움을 맞닥뜨릴 때 진정한 성장이 있습니다. 자바(Java)를 좀 더 깊이 이해하여 내공을 쌓고 싶은 개발자에게 이 책을 추천합니다.

  •  

    이 책은 일단 애플리케이션을 실행 시에 어떤 일이 일어나는지~ 아주 자세히 더욱더 자세히 설명이 되어있다.

     

     

    KakaoTalk_20190609_114214492.jpg

     

     

     

    학부 시절에 주로 C,C++ 언어를 배우면 메모리 해제를 한 적이 있을 것이다. 아마 개발자가 직접 메모리를 관리를 하면서 코딩했던 기억이.

    지금은 자바로 먹고 살지만 메모리 등 전적으로 자바의 가비지 컬렉션을 믿고 코딩을 했던 거 같다.

     

    이책은 전반적으로 클래스 로더, 자바 컴파일러가 바이트 코드를 어떻게 처리하는지?

     

    그리고 가비지수집에 대한 기초를 좀 더 심화 학습할 수 있을 것이다.

    그리고 다양한 컴파일러와 특히 재미있게 읽었던 부분은 성능 테스트 부분

    그리고 이해를 돕기 위한 그림 및 팁으로 설명이 친절하게 되었던 거 같다.

     

    또한 유명한 개발자들의 블로그 링크 또한 있으므로 참조하면 좋을 것 같다.

     

    평소에는 접하지 못했던 내용으로 가득하였다.

     

    확실히 이 책은 나에게는 좀 아주 어려웠다.

     

    하지만 그래도 요즘 아무리 하드웨어 및 클라우드 베이스로 개발을 한다고 하더라도

    오히려 이런 기본을 더욱더 심화적로 학습을 해야 할 때가 올 것이다.

     

    아 그리고 이책은 개발자들의 명언 같은 해당 책 속의 내용을 선대 개발자들이 이야기한 짤막한 명언으로 더욱더 이해심을 돕는다.

     

    이 책은 나중에 연말 다시 한번 정독을 해야 할 것이다.

     

    <이 책의 리뷰는 한빛미디어 '나는 리뷰어다'로 부터 책을 지원받아 작성된 글입니다>

     

  • 이번 시간에는 자바 애플리케이션의 성능을 최적화하는 방법을 소개하는 한빛미디어의 신간인 <Optimizing Java: 자바 최적화>에 대해 소개합니다. 자바 애플리케이션의 성능 최적화는 어려운 주제이며, 실제로 관련 자료를 찾아 시스템에 적용하기에는 많은 노력이 필요합니다.

    실제 애플리케이션 성능 튜닝을 시도하거나 수행했었다면, 다양한 시행착오를 경험했을 것입니다. 또한, 애플리케이션 최적화는 쉬운 분야가 아닙니다. <Optimizing Java>는 이 분야에서 필요한 지식을 잘 정리해 놓은 매력적인 책입니다. 

     

    이 책에서 다루는 내용은?

    처음 이 책을 만났을 때의 첫 느낌은 인상적이었습니다.  꽤 어려운 주제를 다루고 있는 책이어서 전통적인 느낌으로 편집되어 있을 것으로 판단했는데, 주요 요소마다 다양한 컬러를 활용하여 독자가 이해하기 쉬우면서도 가독성이 훌륭한 느낌을 받았습니다. 

    이 책은 첫인상뿐만 아니라, 이 책에 담긴 콘텐츠 역시 훌륭합니다. 특히, 국내에서는 경험하기 어려운 심오한 주제를 다룬 책이니 많은 사람의 관심을 가졌던 책이었습니다. 다만 한 가지 우려스러웠던 점은 <Optimizing Java>는 번역서입니다. 이 책은 어려운 주제라서 다소 걱정했었는데, 역자는 이 어려운 내용을 매력적으로 풀어냈습니다. 

    <Optimizing Java>는 성능 최적화에 필요한 기본 지식을 요약하고, 애플리케이션 최적화를 진행할 때, 필요한 다양한 도구를 소개합니다. 이뿐만 아니라 성능 테스트에서 사용하는 다양한 패턴과 안티 패턴을 소개해 성능 최적화를 진행하며 실수할 수 있는 부분을 최소화할 수 있을 것으로 생각합니다.

    이 책에서 아쉬운 점은 Java Virtual Machine(JVM), Garbage Collector(GC), 프로파일링 등을 소개하기에 500페이지의 지면은 부족하다고 생각합니다. 다만, 이 책을 지침서로 삼아 주제별로 깊이 있게 공부할 수 있는 발판으로 활용한다면 <Optimizing Java>에서 다루는 내용은 여러분에게 매력적으로 다가올 것입니다.

    마지막 장에서는 자바 9 이후의 이야기를 다루는데, 필자가 매력적으로 바라보는 다양한 서브 프로젝트들을 소개하고 있어 신선했습니다. 비록 지면 관계상 각 프로젝트에 관해 설명이 충분하진 않았지만, 주제별로 흥미를 느낀 독자들에게 신선함을 알려주기에는 충분하다고 생각합니다.

     

    마치면서

    <Optimizing Java>는 자바 애플리케이션 튜닝을 위한 지식뿐만 아니라, 다양한 팁과 트릭을 제공하여 실용적인 측면을 강화한 책입니다. 자바는 국내에서 가장 많이 사용하는 프로그래밍 언어이고 많은 사랑을 받은 만큼 다른 프로그래밍 언어보다 시중에 출간된 서적이 매우 많고 다양합니다. 그렇지만 이 책만큼 자바 성능 최적화에 대해 소개하고 있는 책은 찾아보기 어렵다고 생각합니다. 이 분야에 대해 학습해야 한다면, 꼭 한 번 읽고 검토하길 바랍니다. 많은 도움이 될 것으로 확신합니다.

     

  •  

    책소개

     

     

    자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기 

     

    성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고급 자바 개발자에게 정량적이고 검증 가능한 접근 방식으로 자바 애플리케이션 성능을 튜닝하는 방법을 알려준다.

     

    성능 튜닝은 원하는 결과를 정의하고 결정하는 과정이다. 자바 성능에 관한 대부분 자료는 자바 가상 머신 이론과 내부의 모습을 살펴보는 데 그치지만, 이 책은 레시피, 팁/트릭, 알고리즘 등 다양한 부문을 살펴보며 성능 튜닝의 실용적 측면을 이야기한다.

     

    출처 : http://www.hanbit.co.kr/store/books/look.php?p_code=B7707787549

     

     

    자바 최적화

    성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고급 자바 개발자에게 정량적이고 검증 가능한 접근 방식으로 자바 애플리케이션 성능을 튜닝하는 방법을 알려준다. 성능 튜닝은 원하는 결과를 정의하고 결정하는 과정이다. 자바 성능에 관한 대부분 자료는 자바 가상 머신 이론과 내부의 모습을 살펴보는 데 그치지만, 이 책은 레시피, 팁/트릭, 알고리즘 등 다양한 부문을 살펴보며 성능 튜닝의 실용적 측면을

    www.hanbit.co.kr

     

     

     

     

    이번에 리뷰하게 된 책은

    '자바 최적화 - 벤저민 J. 에번스 , 제임스 고프 , 크리스 뉴랜드' 입니다.

     

    프로젝트 진행 시에 주로 자바를 활용하는데, 최적화는 없어서는 안되는 필수적인 부분이라고 할 수 있습니다.

    다만, 처음부터 최적화까지는 신경쓸 수 없겠지만 한번 쯤은 꼭 공부하면 좋을 것 같다는 생각이 들었습니다.

     

     

     

     

     

     

    여러 목차가 있었지만, 가장 눈에 띄는 목차는 챕터11. 자바 언어의 성능 향상 기법이었습니다.

    앞의 내용들은 주로 JVM, 가비지 컬렉션 등에 대해서 다루지만 실제로 자주 쓰는 컬렉션, List, Set, Map 최적화가 정말 중요한 부분이기 때문입니다.

     

     

     

     

    책을 읽다보면

     

    '모든 성능 문제가 그렇듯이, 어떤 기술이건 일장일단이 있으니 자신의 코드를 분석하듯이 꼼꼼하게, 데이터 중심으로 접근하세요.' 

     

    라는 문구가 등장합니다. 책 내용 전체를 하나로 요약하는 문장이 아닐까 싶습니다.

    많은 최적화 방법이 있겠지만 가장 중요한 부분은 데이터의 관점에서 생각하는 것이 중요하기 때문이죠.

     

     

    어떤 방식으로 최적화를 해야하는지 공부해보고 싶은 분들께 권하고 싶은 책입니다.

    자바에 대해서 어느정도 공부를 하고, 실무에 사용하시는 분들이 읽을 만한 책인것 같네요.

     

    <이 책의 리뷰는 한빛미디어 '나는 리뷰어다'로 부터 책을 지원받아 작성된 글입니다.>

     

  • 20190607_230800.jpg

     

    프로그래밍 패러다임이 빠르게 변하고 있는 현재 JAVA 이에 맞춰 빠르게 변하고 있습니다. 

     

    새로운 개념, 기능들이 빠르게 추가되고 있지만 JAVA 사용하기 위해서는 JVM, GC, 프로파일링 핵심적인 내용들을 알고 있어야 합니다.

     

    막연하게 목표로 했던 성능 향상을 어떻게 분류하고 측정해야 하는지, JVM에서 어떤 일이 일어나고 있는지, 병목 구간을 어떻게 찾고 수정해야 하는지 다양한 정보들이 책에 정리되어 있습니다.

     

    JAVA 오랫동안 많은 사람들에게 사용되어 왔습니다. 그래서 많은 정보들이 주변에 있지만 동안 변경된 내용을 담지 못하는 잘못된 정보도 많이 있습니다. 최근 JAVA 기준으로 많은 중고급 내용들을 한번에 담고 있기에 책은 의미가 있습니다.

     

    JVM, 성능, GC, 컴파일, 프로파일링 복잡한 내용들을 500 페이지 정도에 담고 있어 설명이 자세하거나 친절하지 않습니다. 하지만 주제들의 중요한 내용만 담고 있어 어떤 부분을 찾아보고 공부해야 하는지 알려주는 길잡이 같은 책이라고 생각합니다.

     

    JAVA 어느 정도 경험이 있는 중급 이상 개발자 분들에게 추천합니다.

     

  • IMG_1486.jpg

     

    요즘 내 관심사는 서비스 성능 개선, 안정화이다. 
    대량의 데이터를 처리하면서 트래픽이 몰리는 순간에 시스템이 불안정하다면 서비스의 신뢰가 떨어질 수 있고, 이는 회사의 매출에 직결될 수 있다. 
    고객 경험은 서비스가 단 한 번 실 수해도 안 좋게 받아들일 수 있다.
     
    자바로 서비스하는 중이 자바 튜닝에 관한 자료들을 찾아보아도 인터넷의 자료는 매우 편협하고 파편화된 자료라 책을 찾아보았지만 지금 흐름에 맞지 않는 오래된 책들뿐이었다. 그런 책이라도 사볼까 하던 참에 자바 최적화 책이 새롭게 나와 너무너무 정말 반가웠다. 
     
    자바 개발자라면 모를 수 없는 JVM, 가비지 수집/로깅/튜닝, 성능 테스트 및 안티 패턴(많이 사용하지만 지양해야 할 패턴) 등 정말 깨알 같은 무엇 하나 버릴 것이 없는 목차이다. 
    원래 성능이란 주제 자체가 광범위하기에 다양한 토픽들을 집약한듯하지만, 이 책을 시발점 삼아 자바 튜닝에 입문하면 좋을 것 같다. 
     
    더불어 그동안 문법 위주의 개발만 해왔던 나와 같은 개발자들은- 
    자바 해부학에 입문해 미시적인 세계에 관심을 가지게 할 흥미로운 내용이 가득하다. 바이트코드, JVM, 가비지 수집기 등의 고급 주제는 시중에 출간된 대부분의 자바 도서에서 거의 다루지 않는 내용이므로 자바 기본기를 익힌 중/고급자 개발자분들께는 희소성의 가치가 높은 책이다. (옮긴이 이일우) 



    IMG_1490.jpg

     


    내 마음이 읽힌 것 같다. 
    다급함에 영어 사전을 찾아보듯 뒷장부터 읽어보려 했는데, 적용 원리를 잘 모르고는 어떤 기법도 득보다는 실이 더 많을 것이라는 조언을 해준다. 
     
    - JVM을 더 빨리 작동시키는 마법의 스위치 같은 건 없습니다. 
    - 자바를 더 빨리 실행하게 만드는 팁, 트릭은 없습니다.
    - 여러분이 못 보게 꼭꼭 숨겨둔 비밀 알고리즘 같은 것도 없습니다. 

    요행을 바라지 말고 차근히 원리를 익히라는 선배님의 말씀 같다. 


    IMG_1494.jpg

     


    깔끔하게 정리된 그림은 이해를 돕는다. 
    글로만 보다 보면 뇌리에 잘 남지 않는데, 도식화된 내용은 기억에 잘 남고 직접 그려가며 공부하다 보면 장기 기억으로 전환되기에도 유리하다. 

     

    IMG_1498.jpg

     

     
    현상에 대한 이해가 부족한 채 인터넷에 난무하는 파편화된 정보에 기대 
    의미도 모른 채 설정 바꾸기를 했던 지난날들이 어찌 여기 이렇게 적나라하게 쓰여있는 것인지..

    저자는 마치 내 옆에서 나를 지켜봤던 걸까.. 부끄러운 내 모습이 그대로 쓰여 있어 놀랬다. 
    겪을 수 있는 현상에 대해 자세히 기술하고 있고 어떻게 진단하는지 알려주고 있어 이 챕터에서는 레시피 북 같은 느낌이 들었다. 
     
     

    IMG_1501.jpg

     

    역시 아직은 코드로 보는 게 심신 안정이 된다.
    테스트해볼 수 있는 예제 코드도 함께 있으니 직접 디버깅도 해볼 수 있어 이점도 이 책의 메리트인 것 같다. 
     
    일부 번역서들은 번역이 매끄럽지 못해 책을 읽는데 불편하여 공부에 종종 방해가 되지만
    자바 최적화 책은 번역이 매우 자연스럽고 한국식 언어문화를 잘 녹여서 마치 처음부터 한국 저자가 쓴 책일 정도라는 느낌까지 있었다. 
    이 책은 자바 초급차가 보기보다는 중급 / 고급자에게 추천하고 싶은 책이기에 어느 정도 자바에 대한 이해가 있는 개발자가 보면 좋은 책이다. 
     
    이제 나도 그동안 기도하듯 옵션을 수정했던 지난날을 딛고 자바 성능의 세계로 뛰어들 수 있게 되었다. 

  • 자바 최적화에 큰 관심이 있지는 않지만, 그 안이 어떤 형태로 움직이는 지는 관심이 많다.

    예전에는 Unsafe클래스라던가, ASM이라던가 정말 주위 사람들이 쓸모없는 기술이라 자신하는 것들을 많이 탐했었다.

    그것들을 잘 이해하지 못하면서 탐했던 이유는 역시나... 재미라는 것이다.

     

    내가 하는 일이 무엇인지 제대로 알고 싶은 마음 때문이다. 

     

    이 책이 나의 그런 마음을 어느 정도는 정리되게 해준다. 

     

    모든 내용을 다 읽지는 못했지만, 이런 최적화 방법에 대한 이야기를 여타 다른 선임 개발자들에게 들어본 적도 없고 대부분 경시하는 내용이기 때문에.

    이 책은 나의 배고픔에 적당한 배부름을 줄 거라고 생각한다.

     

    이 책은 확실하게 알려준다. 무엇이 어떻게 돌아가는지, 어떻게 확인하는지, 이해가 안되는 것같으면 조용히 그림을 보여준다. 게다가 컬러로!

    컬러 그림이 들어간 자바책이라니, 그건 입문서에나 있는 것이다.

    꽤나 사람들에게 생소한 이야기를 좀 더 재미있는 놀이처럼 보이게 하려는 저자의 마음이 들어 있는게 아닐까 생각된다.

     

    맞다 이것은 자바 최적화 입문서다. 그리고 최적화를 할 필요가 없더라도, 최적화를 하는 방법을 읽다보면, 내가 자바를 더 잘 이해하게 되는 것 같아진다.

    그리고 꼭 이런 내용이 자바에만 국한될까. 자바와 비슷한 언어도 비슷한 방식으로 최적화 할 것이다. 혹은 JVM을 사용하는 언어도 비슷한 방식으로 돌아갈 것이다.

     

    이 책을 구매하기 전에 꼭 알아야 할 점이 있다.

    1. 떠먹여 주는 책은 아니다.

    위 글에서 컬러그림 같은 것들이 있다고 아주 쉽게 설명되어 있다고 생각하면 안된다. 이 내용은 쉬운 내용이 아니다. 그리고 그것을 어린아이 가르치듯 설명해서는 안된다. 이 주제는 진지한 주제이며, 쉽게 흥얼흥얼 거리면서 읽을 수 있는 책의 성질을 가지고 있지 않다.

     

    2. 자습서가 아니라 사전이다.

    이 책은 1장을 읽고 2장을 읽고... 뭐 이런 순서가 있는 책이 아니다. 필요할 때 차례를 보고 나에게 필요해 보이는 몇 개를 메뉴처럼 선택해서 읽는 것이 가능하다. JVM이라는 주제는 JAVA라는 언어를 공부하는 것과 다른 것일까? 자바라는 언어를 배우듯이 만들어졌으면 더 좋았을 것 같다는 생각이 든다.

     

    이 정도가 나의 사견이다. 누누히 말하지만 이 책은 떠먹여 주는 책이 아니다. 기어이 떠먹으려는 사람들을 위한 책이다.

    이 책은 자바개발자에게 유용하다. 자바 개발자로서 삶의 여분의 시간이 있다면 이 책을 읽기 딱 좋은 시간일 것이다.

     

  • 평소 프로그램을 개발할 때, 기능 구현이 모두 완료된 후 반드시 리팩토링 과정을 거치곤 합니다. 디버깅 할 때 삽입되었던 코드 또는 레거시 코드들을 정리하기 위해서죠. 하지만 '최적화' 하여 프로그램의 성능을 향상시키기엔 실력도, 개념도 많이 부족했습니다. 섣불리 최적화를 하겠다고 나섰다가 다시 코드 버전을 되돌렸던 적도 있어서, 이후로 최적화를 시도할 엄두를 내지 못했습니다. 또한 자바 개념서들은 많이 출판되어 있지만 저처럼 최적화에 대해 잘 모르는 개발자들이 볼 수 있는 국문 서적은 쉽게 찾아볼 수 없었습니다. 그러던 중, 이번에 한빛미디어에서 자바 최적화 번역서를 펴냈기에 바로 읽어보았습니다.

     

    [이 책은]

    이 책은 저명한 자바 개발자들이 직접 펴내고, 수 년 간 자바/스칼라 개발자께서 옮긴 믿을 수 있는 번역서입니다.

    어떤 번역서들은 영어 단어를 읽은 발음을 국어로 옮겨 적어 쉽게 읽히지 않지만 이 책은 자바 용어를 제외하고는 매끄럽게 읽혀 좋았습니다.

    먼저 NOTE 부분은 본문에 보충할 부분이나 본문과 연관된 팁들이 적혀 있는 란입니다.

    책을 읽으며 학습할 때 쉬어가는 부분도 되어 주고, 여러 꿀팁들도 얻을 수 있습니다.

    개인적으로는 관련 정보를 얻을 때 유용하게 사용하고 있는 부분입니다.

    

    개념을 가시화해 준 부분은 수명 주기나 코드 작동 순서, 작성한 코드가 어떤 순서로 어디에 영향을 주며 실행되는지를 가시화해주어 훨씬 이해하기 편했습니다.

    추가로, 사실 이번 책에서 좋았던 점은 과하지 않은 컬러였습니다.

    제가 접했던 개발 도서들은 보통 흑백이었는데 이 책은 컬러가 입혀져 있어 좀 더 강조되는 부분을 확실히 알 수 있었습니다.

     

    하드웨어 메모리 지원과 같은 부가 정보를 표로 잘 정리해 두어 내용을 한눈에 파악할 수 있게 된 점이 좋았습니다. 

    여러 줄의 줄글보다도 위의 모식도나 표로 간략하게 표현된 것이 머릿속에 이미지로 확 들어오는 듯한 느낌입니다.

    또한 번역한 단어 또는 용어를 각주와 주석으로 한번 더 기재해 주어 정확한 표현과 용어를 숙지할 수 있습니다.

     

    성능 테스트 관련된 부분은 증상, 현실, 진단, 처방 등의 단계를 눈에 띄게 나눠 두어 이해하기 쉬웠습니다.

    어떤 순서로 현상을 숙지하고, 어떻게 해결해야 하는지 아이디어를 얻을 수 있었습니다.


    [책을 덮으며]

    책을 정독한 후 코드 최적화로 프로그램의 메모리 사용량, 구동 속도를 개선할 수 있다는 자신감이 생겼습니다.

    자바 기본 개념에서 파생된 최적화 방법이 잘 설명되어 있어 이해하기 편했습니다.

    또한 여는 말에도 썼듯이 번역서임에도 불구하고 문장이 매끄러워 자연스럽게 읽어나갈 수 있었습니다.

    이 책은 개발을 시작한 지 얼마 되지 않은 개발자보다는 자바라는 언어에 대한 기본 지식이 있고 이를 이용해 개발을 해 본 개발자들을 위한 도서라고 생각됩니다. 기본 개념을 알고 있어야 이해할 수 있는 내용들이 일부 있었고, 책의 난이도가 아주 쉽고 내용이 단순한 편은 아니었다고 생각합니다. 


결재하기
• 문화비 소득공제 가능
• 배송료 : 0원배송료란?

배송료 안내

  • 책, 아이템 등 상품을 3만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
자바 최적화
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
자바 최적화
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
자바 최적화
구입처*
구입일*
부가기호*
부가기호 안내

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실