개발자가 반드시 알아야 할 자바 성능 튜닝 이야기

개발자가 반드시 알아야 할 자바 성능 튜닝 이야기

$28.00
Description
『자바 성능 튜닝 이야기』는 고성능 애플리케이션을 위해 고려 해야 할 복잡한 요소들을 하나하나 짚어 주는 책이다. 장애를 일으키는 반복적인 코딩 이슈부터 시스템 진단, 튜닝 방법에 이르기까지 성능 개선이 필요한 핵심 정보만을 담아 정리하였으며 수년간에 걸친 경험적 사례를 토대로 실무에 적용 가능한 튜닝 노하우를 전수하고 있다.

▶ 이 책은 2008년에 출간된 <자바 성능을 결정짓는 코딩 습관과 튜닝 이야기>(한빛미디어)의 개정판입니다.

저자

이상민

목차

목차
story01.디자인패턴,꼭써야한다.
적어도MVC모델은적용해야죠
J2EE디자인패턴이란?
TransferObject패턴
ServiceLocator패턴
story02.내가만든프로그램의속도를알고싶다.
프로파?일링툴이란?
System클래스
System.currentTimeMillis와System.nanoTime
story03.왜자꾸String을쓰지말라는거야?
String클래스를잘못사용한사례
StringBuffer클래스와StringBuilder클래스
StringvsStringBuffervsStringBuilder
버전에따른차이
story04.어디에담아야하는지…
Collection및Map인터페이스의이해
Set클래스중무엇이가장빠를까?
List관련클래스중무엇이빠를까?
Map관련클래스중에서무엇이빠를까?
Collection관련클래스의동기화
story05.지금까지사용하던for루프를더빠르게할수있다고?
조건문에서의속도는?
반복구문에서의속도는?
반복구문에서의필요없는반복
story06.static제대로한번써보자.
static의특징
static잘활용하기
static잘못쓰면이렇게된다.
static과메모리릭
story07.클래스정보,어떻게알아낼수있나?
reflection관련클래스들
reflection관련클래스를사용한예
reflection클래스를잘못사용한사례
story08.synchronized는제대로알고써야한다.
자바에서스레드는어떻게사용하나?
interrupt()메서드는절대적인것이아니다.
synchronized를이해하자.
동기화는이렇게사용한다-동일객체접근시
동기화는이렇게사용한다-static사용시
동기화를위해서자바에서제공하는것들
JVM내에서synchronization은어떻게동작할까?
story09.IO에서발생하는병목현상
기본적인IO는이렇게처리한다.
IO에서병목이발생한사례
그럼NIO의원리는어떻게되는거지?
DirectByteBuffer를잘못사용하여문제가발생한사례
lastModified()메서드의성능저하
story10.로그는반드시필요한내용만찍자.
System.out.println()의문제점
System.out.format()메서드
로그를더간결하게처리하는방법
로거사용시의문제점
로그를깔끔하게처리하게도와주는slf4j와LogBack
예외처리는이렇게
story11.JSP와서블릿,Spring에서발생할수있는여러문제점
JSP와Servlet의기본적인동작원리는꼭알아야한다.
적절한include사용하기
자바빈즈,잘쓰면약못쓰면독
태그라이브러리도잘써야한다.
스프링프레임워크의간단정리
스프링프레임워크를사용하면서발생할수있는문제점들
story12.DB를사용하면서발생가능한문제점들
DBConnection과ConnectionPool,DataSource
DB를사용할때닫아야하는것들
JDK7에서등장한AutoClosable인터페이스
ResultSet.last()메소드
JDBC를사용하면서유의할만한몇가지팁
story13.XML과JSON도잘쓰자.
자바에서사용하는XML파서의종류는?
SAX파서는어떻게사용할까?
DOM파서는어떻게사용할까?
XML파서가문제가된사례
JSON과파서들
데이터전송을빠르게하는라이브러리소개
story14.서버를어떻게세팅해야할까?
설정해야하는대상
아파치웹서버의설정
웹서버의KeepAlive
DBConnectionPool및스레드개수설정
WAS인스턴스개수설정
SessionTimeout시간설정
story15.안드로이드개발하면서이것만은피하자.
일반적인서버프로그램개발과안드로이드개발은다르다.
구글에서이야기하는안드로이드성능개선
안드로이드분석에도움이되는기본적인툴들
안드로이드앱의상황을확인하는방법은?
systrace를활용하자.
안드로이드에서는이미지처리만잘해도성능이좋아진다.
story16.JVM은도대체어떻게구동될까?
HotSpotVM은어떻게구성되어있을까?
JITOptimizer라는게도대체뭘까?
JRockit의JIT컴파일및최적화절차
IBMJVM의JIT컴파일및최적화절차
JVM이시작할때의절차는이렇다.
JVM이종료될때의절차는이렇다.
클래스로딩절차도알고싶어요?
예외는JVM에서어떻게처리될까?
story17.도대체GC는언제발생할까?
GC란?
자바의Runtimedataarea는이렇게구성된다.
GC의원리
GC의종류
5가지GC방식
강제로GC시키기
story18.GC가어떻게수행되고있는지보고싶다.
자바인스턴스확인을위한jps
GC상황을확인하는jstat
jstat명령에서GC튜닝을위해서가장유용한옵션은두개
원격으로JVM상황을모니터링하기위한jstatd
verbosegc옵션을이용하여gc로그남기기
어설프게아는것이제일무섭다.
story19.GC튜닝을항상할필요는없다.
GC튜닝을꼭해야할까?
GC의성능을결정하는옵션들
GC튜닝의절차
1,2단계:GC상황모니터링및결과분석하기
3-1단계:GC방식지정
3-2단계:메모리크기
4단계:GC튜닝결과분석

story20.모니터링API인JMX
JMX란?
MBean에대해서조금만더자세히알아보자.
VisualVM을통한JMX모니터링
원격으로JMX를사용하기위해서는…
story21.반드시튜닝해야하는대상은?
반드시튜닝해야하는대상선정
왜로그인화면을튜닝(분석)해야하는가?
쇼핑몰사이트에서는…
story22.어떤화면이많이쓰이는지알고싶다.
웹로그란?
웹로그를통해서접근통계를분석하기싫다면…
story23.튜닝의절차는그때그때달라요.
성능튜닝을위한아주기초법칙
성능튜닝Stepbystep
성능튜닝의비법
story24.애플리케이션에서점검해야할대상들
패턴과아키텍처는잘구성되어있는가?
기본적인애플리케이션코딩은잘되어있는가?
웹관련코딩은잘되어있는가?
DB관련코딩은잘되어있는가?
서버의설정은잘되어있는가?
모니터링은어떻게하고있는가?
부록A.JMH설치및설정방법
부록B.jstat옵션
부록C.Cache의활용

출판사 서평

출판사서평
*초,중급개발자도쉽게접근할수있게돕는성능튜닝노하우!
자바애플리케이션의성능은언제나중요한문제이지만,막상개발하는단계에서는성능을고려하지못하는경우가많다.게다가좋은?성능을내는애플리케이션은개발언어,아키텍처,프레임워크등기술에대한깊은이해는물론다양한프로젝트의경험을바탕으로한상황판단에의해완성되므로,초,중급개발자들에게진입장벽이높은업무다.
'자바성능튜닝이야기'는이처럼고성능애플리케이션을위해고려해야할복잡한요소와성능개선방법을쉽게...
*초,중급개발자도쉽게접근할수있게돕는성능튜닝노하우!
자바애플리케이션의성능은언제나중요한문제이지만,막상개발하는단계에서는성능을고려하지못하는경우가많다.게다가좋은성능을내는애플리케이션은개발언어,아키텍처,프레임워크등기술에대한깊은이해는물론다양한프로젝트의경험을바탕으로한상황판단에의해완성되므로,초,중급개발자들에게진입장벽이높은업무다.
'자바성능튜닝이야기'는이처럼고성능애플리케이션을위해고려해야할복잡한요소와성능개선방법을쉽게이해할수있도록이야기형식으로풀어나가면서,개발초기단계부터성능을위해고려해야할점을하나하나짚어준다.
장애를일으키는반복적인코딩이슈부터시스템진단,튜닝방법에이르기까지성능개선에필요한핵심정보를정리했으며,수년간에걸친저자의경험을토대로실무에적용가능한튜닝노하우가고스란히녹아있다.
*이책에서다루는내용
-프로파일링툴,System클래스로프로그램속도개선하기
-메모리에영향을주는String클래스
-ArrayList,HashMap,배열의성능차이
-성능을향상시키는for문과static
-성능에영향을주는클래스와synchronized
-성능이슈를줄이는로그사용방법
-JSP,서블릿,Spring에서발생하는문제점
-DB를사용하면서발생하는문제점
-서버설정
-안드로이드개발시고려해야할사항
-GC(GarbageCollection)튜닝
-JMX모니터링
-애플리케이션에서점검해야할대상들