Node.js 하이 퍼포먼스 (성능 분석부터 병목 현상 제거 및 성능 저하 회피까지)

Node.js 하이 퍼포먼스 (성능 분석부터 병목 현상 제거 및 성능 저하 회피까지)

$15.79
Description
Node.js는 서버 쪽에서 자바스크립트를 사용할 수 있게 해주는 도구다. Node.js와 같은 플랫폼에서 성능 최적화를 위해서는 하드웨어의 각 특징을 사용하고, 메모리 관리를 최적으로 해야 한다. 『Node.js 하이 퍼포먼스』는 성능 분석으로 시작했지만, Node.js 개발자의 성능 병목지점을 제거하는 데 매우 도움이 되며, 성능 저하를 미리 회피할 수 있는 개발 패턴을 알려준다. 가비지 컬렉션(Garbage Collection)과 동작의 중요성을 배울 수 있으며, 어떻게 프로세서를 프로파일링 할 수 있는지 파악할 수 있다.
저자

디오고리센데

저자디오고리센데는작업하고있는모든것에완벽을기하려는열정적인개발자다.각사물들이서로연결될뿐아니라외부세상과도연결되는모든사물인터넷에도관심이많다.컴퓨터공학을전공했으며,컴퓨터네트워킹,보안,소프트웨어개발및클라우드컴퓨팅에대한지식을습득했다.
지난10년동안세상의많은임베디드시스템과개발자를연결하는애플리케이션과서비스를개발하기위해여러가지다른도전을해왔으며,과거의인터넷과특이한프로토콜을지금의인터넷과연결할수있는방법을만들어왔다.
씽크디지털(ThinkDigital)에서근무했으며,지난몇년동안이자신의인생에서매우중요한시기였다고생각한다.씽크디지털은컴퓨터네트워킹과보안,자동화,스마트미러링,운송수단관리및인텔리전스등의분야에서서비스를제공한다.
많은오픈소스프로젝트를수행했고,이와관련된모든프로젝트를‘dresende’라는사용자명을가지는깃허브(GitHub)페이지에서찾을수있으며,MIT라이선스를갖고있다.

목차

1장.소개및컴포지션
2장.개발패턴
3장.가비지컬렉션
4장.CPU프로파일링
5장.데이터와캐시
6장.테스트,벤치마크,분석
7장.병목현상

출판사 서평

★이책에서다루는내용★

■제대로정의되고테스트된개발패턴을이용한애플리케이션개발
■성능을향상시키기위한메모리관리및가비지컬렉션
■메모리변경모니터링과힙스냅샷분석
■CPU프로파일링과프로세서를지나치게사용하는패턴을피하는코딩방법
■데이터의중요성과정보캐싱시기에대한이해
■상시코드테스트와필요시벤치마킹을위한자긴학습
■애플리케이션범위의확장과성능향상요소파악

★이책의대상독자★

애플리케이션의성능을향상시키기위해플랫폼에대한더많은지식을얻으려는Node.js개발자를위한책이다.Node.js기본에대한배경지식을갖췄거나,가비지컬렉션에대해잘알면서애플리케이션을더욱견고하게만들고싶은전문가모두에게이책의예제가많은도움이될것이다.

★이책의구성★

1장,‘소개및컴포지션’에서는이책의주제를간략히소개하고,성능분석과벤치마킹의중요성을강조한다.애플리케이션은여러개의더작은컴포넌트들로쪼개질수있으며,애플리케이션내각컴포넌트의복잡도는개발자가관리할수있는수준으로작게유지돼야한다.여기서는개발방법론의중요성을이해해야한다.그리고분석은더쉽게이뤄질수있어야한다.애플리케이션의수명주기상에서성능이더뛰어나거나새로운것이나오면쉽게교체할수있도록복잡도를더작게만들어야한다.
2장,‘개발패턴’에서는성능이떨어지는것을피하거나발견할수있도록도와주는프로그래밍패턴을포함한다.앞으로발생가능한문제점을피하고,간단한패턴이나기법들을선택하는것이무엇보다도중요하다.이를명심해,프로그래밍언어가동작하는방법과이벤트루프의중요성,비동기프로그래밍이최적으로동작하는방법을이해해야한다.프로그래밍언어에서의가장중요한요소인스트림과버퍼도이해해야할것이다.
3장,‘가비지컬렉션’에서는GC의중요성과동작을알려준다.V8메모리관리방법,불필요메모리,메모리누수를이해할수있다.또한애플리케이션을프로파일링하는방법과개발자가객체를제대로사용하지않아발생하는잘못된프로그래밍에의한메모리누수를찾는방법을알수있다.
4장,‘CPU프로파일링’에서는애플리케이션이호스트에독차지해사용할때가언제인지와왜그런지이유를알수있으며,프로세서프로파일링도가능하다.여기서는프로그래밍언어의한계점을이해하고,성능향상과확장을위해애플리케이션을여러개의모듈로쪼갠후각기다른호스트에서동작시키도록하는방법도살펴본다.
5장,‘데이터와캐시’에서는외부적으로저장된애플리케이션데이터를설명하고,그것이애플리케이션의성능에어떠한영향을미치는지살펴본다.애플리케이션내부,디스크,로컬서비스,로컬네트워크서비스,클라이언트호스트에저장하는방법도살펴본다.여기서는각기다른타입의데이터저장방법을알아보고,어떠한단점을가지고있는지,가장최적의방법을선택할때고려해야하는사항은무엇인지살펴본다.데이터가로컬또는외부저장되는방법과데이터의중요도에따라캐싱되는데이터에액세스하는방법을알수있다.
6장,‘테스트,벤치마크,분석’에서는애플리케이션을테스트하고벤치마킹하는방법을살펴본다.살펴보지않은애플리케이션테스트구역이생기지않도록하기위해코드커버리지를강화해야한다.그리고벤치마킹과벤치마크분석을해야한다.성능을향상시키기위해애플리케이션의특정부분을분석하고,벤치마크를수행해어떻게테스트해야하는지이해할수있다.
7장,‘병목현상’에서는애플리케이션외부에서의제약사항을살펴본다.여기서는성능제약이애플리케이션프로그래밍에있는것이아니라외부요소,즉호스트하드웨어,네트워크,클라이언트에있다는것을보여준다.외적요소들로인해애플리케이션의내부또는외부동작이제약받을수있다는것을알게된다.또한그외에클라이언트단의한계도알수있으며,현재성능을향상시키기위해아무것도할수없을때도있음을깨닫게될것이다.

★옮긴이의말★

최근의주된관심사는단연자바스크립트(JavaScript)를기반으로한여러가지새로운기술이다.그중Node.js는생산성향상에기여하며가장많은관심을받고있다.사실Node.js를사용하면간단한서버는수분내에만들어낼수있다.하지만많은장점을내세우고있는Node.js에도엄연히단점이존재하기마련이고,애플리케이션의규모가커지면커질수록이러한단점은쉽게드러난다.
자바스크립트는웹브라우저내에서주로사용하며,다른응용프로그램의내장객체에도접근할수있는기능을가지고있다.자바스크립트는본래넷스케이프커뮤니케이션즈코퍼레이션의브렌던에이크(BrendanEich)가처음에는모카(Mocha)라는이름으로,나중에는라이브스크립트(LiveScript)라는이름으로개발했으며,최종적으로자바스크립트라는이름을갖게됐다.웹페이지안에서객체를자유롭게조정하고브라우저의각종기능을이용하기위해필수적인자바스크립트는웹사이트개발에서필수적인언어로자리매김했고,웹사이트에서많은기능을제공하려는다양한고객들의요구를분석해볼때앞으로자바스크립트의활용은가파르게늘어날것이다.
이책에서기반이되는Node.js는이전보다우리에게더많이친숙해진플랫폼이다.물론여전히많은부분에서업데이트가이뤄지고있지만,기본적인구조와동작원리에는큰변화가일어나고있지않다.이제는Node.js를기반으로애플리케이션을작성할때모든애플리케이션이안고있는이슈인‘성능문제’를고려해야한다고생각한다.물론모든개발자들이성능문제를고려하지않고애플리케이션을작성한다고생각하지는않지만,Node.js에대한장단점을파악해효율적인애플리케이션을작성하는것또한쉽지않을것으로생각한다.
이책은Node.js에적용되는다양한구현방식과프로파일링및최적화기법을기술하면서최고의성능을이끌어낼수있는방법을제시한다.우리는이책을통해많은개발자들이효과적으로Node.js기반의애플리케이션을만들어낼수있길기대한다.최적화와관련해처음시작하는독자뿐아니라빠른시간안에고성능앱을만들어보고자하는개발자에게이책을추천하고싶다.