목차

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

 

+ Recent posts