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

한빛출판네트워크

자바 퍼포먼스 튜닝 (개정판): 성능 향상을 위한 205가지 핵심 기법

  • 저자 : 잭 시라지(Jack Shirazi)
  • 번역 : 서민구
  • 출간 : 2003-10-06
  • 페이지 : 632 쪽
  • ISBN : 897914248x
  • 물류코드 :1248
TAG :
초급 초중급 중급 중고급 고급
4.3점 (3명)
좋아요 : 13

최소의 노력으로 최고의 속도를 만드는 진짜 튜닝 기법

자바가 처음 출현한 이래, 자바 프로그램의 성능은 언제나 중요한 문제였다. 최근 수년간 자바의 성능은 극적으로 개선되었으나, 좋은 애플리케이션, 특히 J2EE 애플리케이션의 경우에는 여전히 튜닝이 중요한 문제로 남아있다. 가장 빠르게 수행되는 코드를 만드는 일은 아직도 요원하다.

『자바 퍼포먼스 튜닝』의 개정판인 이 책은 모든 종류의 자바 성능 문제를 해결하는 데 필요한 폭넓고 중요한 지침을 제공한다. 실제 세계의 예를 사용하여 튜닝 절차를 상세하게 기술하면서 객체 생성, 문자열 대신 사용하는 배열 등 코드의 성능을 높일 수 있는 갖가지 기법을 다룬다.

J2EE 애플리케이션 튜닝은 J2SE 애플리케이션 튜닝과 많은 유사점이 있지만, J2EE의 성능 향상을 위해 다뤄야하는 중요하고 특별한 고려사항이 있다. 이러한 이유로, 개정판에서는 J2EE 애플리케이션의 일반적인 튜닝, JDBC 튜닝, 서블릿과 JSP, EJB에 대한 네 가지 분야의 설명을 추가했다. 그 외에도 컬렉션 질의 최적화, 가비지 컬렉션 통계, 웹 서비스, NIO, 정규 표현식, 단언(assertion)과 같은 내용도 포함했다.

마지막으로 무엇을 튜닝해야 하는지, 무엇은 튜닝해서는 안 되는지에 대한 조언을 하고 있으며, 동시에 최소한의 코드 수정을 통해 큰 효과를 볼 수 있는 기술들을 강조한다. 이 책은 프로그램의 아키텍처를 손상시키지 않으면서 튜닝할 수 있는 핵심적인 지침을 선사한다.


[ 관련기사 ]
더 빠른 자바 애플리케이션을 만들어보고 싶다면?



[ 이 책의 주요 내용 ]
  • 성능 계획 작성
  • 프로파일링 도구를 사용한 프로그램의 행동 분석 정보 수집
  • 튜닝 이전의 병목현상 식별
  • 프로그램에서 생성하는 객체의 수 최소화(J2EE 애플리케이션에 있어서 특히 중요한 문제다)
  • 문자열, I/O, 스레드 사용의 최적화
  • 정렬을 비롯한 작업에서 사용할 수 있는 최적의 알고리즘
  • 분산 시스템 성능 최적화
  • 서블릿과 JSP 속도 개선
  • JDBC 사용의 구조 개선
  • EJB 성능 최적화를 위한 효율적인 디자인 패턴
저자

잭 시라지

독립 컨설턴트로서 초창기부터 자바를 사용했고, 주로 금융산업 분야를 상대로 자바 성능에 중점을 둔 상담을 하고 있다. 자바를 다루기 전에는 스몰토크 애플리케이션을 최적화하는 작업을 했다. 물리학과 생체정보학도 연구하여 단백질 구조에 관한 서적을 출간한 바 있다. 펄 5의 핵심 모듈 개발의 개발을 도왔다.
역자

서민구

연세대학교에서 컴퓨터과학을 전공하고 있으며, 삼성소프트웨어 멤버십 12기, 자바스터디 네트워크 부운영자로 활동중이다. 닷넷, 자바, 데이터베이스 등의 분야에 관심이 많다.

1장. 개요
    왜 느린가
    튜닝 게임
    시스템 제한 사항, 튜닝 대상
    튜닝 전략
    성능 인지
    튜닝 시작
    측정 기준
    불필요한 튜닝 방지
    성능 점검 목록

2장. 프로파일링 도구
    측정과 런타임
    가비지 컬렉션
    메소드 호출
    객체 생성 프로파일링
    잘못된 메모리 사용 모니터링
    클라이언트/서버 통신
    성능 점검 목록

3장. JDK 개선
    가비지 컬렉션
    힙 튜닝
    전체적인 튜닝
    힙 튜닝 방법
    메모리 공유
    JDK 클래스 대체
    더 빠른 가상 머신
    더 나은 컴파일러
    썬의 컴파일러와 런타임 최적화
    고유 머신 코드 컴파일 50
    고유 메소드 호출
    무압축 ZIP/JAR 파일
    성능 점검 목록

4장. 객체 생성
    객체 생성 통계
    객체 재사용
    참조 객체
    가비지 컬렉션 피하기
    초기화
    빠른/늦은 초기화
    성능 점검 목록

5장. 문자열
    컴파일과 런타임시 문자열 값 부여 비교
    컴파일과 런타임할 때 해결할 문자열
    문자열 변환
    문자열과 문자 배열
    문자열 비교와 검색
    국제화 문자열 정렬
    성능 점검 목록

6장. 예외, 단언, 캐스트, 변수
    예외
    단언(assert)
    캐스트
    변수
    메소드 매개변수
    성능 점검 목록

7장. 반복문, 스위치, 재귀
    반복
    반복문 수행
    예외로 인해 종료된 반복문
    스위치
    재귀
    재귀와 스택
    성능 점검 목록

8장. 입출력, 로깅, 콘솔 출력
    System.out 대체
    로깅
    입출력 개선
    직렬화
    객체 클러스터링과 입출력 연산 횟수 계산
    압축
    NIO
    성능 점검 목록

9장. 구현
    불필요한 정렬 과부하 방지
    효율적인 정렬 프레임워크
    O(nlogn)보다 너 나은 정렬
    성능 점검 목록
10장. 스레딩
    사용자 인터페이스 스레드와 기타 스레드
    경쟁 조건(race condition)
    교착상태(deadlock)
    동기화 과부하
    멀티스레드 시간 측정
    원자적 접근과 할당
    스레드 풀
    로드 밸런싱
    스레드 문제해결 전략
    성능 점검 목록

11장. 적절한 데이터 구조와 알고리즘
    컬렉션
    자바 2 컬렉션
    Hashtables과 HashMaps
    질의 최적화
    LinkedLists와 ArrayLists의 비교
    RandomAccess 인터페이스
    접근 캐싱
    캐싱 예
    부분적으로 일치하는 문자열의 인덱스 검색
    검색 트리
    성능 점검 목록

12장. 분산 컴퓨팅
    도구(Tools)
    메시지 축소
    통신 레이어 비교
    캐싱
    일괄 처리 I
    애플리케이션 파티셔닝
    일괄 처리 II
    저수준 통신 최적화
    분산 가비지 콜렉션
    데이터베이스
    웹 서비스
    성능 점검 목록

13장. 언제 최적화해야 하는가
    최적화를 하지 않아야 할 때
    클래스 라이브러리와 빈즈 튜닝
    분석
    디자인과 아키텍처
    배포 후의 튜닝
    성능에 영향을 미치는 또 다른 요소
    성능 계획
    성능 점검 목록

14장. 운영체제와 네트워크 성능 향상
    하드 디스크
    CPU
    램
    네트워크 입출력
    성능 점검 목록

15장. J2EE 성능 튜닝
    성능 계획
    J2EE 모니터링/프로파일링 도구들
    측정 : 무엇을, 어디서, 어떻게
    부하 테스팅
    사용자 지각
    클러스터링과 로드 밸런싱
    JMS 튜닝
    성능 점검 목록

16장. JDBC 튜닝
    JDBC 성능 측정
    JDBC 튜닝
    성능 점검 목록

17장. 서블릿과 JSP 튜닝
    SingleThreadModel을 사용하지 마라
    효율적인 페이지 생성과 출력
    바디 태그
    캐시 태그
    HttpSession
    압축
    그외의 성능 향상 팁
    케이스 스터디: Ace"의 하드웨어 SPECmine 도구
    성능 점검 목록

18장. EJB 튜닝
    주요 디자인 지침
    성능 최적화 디자인 패턴
    애플리케이션 서버
    EJB 튜닝 조언
    사례 연구: 펫 스토어(The Pet Store)
    사례 연구: 엘리트 닷 컴(Elite.com)
    성능 점검 목록

19장. 추가자료
    주요 자료
    서적
    잡지
    인터넷 URL
    프로파일러
    최적화 도구

  • 자바의 속도 문제는 가장 큰 단점으로 인식되어 왔습니다. 현재 소프트웨어의 발전 속도보다 하드웨어의 발전속도가 훨씬 앞서 있기 때문에 “자바는 느리다” 라는 편견은 이제 더 이상 무의미하게 되었지만 그래도 JVM위에 올라가는 순수 자바 애플리케이션은 느린 게 사실입니다. SQL 튜닝 같은 것은 실무에 바로 적용 가능한 것이 많겠지만, 자바 전반에 대한 튜닝 책은 국내에서 별로 많지 않고, 실무에 적용하려면 상당한 수준의 실력을 요구한다는 생각이 듭니다. 이 책은 내용도 좋고, 고급 수준의 책이지만, 정작 실무에서 바로 응용해 보기에는 독자의 수준에 의존하기 때문에 적합하지 않을 수 있다는 생각이 듭니다. 하지만, 자바 언어 전반에 대해 관심을 가지고 계시거나 실력이 어느 정도 높고 중급 이상으로 가시려는 분들에게는 많은 도움이 될 것으로 생각됩니다.

  • 이 책은 1.4 버전까지의 내용을 다루고 있다.



    1.5 버전이 출시되기 전에 나온책이라 그렇겠지만..



    그렇다고 내용이 시대에 뒤떨어진건 아니다. -_-;;;;



    기존 1판에 비해서 책을 읽으면서 느낀건..



    1판에 비해..



    내용이 더 풍부해졌다는 거다.



    아직..읽고 있는중이지만..



    1판보다.. 내부적인 처리에 대해서.. 더 자세히 다루고 있다.



    머 번역도 괜찮고..



    그래서 더 재미있다..



    한번쯤.. 읽어볼만한 책이다.

  • 자바가 초창기의 단순한 애플릿 언어로 시작했을 때부터 속도 문제는 가장 큰 걸림돌이었습니다. 비록 현재 소프트웨어의 발전 속도보다 하드웨어의 발전속도가 몇 십년 앞서 있기 때문에 초기의 “자바는 느리다” 라는 편견은 이제 더 이상 무의미 하게 되었지만 그래도 JVM위에 올라가는 순수 자바 애플리케이션은 느리긴 느리지요..^^;;



    이 책은 2001년 1판에 이어 J2EE부분을 추가하여 2003년에 새롭게 번역된 개정판입니다. 처음 이책을 접하게 된 동기는 그래! 이제 나도 무작정 프로그램을 작성하기 보다는 한 줄을 코딩 하더라도 좀더 효율적이고 성능면에서 나은 코드를 작성해 보자라는 순진한(?) 의도 였습니다. 물론 이책을 읽으면서 저의 지식의 한계를 느끼게 해주는 책이 였지요. 사실 요새 자바를 가지고 특정 클라이언트 애플리케이션을 개발하기 보다는 웹 프로그래밍이나 J2EE단의 비즈니스 로직에 사용되는 코드를 작성하는 것이 대부분이라 이책의 내용이 바로 실무에 적용되는 것은 무리일 듯 싶습니다. 사실 SQL 튜닝 같은 것은 실무에 바로 적용 가능한 것이 많겠지만 이러한 자바 전반에 대한 튜닝 책은 국내에서 이책밖에 보지 못했을 뿐더러 실무에 적용하려면 상당한 수준에 실력을 요구한다는 생각이 들었습니다.



    그래서 단순히 전 아주 간단한 진리(?) 같은 것들을 코딩에 적용해 볼 수 있었습니다. 알고도 기존의 편리함 때문에 적용하지 않았던 것들이었죠.



    1. 반복문 안에 들어 가는 조건 문에서 메소드의 사용은 좋지 않다.

    => fot ( int I =0 ; I < test.length() ;I ++) 같은 경우



    2. String 보다는 StringBuffer와 Append() 메소드를..(append()가 좀 귀찮죠)



    개인 적인 경험이지만 몇 십 줄의 SQL문의 String을 StringBuffer로 변경하면 가독성을 더 좋게 만들 수도 있더군요. 아무튼 1판에서는 아주 간단하고 많은 사람들이 알고 있는 이런 지식 밖에 얻을 수 없었습니다. 물론 저의 지식의 한계도 있었구요.. ^^;; 보통은 자신의 관련 부분에만 집중하기 때문에 책의 모든 내용들이 도움이 된다고 말할 수는 없습니다.



    2판의 경우 번역도 새롭게 되고 J2EE관련 부분이 추가 되었습니다. 제가 일일이 비교해본 결과 2판의 번역이 부드럽고 양도 많아졌습니다. 대략 100페이지 분량의 JDBC, Servlet, JSP, EJB 튜닝 기법이 추가되어 있습니다. 사실 이 부분에 대해서는 기대를 많이 했었고 이책을 구입한 주된 이유였지만 제가 생각하는 부분은 아니었습니다. 1판의 많은 튜닝 기법들이 자바 버전대로 비교 분석하여 수치화 시킨 표를 제공하고 있지만 추가된 분량의 부분에서는 다소 상위 레벨의 튜닝 기법(단순히 말뿐인..)이 소개되어 있습니다. 물론 J2EE인 경우 하나의 구조 이기 때문에 단순히 비교는 어렸습니다만 그래도 욕심이 좀..



    1판의 시절(원서 출판 시점)과는 달리 지금은 현재는 인터넷이 없는 프로그래밍은 상상도 할 수 없을 정도까지 되었기 때문에 이책에서 새로운 환경에 대한 최적화 기법을 기대하였는데요 만약 저 같은 기대를 가지고 이 책을 읽는다면 그리 얻을 수 있는 것이 없을 것 같습니다. 책은 좋지만 너무 아쉬운 부분입니다. 물론 J2EE도 자바로 구성된 구조이고 앞선 튜닝 기법이 내부에서 적용된다면 J2EE도 자연히 최적화된 성능을 낼 수 있다고 저자 분이 말씀하셨는데요 맞는 얘기지만 그리 마음에 와 닿지 않는 이유는 저도 잘 모르겠습니다. 차라리 개정판이 1판의 원서 출간 이후의 나온 자바 버전 성능표를 추가만 한 것 이었다면 개정된 내용만 해서 조그마한 단행본으로 출간했으면 어떨까 하는 생각도 듭니다. 마케팅 전략이긴 하지만 성능향상을 위한 205가지 기법은 어떤 기준인지 모르겠네요.. 아마도 소제목 기준인 것 같은데 세어 볼까 하다가 그냥 포기 했습니다..



    좋은 책이고 우리나라에서는 이런 책이 나올 수 있을까? 라는 생각이 들 정도로 고급수준의 책이지만 정작 실무에서 바로 응용해 보기에는 독자의 수준에 의존하기 때문에 적합치 않을 수, 특히 웹 프로그래밍 쪽에서, 있겠구나 라는 생각이 듭니다. 단순히(?) 웹과 관련되어 J2EE쪽에 계신 분들에게는 적합하지 않다는 생각이 들지만 자바 언어 전반에 대해 관심을 가지고 계시거나 실력이 어느 정도 쌓이고 중급 이상으로 가시려는 분들에게는 많은 도움이 될 것 같은 책입니다.



    서평을 쓰다 보니 제목과는 전혀 관계 없는 글이 되어 버렸군요.. -_-;; 책의 한 챕터를 시작할 때 마다 쓰여 있는 어구를 인용해 봤습니다..

부록/예제소스
자료명 등록일 다운로드
DOWNLOAD 예제소스 2016-04-06 다운로드
결재하기
• 문화비 소득공제 가능
• 배송료 : 0원배송료란?

배송료 안내

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

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

닫기

리뷰쓰기

닫기
* 도서명 :
자바 퍼포먼스 튜닝 (개정판): 성능 향상을 위한 205가지 핵심 기법
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
자바 퍼포먼스 튜닝 (개정판): 성능 향상을 위한 205가지 핵심 기법
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
자바 퍼포먼스 튜닝 (개정판): 성능 향상을 위한 205가지 핵심 기법
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

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

닫기

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

자료실