가입하고 포인트 받기
자바 성능을 결정짓는 코딩 습관과 튜닝 이야기
이상민 지음
한빛미디어
 펴냄
19,800 원
17,820원 
앱에서 포인트받고 구매
376쪽 | 2008-02-29
분량 보통인책 | 난이도 보통인책
상세 정보
그동안 어렵거나 고급 개발자들의 전유물이라고 여겨졌던 고성능 지향 코딩 방법과 튜닝 기법이 편안한 스토리와 함께 펼쳐진다. 주위에서 쉽게 만나 볼 수 있는 초보 개발자 나초보와 함께 재미있게 학습하며 실용적인 개발 노하우를 얻을 수 있다. 실무에서 흔히 겪을 수 있는 사례를 토대로 설명하여 더 높은 수준의 자바 개발자로 도약하는 기회를 제공한다.
더보기
목차

부록 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 사용법

더보기
저자 정보
이상민
삼성 SDS에서 개발을 시작하여, Naver의 성능 엔지니어링 팀에서 일했다. 지금은 NHN엔터테인먼트에서 협업 도구인 두레이(Dooray!)를 개발하고 있다. <자바 성능 튜닝 이야기>, <자바 개발자와 시스템 운영자를 위한 트러블슈팅 이야기> 등 다수의 IT 서적을 집필하였다.
더보기
남긴 글 0
앱에서 바로 보기