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

한빛출판네트워크

Blog2Book, 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기

Blog2Book, 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기

한빛미디어

집필서

절판

  • 저자 : 이상민
  • 출간 : 2008-02-04
  • 페이지 : 376 쪽
  • ISBN : 9788979145229
  • 물류코드 :1522
  • 초급 초중급 중급 중고급 고급
3.5점 (2명)
좋아요 : 16

효과적인 프로젝트 수행을 위한 자바 코딩과 튜닝 기법

튜닝이나 성능 테스트에서 이상이 감지되었을 때 시중에 나와있는 툴을 사용하면 대부분의 문제점은 쉽게 발견된다. 하지만 진짜 문제는 그야말로 ‘문제점’만 발견된다는 것이다. 실질적인 해결방법은 그 어디에도 나오지 않는다. 물론 그런 시스템을 관리하거나 개발하는 사람 중 고수가 있다면 해결방법을 알려 주는 경우도 있을 것이다. 하지만 그러한 경우에도 대부분 해결책만 자신의 코드에 반영할 뿐, 실제로 ‘왜’ 해야 하는지 모르는 경우가 다반사이다.

이 책은 이렇게 이중 삼중 고달픈 개발자들을 위해 더 나은 코딩 기법과 튜닝 노하우를 알려준다. 특히 단순한 좋은 코드의 나열이 아니라 개발자들이 쉽게 처하기 쉬운 난처한 상황과 해결해 나가는 과정을 동시에 제공하여, 개발자들이 그동안 지나쳐왔던 또한 앞으로 언제든지 닥칠 수 있는 어려움과 맞설 수 있는 힘을 길러준다.

이제 확실히 알고 코딩하자. 더 빠른 성능을 위한 코딩 습관과 튜닝 노하우가 바로 이 책에 있다.

감수평 & 추천평

지난 10여 년 동안 자바(Java) 개발자 관점에서 진정한 성능적 고찰을 시도한 책은 전 세계적으로도 많지 않았습니다. 대체적으로 단편적인 성능 향상을 위한 몇몇 프로그래밍 팁을 제공하는 한계를 벗어나지 못하였던 것입니다.
그러나 이 책은 다년간의 실무 프로젝트 성능 진단 경험을 바탕으로 집필되어, 성능 장애의 대표적 코딩 이슈부터 진단, 튜닝에 이르기까지 대단히 가치있고 의미있는 생생한 경험적 성능 노하우를 거침없이 제공하고 있습니다.
- 제니퍼소프트_이원영 사장

누구나 열광하는 화려한 무대를 표현하기 위해서 무대 뒤에서 보이지 않게 노력하는 많은 사람이 있습니다. 이처럼 프로그래머는 컴퓨터로 표현되는 많은 일들을 프그래밍할 때 그 이면에 감춰진 커다란 노력을 알아가는 것도 중요합니다. 이 책은 프로그래밍을 좀 더 원활하게 해주는 환경적인 지식들과 프로그래밍을 넘어 자바 언어의 근원적인 이야기들을 쉽게 설명해주는 책입니다. 초급 개발자를 넘어서기 위해 노력하는 분들에게 추천합니다.
- 허광남_okjsp.pe.kr 운영자

실무 현장의 다년간에 걸친 자바 애플리케이션을 튜닝 경험이 고스란히 녹아 있는 책입니다. 특히 디자인 패턴, GC 등 어렵게 느끼기 쉬운 내용을 초보자도 이해하기 쉽게 잘 표현하고 있습니다. 현업에서 개발 컨설팅을 하다 보면, 본 책에서 다루고 있는 내용을 너무 간과한 나머지 작성을 다 해놓고도 제대로 서비스를 오픈하지 못하는 경우를 너무 많이 봤습니다.
애플리케이션 추상화 단계가 높아질수록 애플리케이션을 올바르게 작성하는 방법, 특히 그 근본 원리를 아는 것이 중요하다고 생각합니다. 이에 본 책을 추천합니다.
- 김성박_『알기 쉽게 풀어 쓴 웹로직과 EJB』 저자

이 책을 한마디로 표현하자면 "신토불이"입니다. 그동안 출간된 시스템 성능과 관련된 대부분의 서적 이 이론적인 설명위주였다면, 이 책은 국내 개발자와 프로젝트를 위해 쓰여진 국내 개발자의 책입니다. 프로젝트의 최종 산출물인 시스템의 성능은 단순히 한두 줄의 자바 코드 또는 SQL에 의해서가 아니라 개발일정, 프로젝트의 표준, 아키텍처, 사용된 프레임워크, 개발자들의 기술 수준, 벤더의 지원, 개발자의 잘못된 코딩 습관 등 많은 직/간접적인 요소에 의해 결정됩니다. 이 책을 통해서 여러분은 국내 프로젝트 환경에 꼭 맞는 시스템 튜닝 및 문제 해결 방법을 만날 수 있을 것입니다.
- 김형준_NHN

이 책은 J2EE 기반의 웹개발에서 개발자, 운영자, 성능 테스터가 성능의 관점에서 고려해야할 실용적인 정보를 담고 있다. 특히 수많은 프로젝트의 성능테스트와 튜닝을 수행하면서 발견된 문제점 중 자주 발생하고 문제가 심각한 부분에 대하여 실제 사례와 함께 정리하여 제공하기 때문에 독자는 Java 개발 프로젝트에서 실제 사용가능한 핵심 튜닝 정보를 이 한권의 책으로 습득 가능할 것이다. 또한 오픈소스 도구 및 실제 사용되는 상용도구의 체험판을 번들로 수록하여 독자에게 유익한 도구를 사용할 수 있는 기회를 제공하고 있다.
부디 이 책을 통해 많은 사람이 성능 장애라는 악몽으로부터 해방되기를 기원한다.
- 박종빈_삼성 SDS Software 테스트 팀 수석보

사실 국내 프로젝트 현실은 엔지니어들에게 성능 좋은 시스템 개발을 요구하기보다는 빨리 개발하라고 재촉하기 일쑤지만 좋은 엔지니어라면 자신의 역량을 다른 사람과 차별화 하기 위해 좋은 코드, 더욱 성능 좋은 코드를 개발할 수 있도록 노력해야 한다고 생각합니다.
이 책은 GC, Reflection, Monitoring 같은 자칫 지겨워지기 쉬운 주제를 편하게 읽을 수 있게 설명했고, 실무에 적용하기 쉽도록 저자가 직접 경험한 사례를 소개한 가치있는 책입니다. 성능 관련한 국내외 서적이 시중에 별로 없는 상황에서 이 책은 노력하는 엔지니어들에게 Effective하고 Efficency한 방법을 알려 줄거라고 믿습니다.
- 황상철_삼성 SDS Engineering Methodology 팀 책임

이상민 저자

이상민

1997년 삼성 SDS에 입사하여 현재 TA팀에서 연간 약 40개 프로젝트의 자바 성능 튜닝 및 성능 테스트 업무를 수행하고 있다. 자바 관련 자격증인 SCEA, SCBCD, SCWCD, SCJP를 보유하고 있으며, 사내 자바 커뮤니티의 마스터로 활동 중이다. 멀티캠퍼스 자바 관련 교재를 다수 집필하였고, 사내 강사 및 온라인 과정 튜터로도 활동하고 있다. 번역서로는 「Java Language Specification」(에이콘, 2007)이 있다

부록 CD 가이드

01. 디자인 패턴 꼭 써야 한다
나초보씨 소개
들어가며
적어도 MVC 모델은 적용해야죠
J2EE 디자인 패턴이란?
J2EE 디자인 패턴에 대해서 간단히 알아보자
Transfer Object 패턴
Service Locator 패턴
정리하며

02. 도대체 GC는 언제 발생할까?
들어가며
GC란?
GC의 원리
GC의 종류
4가지 GC 방식
강제로 GC 시키기
정리하며

03. 내가 만든 프로그램의 속도를 알고 싶다
들어가며
프로파일링 툴(프로파일러)이란?
System 클래스
System.currentTimeMillis와 System.nanoTime
StopWatch 클래스 만들기
정리하며

04. 왜 자꾸 String을 쓰지 말라는 거야?
들어가며
String 클래스를 잘못 사용한 사례
StringBuffer 클래스와 StringBuilder 클래스
String vs StringBuffer vs StringBuilder 
버전에 따른 차이
정리하며

05. 어디에 담아야 하는지…
들어가며
Collection 및 Map 인터페이스의 이해
Set 관련 클래스 중 무엇이 빠를까?
List 관련 클래스 중 무엇이 빠를까?
Map 관련 클래스 중에서 무엇이 빠를까?
Collection 관련 클래스의 동기화
정리하며

06. 지금까지 사용하던 for 루프를 더 빠르게 할 수 있다고?
들어가며
조건문에서의 속도는?
반복 구문에서의 속도는?
사례를 통해서 본 반복 구문의 속도 향상
정리하며

07. static 제대로 한번 써보자
들어가며
static의 특징
static 잘 활용하기
static 잘못 쓰면 이렇게 된다
static과 메모리 릭
정리하며

08. 클래스 정보 어떻게 알아낼 수 있나?
들어가며
reflection 관련 클래스들
reflection 관련 클래스를 사용한 예
reflection 클래스를 잘못 사용한 사례
정리하며

09. synchronized는 제대로 알고 써야한다
들어가며
자바에서 스레드는 어떻게 사용하나?
synchronized를 이해하자
동기화는 이렇게 사용한다 1
동기화는 이렇게 사용한다 2
동기화를 위해서 자바에서 제공하는 것들
정리하며

10. IO에서 발생하는 병목 현상
들어가며
기본적인 IO는 이렇게 처리한다
IO에서 병목이 발생한 사례
그럼 NIO의 원리는 어떻게 되는 거지?
NIO로 복사 작업을 더욱 빠르게
정리하며

11. 로그는 반드시 필요한 내용만 찍자
들어가며
System.out.println의 문제점
System.out.format 메소드
시스템 로그를 보다 간결하게 처리하는 방법
Logger 사용법
Logger 사용 시의 문제점
예외 처리도 이렇게
정리하며

12. JSP와 서블릿에서 발생할 수 있는 여러 문제점 
들어가며
적절한 인클루드 사용하기
자바 빈즈, 잘 쓰면 약 못 쓰면 독
태그 라이브러리도 잘 써야 한다
정리하며

13. DB를 사용하면서 발생할 수 있는 문제점  
들어가며
DB Connection과 Connection Pool, DataSource
DB 쓸 때 닫아야 하는 것들
ResultSet.last() 메소드
JDBC를 사용하면서 유의할 만한 몇 가지 팁
정리하며

14. XML도 잘 쓰자
들어가며
Java에서 사용하는 XML 파서의 종류는?
SAX 파서는 어떻게 사용할까?
DOM 파서는 어떻게 사용할까?
각 파서를 비교해 보자
XML 파서가 문제된 사례
정리하며

15. GC가 어떻게 수행되고 있는지 보고 싶다
들어가며
jvmstat란?
자바 인스턴스 확인을 위한 jps
GC 로그를 남길 수 있는 jstat
jvmstat를 원격으로 볼 수 있게 하는 jstatd
visual하게 GC를 볼 수 있는 visualgc
verbosegc 옵션을 이용한 GC 들여다 보기
정리하며

16. 서버를 어떻게 세팅해야 할까?
들어가며
세팅해야 하는 대상
아파치 웹 서버 세팅
DB Connection Pool 및 스레드 개수 설정
WAS 인스턴스 개수 설정
Session Timeout 시간 설정
GC 값 세팅 및 메모리 설정 방법
정리하며

17. 반드시 튜닝 및 점검해야 하는 대상은?
들어가며
반드시 튜닝해야 하는 대상 선정
왜 로그인 화면을 튜닝(분석)해야 하는가?
황당한 사고 사례
정리하며

18. 모니터링 API인 JMX
들어가며
JMX란?
MBean에 대해서 조금만 더 자세히 알아보자
JConsole을 이용한 WAS 모니터링 방법
원격으로 JConsole을 사용하기 위해서는?
정리하며

19. 어떤 화면이 많이 쓰이는지 알고 싶다
들어가며
웹 로그란?
무료 웹 로그 분석 툴에는 어떤 것이 있나?
AWStats를 사용하여 웹 로그 분석하기
정리하며

20. 원인을 너무나 찾기 어려웠던 사이트
들어가며
문제점을 먼저 확인해야 한다
근본적인 원인을 찾아서
원인은 다른 곳에 있었다
정리하며

21. 자바 기반의 배치 프로그램을 튜닝했던 사례
들어가며
프로젝트의 상황
이럴 때에는 이렇게 접근해야 한다
이렇게 튜닝했다
정리하며

22. 잘 되어 있는 시스템도 튜닝 대상은 있다
들어가며
문제되는 시스템의 상황
공통 클래스는 이렇게 튜닝했다
세부 기능들은 이렇게 튜닝했다
사용자가 순간적으로 몰리는 시점에는…
정리하며

23. 복합적인 문제가 발생한 프로젝트
들어가며
트랜잭션이 사라진단다
스레드를 지속적으로 추가하면 어떻게 될까?
웹 서버가 계속 죽어요
WAS에서 사용자 수를 통제하자
사례 부분을 정리하며

24. 애플리케이션에서 점검해야 할 대상들
들어가며
패턴과 아키텍처는 잘 구성되어 있는가?
기본적인 애플리케이션 코딩은 잘 되어 있는가?
웹 관련 코딩은 잘 되어 있는가?
DB 관련 코딩은 잘 되어 있는가?
서버의 설정은 잘 되어 있는가?
모니터링은 어떻게 하고 있는가?

부록 

01. StopWatchAverage 클래스 소스
02. jstat 옵션
03. NetBeans IDE Profiler 사용하기
04. Visual GC 화면 설명
05. GC Analyzer 사용법

이 책은 세세한 내용을 다루지는 않습니다.

전반적인 흐름을 알려준다고 생각하시고

읽어시면 가볍게 읽으실 수 있으리라 생각됩니다.

다양한 경험을 하셨다는 느낌을 받을 수 있고, 그러한 느낌을 최대한 반영을 하고자 하신 듯 합니다.

하지만, SE 들이 보기에는 좀 부족합니다.

사례 위주의 내용 전계를 펼치나, 핵심 이슈를 놓치지 않은 에세이를 읽듯이 읽으면, 평소에 궁금했던 이슈나 문제에 대한 해결의 길이 보이는 책.

초급자용은 아니고. 일단 어느정도 개발의 경험이 있는 중급 이상의 개발자용으로 봐야 할듯..

초급자는.. 선행학습이 될 수 있으나, 떡!! 하니 감이 오지 않을지도.

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

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

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

닫기

리뷰쓰기

닫기
* 도서명 :
Blog2Book, 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
Blog2Book, 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
Blog2Book, 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

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

자료실