High Performance JavaScript 자바스크립트 성능 최적화 - 느린 자바스크립트를 잡아라
니콜라스 자카스 지음, 한선용 옮김 / 한빛미디어 / 2011년 9월
평점 :
절판


- 책의 구성
각 챕터의 분량은 적은 분량으로 구성되어 있습니다. 마지막 부분인 요약에서 해당 챕터의 핵심사항을 다시 한번 정리해주고, 이전에 설명한 내용을 강조합니다.

컴파일러 입장에서 자바스크립트 코드를 분석하는 것 같은 느낌입니다.

자바스크립트가 어떻게 컴파일되고, 어떻게 브라우저에서 동작하는지 궁금하지 않은가요? 브라우저에서 메모리나 스택관리는 어떻게 하는지 궁금하지 않은가요? 같은 결과를 가져온다면 클라이언트 혹은 서버에서 처리하는게 낫지 않을까요? 같은 결과를 출력하고 같은 일을 수행하더라도 처리시간이 다르다면 여러가지 방법 중 어떤 것을 선택할 수 있을까요?

1번이 아닌 200,000번으로 반복 수행 해보면 어떤 방법이 빠르고 메모리 부담이 적은지 알 수 있습니다. 자바스크립트 예제 코드와 200,000번의 수행시간 그래프로 성능차이를 제시하고 있습니다. 또한 가능한한 모든 브라우저에서 테스트 한 결과를 첨부합니다.

같은 주제에 대하여 여러 개의 방법과 실험데이터를 제시함으로써 어떤 방법이 최선인지 그 과정을 제시하는게 책 구성의 주된 특징이고 가장 큰 장점입니다.

- 책의 내용 요약
한마디로 "자바스크립트 자체가 느린것이 아닙니다. 자바스크립트 엔진이 느린것도 아닙니다. 여러분이 자바스크립트 코드가 느린 것입니다." 라고 요약할 수 있을 것 같습니다.
전체용량은 동일한 파일들 이지만 요청하는 순서와 방식에 따라 체감속도가 달라질 수 있습니다.
자바스크립트 태그의 위치와 연결된 외부파일의 개수와 크기에 따라 전체 웹페이지의 로딩시간이 달라집니다. 웹브라우저가 외부파일을 모두 다운로드받고 자바스크립트 태그를 실행하고 난 다음에 페이지를 내려받기 때문입니다.
반복적인 객체 멤버에의 중첩된 접근, 스코프 체인의 확장 요소 사용 등의 사소한 습관이 성능을 저하시킬 수 있다고 지적합니다.
문자열 치환, 탐색에 있어서 정규표현식을 많이 사용합니다. 정규표현식은 유용하면서도 잘못작성하면 수행시간이 오래걸리기도 합니다. 극단적인 예로 정규표현식 한줄로도 브라우저를 멈추게 할 수도 있습니다(예전 구글 입사시험 문제 였다고 합니다). 정규표현식을 최적화된 형태로 작성하는 것은 매우 어렵지만 이 책에서 제시하는 내용을 참고하면 적어도 수행시간이 적게 걸리도록 할 수 있습니다. 단, 정규표현식 자체의 기초적인 부분에 대한 설명(구성하는 방법 등)은 본문에서 언급하지 않으므로 다른 자료를 참고 해야 합니다.
자바스크립트 파일들을 사용자의 웹브라우저에서 다운받은 시간을 줄이려면 어떤 방법들이 있을까요? 스크립스의 소스 파일 합치기, 최소화 하기를 적용할 수 있습니다. 이를 위한 유용한 도구들과 실제 예시를 제공합니다. 그리고 캐시를 활용하는 방법도 설명합니다.
마지막으로 디버깅도구, 프로파일러, 네트워크 분석기 역할을 하는 다양한 도구들을 소개하며 성능분석을 위한 사용사례를 제시합니다.

* 기억에 남는 한마디 - "고성능 애플리케이션을 만드는 일반 원칙은 빌드 타임에 할 수 있는 일을 런타임에 하지말라는 겁니다."

- 책을 읽는 내내 좋았던 점
번역이 아주 매끄럽습니다. 책 곳곳에서 보이는 옮긴이의 부가적인 설명이 이해하는데 정말 도움이 많이 되었습니다. 보통 하단에 역자 주 형식으로 설명하기도 하고 별도의 페이지를 활용해 길게 설명하기도 했습니다. 첨삭지도 같은 설명이 정말 마음에 듭니다.

- 아쉬운 점
이 책은 자바스크립트 관련 입문서가 절대 아닙니다. 책의 예상 독자들은 웹프로그래밍 경험이 있고 자바스크립트로 클라이언트측 프로그래밍을 많이 해본 초급자 이상의 분들에게 적합할 듯 합니다.

댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo