HOME > 상세정보

상세정보

읽기 좋은 자바스크립트 코딩 기법 (11회 대출)

자료유형
단행본
개인저자
Zakas, Nicholas C. 김광호, 역
서명 / 저자사항
읽기 좋은 자바스크립트 코딩 기법 / 니콜라스 자카스 지음 ; 김광호 옮김
발행사항
서울 :   한빛미디어,   2013  
형태사항
304 p. ; 24 cm
원표제
Maintainable Javascript
ISBN
9788979149883
일반주기
유지보수가 쉬운 코드로 팀의 생산성을 높이자  
부록: 1. 자바스크립트 스타일 가이드, 2. 자바스크립트 툴  
서지주기
색인수록
일반주제명
JavaScript (Computer program language)
000 01033camcc2200325 c 4500
001 000045797524
005 20140428180341
007 ta
008 140425s2013 ulk 001c kor
020 ▼a 9788979149883 ▼g 13560
035 ▼a (KERIS)BIB000013017556
040 ▼a 211062 ▼c 211062 ▼d 221022 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.133 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b J41 2013z5
100 1 ▼a Zakas, Nicholas C.
245 1 0 ▼a 읽기 좋은 자바스크립트 코딩 기법 / ▼d 니콜라스 자카스 지음 ; ▼e 김광호 옮김
246 1 9 ▼a Maintainable Javascript
246 3 0 ▼a 자바스크립트 코딩 기법
260 ▼a 서울 : ▼b 한빛미디어, ▼c 2013
300 ▼a 304 p. ; ▼c 24 cm
500 ▼a 유지보수가 쉬운 코드로 팀의 생산성을 높이자
500 ▼a 부록: 1. 자바스크립트 스타일 가이드, 2. 자바스크립트 툴
504 ▼a 색인수록
650 0 ▼a JavaScript (Computer program language)
700 1 ▼a 김광호, ▼e
900 1 0 ▼a 자카스, 니콜라스, ▼e
945 ▼a KLPA

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.133 J41 2013z5 등록번호 121229564 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 세종학술정보원/과학기술실/ 청구기호 005.133 J41 2013z5 등록번호 151322598 도서상태 대출가능 반납예정일 예약 서비스
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.133 J41 2013z5 등록번호 121229564 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실/ 청구기호 005.133 J41 2013z5 등록번호 151322598 도서상태 대출가능 반납예정일 예약 서비스

컨텐츠정보

책소개

유지보수에 '대부분의' 시간과 비용을 쓰는, '거의 모든' 개발자를 위한 책. "우리는 자신만을 위해서가 아니라 다음에 그 코드를 보게 될 사람도 고려하여 코드를 작성해야 한다." 저자 니콜라스 자카스가 전하는 핵심 메시지다. 이 책을 읽고 자신만의 코딩이 아닌, 협업 개발환경에 적합한 코딩 기법을 익힌다면 그동안 많은 개발자를 괴롭혀온 유지보수의 악몽에서 벗어날 수 있다.

-. 유지보수에 '대부분의' 시간과 비용을 쓰는, '거의 모든' 개발자를 위한 책
"우리는 자신만을 위해서가 아니라 다음에 그 코드를 보게 될 사람도 고려하여 코드를 작성해야 한다."
저자 니콜라스 자카스가 전하는 핵심 메시지다. 이 책을 읽고 자신만의 코딩이 아닌, 협업 개발환경에 적합한 코딩 기법을 익힌다면 그동안 많은 개발자를 괴롭혀온 유지보수의 악몽에서 벗어날 수 있다.

-. 코드의 좋은 예 vs 나쁜 예도 비교해주는 친절한 가이드
좋은 예와 나쁜 예의 차이점을 한눈에 알아볼 수 있다.
------
/*
* 각 줄은 단 한 개의 문장만 있어야 하며
* 모든 간단한 문장은 세미콜론으로 마쳐야 합니다.
*/

// 좋은 예
count++;
a = b;

// 나쁜 예: 한 줄에 여러 문장이 있음
count++; a = b
------

어떤 독자를 위한 책인가?
-. 자바스크립트 입문자
-. 팀 프로젝트나 협업을 자주 하는 자바스크립트 개발자

옮긴이의 말
학부 시절에 했던 과제나 학기 프로젝트는 코드가 제대로 동작만 하면 좋은 점수를 얻을 수 있었습니다. 또 차후에 그 코드를 개선하고 관리할 필요도 없었습니다. 그러나 현업에서는 짧게는 몇 달 길게는 몇 년 동안 사용될 코드를 작성하는 것이라 그 품질도 생각해야만 합니다. 그런데 대부분의 개발 업무는 아무것도 없는 상태에서 처음부터 개발하는 일은 거의 드물고 주로 다른 사람이 작성한 코드를 기반으로 이루어집니다. 이 과정에서 자연스레 다른 사람이 작성한 코드를 보며 감탄할 때도 있지만, 도대체 작성한 사람이 누군지 얼굴 한번 보고 싶을 때도 있습니다. 이 책은 바로 이러한 불미스러운(?) 일을 방지하기 위한 책입니다. '다른 사람이 좋지 않은 감정으로 나를 보고 싶어하는 일이 없게 자바스크립트를 개발하는 방법.' 쉽게 말해, 이것이 이 책에 담긴 핵심입니다.
특히 자바스크립트는 언어의 특성상 제대로 관리하지 않으면 복잡도가 감당할 수 없을 정도로 높아질 수 있습니다. 전역 변수/함수를 사용할 수 있고 모든 객체를 원하는 대로 바꿔버릴 수도 있으며 eval()을 사용해 자바스크립트 형태의 문자열을 실행할 수도 있습니다. 물론 이를 적절하게 잘 이용하면 상당히 유용하지만 단순히 편하다는 이유로 혹은 동작한다는 이유로 작성하면 나중에 본인도 왜 이렇게 짰는지 잊어버리고 헤매게 됩니다. 그 코드로 개발해야 하는 담당자는 어서 빨리 퇴근하고 싶다는 생각만 들 뿐이죠. 즉 생산성을 떨어뜨리는 장본인이 되는 것입니다. 이 책에서 스타일 가이드라인과 JSLint를 강조하는 이유입니다.
이 책에서 다루는 내용 대부분은 흔히 있으면 좋지만 없어도 그만인 것으로 생각하기 쉽습니다. 그러나 실제로는 'Part 2 프로그래밍 프랙티스'를 제외하고는 자바스크립트뿐만 아니라 다른 프로그래밍 언어로 개발할 때에도 반드시 필요한 것입니다. 특히 'Part 3 자동화'에서 다루는 내용은 빌드 및 테스트를 자동으로 해주는 CI로 연결되는데 CI는 선택이 아니라 필수라 말하고 싶습니다. 예를 들면 우리는 몸 상태를 알아보기 위해 건강검진을 받거나 인바디 검사를 받습니다. 이런 검사를 우리 몸에 변화가 있을 때마다 우리도 모르는 사이에 자동으로 해준다면 정말 편할 겁니다. 게다가 지속적으로 몸의 상태를 알 수 있으니 건강 관리도 더 열심히 하게 될 것입니다. 이와 마찬가지로 CI는 코드에 변화가 있을 때마다 또는 주기적으로 검사를 수행해서 코드의 품질을 확인하고 자동으로 테스트를 수행합니다. 그리고 그 결과를 우리에게 알려줌으로써 코드 품질을 지속적으로 관리할 수 있도록 환기시켜 주는 역할을 합니다.
설명이 길었습니다만 제가 이 책을 처음 읽었을 때 느꼈던 많은 것을 독자 여러분도 느끼며 그것이 꼭 도움이 되길 바랄 뿐입니다. 마지막으로, 부족한 제 번역을 교정해주시느라 고생하셨을 조희진 에디터님과 박민아 에디터님께 정말 감사하다는 말씀 드리고 싶습니다.
옮긴이_김광호

지은이의 말
웹 개발의 전문화는 어렵고 복잡한 과정을 거쳐 이루어져 왔습니다. 야후 같은 대기업에서도 웹을 전문화시키는 과정에서 많은 시행착오를 겪어왔습니다. 물론 소규모의 기업에서 모든 웹 서비스를 혼자 담당하는 사람이라면 무엇이든 원하는 대로 할 수 있을 겁니다. 하지만 대부분의 프로그래머가 기업이라는 환경에서 일하게 되면서 지금껏 소규모 전투에서 혼자 싸워왔던 군인들이 이제는 팀으로 싸우는 방법을 익혀야 하는 것과 마찬가지가 되었습니다.
저는 1990년대 후반부터 자바스크립트를 공부했습니다. 당시 자바스크립트는 새롭게 등장한 언어라서 공부할 자료가 거의 없었습니다. 저 역시 복잡한 IE와 넷스케이프 내비게이터를 탐구하며 독학으로 자바스크립트를 익혀야 했습니다. 이리저리 실험해보고 가설을 세우고 다시 실험해보며 동작 원리를 알아낼 때까지 모든 과정을 반복했습니다. 운이 좋았던 것인지 이러한 호기심과 노력이 첫 직장에서 큰 도움이 되었습니다. 본격적인 제 커리어의 첫 5년은 자바스크립트 개발자로 시작했습니다. 당시 자바스크립트와 웹 개발 지식은 누구보다 깊이 있다고 자부할 수 있었습니다. 간단한 문제든, 어려운 문제든 대부분 제가 해결할 수 있었습니다. 하지만 제 생각을 함께 토론하거나, 모르는 문제에 관한 조언을 구할 사람이 없다는 점은 힘들었습니다. 게다가 문제를 해결할 수 있는 사람이 회사에서는 저 혼자였기에 더욱더 제 모든 역량을 쏟아부어야만 했습니다.
5년 동안 저는 끊임없는 노력을 통해 기술과 업무 모두 자신할 수 있을 정도로 수준을 향상시켰습니다. 하지만 당시, 저는 다른 사람이 제 코드를 어떻게 볼지는 고민하지 않았습니다. 제가 작성한 코드를 리뷰해주거나 수정해줄 만큼 기술에 대해 잘 아는 사람이 없었기 때문이죠. 순수한 의미에서, 저는 해커였습니다. 원하는 방식대로 코드를 작성했고 잘 바꾸려고 하지도 않았습니다.
6년 차가 되던 해에는 이직을 했습니다. 그런데 새로운 팀에서는 모든 사람이 프로젝트의 전 부분에 대해 코드를 작성해야 했습니다. 저도 자바스크립트와 웹 개발에만 전념할 수는 없었습니다. 저는 서버 사이드 코드를 작성하고 SQL 쿼리를 만드는 데 많은 시간을 보냈습니다. 마찬가지로 백엔드(backend) 개발을 주로 해오던 개발자들도 웹 코드를 작성해야 했습니다. 그 때야 비로소 제가 작성한 코드가 다른 팀원들의 방식과 많이 다르다는 것을 알게 됐고, 문제가 있다는 것을 느꼈습니다.
저는 팀에 더 도움이 되도록 동료들과 같은 방식으로 코드를 작성하기 시작했습니다. 서버 사이드 코드와 SQL은 생소한 부분이라 이 부분에 대해 잘 아는 동료가 작성한 코드의 패턴을 따라 했습니다. 또한 동료에게는 HTML, CSS, 자바스크립트 코딩 패턴을 적용해볼 것을 권하고 이를 표준으로 규정하기 위해 빌드 프로세스에 린트를 추가했습니다. 그 결과 우리 팀은 마치 윤활유가 잘 칠해진 기계처럼 유기적으로 일할 수 있었습니다.
그 후 2006년도에 야후에 입사했을 때, 제게는 업무 처리에 관한 나름의 굳은 신념이 있었습니다. 하지만 그곳에서 접한 건 전혀 다른 세상이었습니다. 제 첫 번째 팀이었던 My Yahoo! 팀은 지금까지 경험한 팀 중에서는 가장 큰 규모였습니다. 간략한 가이드라인이 세워져 있었지만 배울 게 너무나 많았습니다. 새로운 기술, 프로세스, 툴이 매일 쏟아졌습니다. 새로운 환경에 대해 배우기 위해 열심히 노력하며 많은 시간을 투자했고, 동료로부터 최대한 다양한 지식을 얻으려 노력했습니다.
몇 개월 후, 저는 한 가지 문제점을 찾아냈습니다. 이미 익숙해진 프로세스 중에도 항상 옳지만은 않은 부분들이 있었습니다. 게다가 통일된 방법이 없어 많은 사람들이 각자의 방법대로 처리하다가 버그로 이어지기도 했습니다. 이런 상황을 인지하고 있던 매니저는 어느 날 저를 불러 개발 환경을 정리해달라는 말과 함께 지금까지도 저에게 힘이 되는 한마디를 건넸습니다. "당신이 작성한 코드는 잘 동작하는 데다 버그도 적습니다. 다른 사람들이 모두 당신처럼 코드를 작성하게 하고 싶군요." 이에 저는 바로 My Yahoo! 프런트엔드 개발팀에 몇 가지 구조를 도입하는 작업을 시작했습니다.
My Yahoo! 팀에서 성공적인 성과를 보여준 덕분에 2008년 Yahoo! 홈페이지 개편 작업에서는 프런트엔드 관련 리더로 뽑힐 수 있었습니다. 이 프로젝트에서는 20명 이상의 프런트엔드 엔지니어가 같은 코드에서 작업하게 되어, 저의 조직력과 코드 품질 관리 능력을 시험해 볼 좋은 기회였습니다. 몇 달 동안 같이 배우고 협력한 결과, 우리 팀은 많은 사람들이 놀랄 정도로 생산성이 높고 품질이 좋은 코드를 만들어 낼 수 있었습니다. 코드를 작성한 사람과 상관없이 코드에 일관성이 있을 뿐만 아니라, 다른 사람이 작성한 코드를 수정하거나 새로운 기능을 추가하는 데 걸리는 시간도 빨랐습니다. 그 시절 엔지니어링 팀에서 2~3년 동안 우리 팀이 일궈낸 것들은 여전히 제 커리어에서 가장 빛나는 부분 중 하나입니다.
이 책은 제가 야후에 근무한 동안 쌓아온 팁과 기술을 담고 있습니다. 나아가 제 방식대로만 하는 해커 같던 제가 팀을 위해 어느 정도 자신을 포기할 줄 아는 소프트웨어 엔지니어로 어떻게 변했는지를 말하려 합니다. 다시 말해 이 책은 '개인이 아닌, 팀의 일원으로 자바스크립트 코드를 작성하는 방법'에 대한 것입니다.
그러나 '불편한 진실'은 우리가 코드를 유지보수하는 데 대부분의 시간을 보낸다는 사실을 개발자들도 이해하지 못한다는 것입니다. 사실, 우리가 텍스트 에디터를 열고 처음부터 코드를 작성하는 일은 굉장히 드문 경우입니다. 대부분 이미 있는 코드에 새로운 코드를 추가하거나 수정합니다. 그런데 애초에 코드를 유지보수성이 좋게 작성하면 다음에 작성자 본인이나 다른 사람이 그 코드에 작업하더라도 쉽게 수정할 부분을 찾을 수 있습니다. 이러한 이유로 저는 야후에서 동료에게 "우리는 자신을 위해 코드를 작성하는 것이 아니라 다음에 이 코드를 보게 될 사람을 위해 작성하는 것이다."라는 말을 자주 했습니다.
이 책은 자바스크립트 코딩 컨벤션과 이에 대한 논의로 구성되어 있습니다. 가장 유명한 코딩 컨벤션 문서인 '자바 프로그래밍 언어 코드 컨벤션'에서는 다음과 같은 이유로 코딩 컨벤션의 중요성을 언급하고 있습니다.

- 소프트웨어를 사용하면서 드는 비용의 80%는 유지보수에 사용된다.
- 소프트웨어 생명주기 동안 최초 개발자가 끝까지 유지보수를 하는 경우는 거의 없다.
- 코딩 컨벤션은 소프트웨어의 가독성을 향상시켜, 개발자가 새로운 코드를 더 빠르고, 더 완전하게 이해할 수 있게 한다.
- 소스 코드를 제품화 시키려면, 다른 제품들처럼 깔끔하고 잘 패키지화되는 것을 보장할 수 있어야 한다.
이러한 설명은 여전히 맞는 말입니다. 따라서 이 책에서 다루는 컨벤션은 여러분이 자바스크립트 코드를 작성하는 데 최대한 도움이 되도록 구성했습니다.
이 책을 읽는 분은 여기에서 다루는 내용에 대해 열린 마인드일 것이라 생각합니다. 대부분의 테크닉은 다수의 개발자가 같은 코드에서 개발하는 환경에 초점이 맞춰져 있습니다. 팀의 일원이 된다는 의미는 어떤 일에 결정을 내릴 때 자신이 아닌 팀의 입장에서 최선의 결정을 내리는 것이라 생각합니다. 이 말은 경우에 따라 자신의 취향과 생각, 나아가서는 자존심도 포기해야 한다는 것도 의미합니다. 하지만 그 결과로 무엇이든 할 수 있는 능력 있는 팀을 만들 수 있습니다. 이 책이 그러한 훌륭한 팀을 만드는 데 큰 도움이 되길 바랍니다.
지은이_니콜라스 자카스


정보제공 : Aladin

저자소개

니콜라스 자카스(지은이)

2000년부터 주로 프론트엔드 영역에서 웹 애플레케이션을 개발해왔고, 세계에서 가장 큰 웹 사이트 중 하나인 마이 야후!와 야후! 홈페이지, 대기업 인트라넷 애플리케이션을 만들었다. 야후!에서는 선임 기술자로 일하면서 세계에서 가장 방문자 수가 많은 웹 사이트들의 프론트엔드 개발 가이드와 표준을 제시했다. 유명한 강연자이기도 하며 정기적으로 여러 회사와 각종 컨퍼런스, 회합 등에 참여해 프론트엔드 개발의 모범 사례와 신기술에 대해 발표하고 있다. 또한 『프론트엔드 개발자를 위한 자바스크립트 프로그래밍』(인사이트), 『객체지향 자바스크립트의 원리』(비제이퍼블릭), 『읽기 좋은 자바스크립트 코딩 기법』(한빛미디어), 『자바스크립트 성능 최적화』(한빛미디어) 같은 유명한 책의 저자이기도 하며, 정기적으로 블로그 http://www.nczonline.net에 글을 남긴다. 트위터 주소는 @slicknet이다.

김광호(옮긴이)

NHN 지도 지역 개발랩에서 네이버 지도의 프런트엔드를 담당하며 자바스크립트 개발을 시작했다. 소프트웨어 품질 관리에 대해 관심이 많아 사내에서 JavaScript QualityPractice 강의를 하고 있다. NHN에 입사하기 전에는 티맥스소프트 DB실에서 데이터베이스 관련 솔루션을 개발하였으며 그 후 지오투정보기술에서는 GIS 솔루션 개발 업무를 담당했다.

정보제공 : Aladin

목차

목차
옮긴이의 말 = 4
지은이의 말 = 6
표지 이미지 설명 = 10
PART 1 스타일 가이드라인
 CHAPTER 1 기본 포맷
  1.1 들여쓰기 = 25
  1.2 문장 종료 = 28
  1.3 줄 길이 = 30
  1.4 줄 바꿈 = 30
  1.5 빈 줄 넣기 = 31
  1.6 이름 규칙 = 33
   1.6.1 변수와 함수 = 34
   1.6.2 상수 = 35
   1.6.3 생성자 = 36
  1.7 리터럴 값 = 37
   1.7.1 문자열 = 38
   1.7.2 숫자 = 39
   1.7.3 null = 40
   1.7.4 undefined = 41
   1.7.5 객체 리터럴 = 42
   1.7.6 배열 리터럴 = 43
 CHAPTER 2 주석
  2.1 한 줄 주석 = 45
  2.2 여러 줄 주석 = 47
  2.3 주석 쓰기 = 49
   2.3.1 이해하기 어려운 코드 = 50
   2.3.2 오해하기 쉬운 코드 = 51
   2.3.3 특정 브라우저 핵 = 52
  2.4 문서화 주석 = 53
 CHAPTER 3 문장과 표현식
  3.1 중괄호 넣기 = 57
  3.2 복합문에서의 공백 = 58
  3.3 switch 문 = 59
   3.3.1 들여쓰기 = 59
   3.3.2 다음 case 문까지 실행하는 switch 문 = 60
   3.3.3 default 절 = 62
  3.4 with 문 = 63
  3.5 for 반복문 = 64
  3.6 for...in 반복문 = 65
 CHAPTER 4 변수, 함수, 연산자
  4.1 변수 선언 = 69
  4.2 함수 선언 = 72
  4.3 함수 호출문에 공백 넣기 = 74
  4.4 함수 선언하고 바로 호출하기 = 75
   4.4.1 strict 모드 = 76
  4.5 동등 연산자 = 78
  4.6 eval() = 81
  4.7 기본 래퍼 타입 = 82
PART 2 프로그래밍 프랙티스
 CHAPTER 5 UI 레이어 느슨하게 연결하기
  5.1 느슨한 연결이란? = 88
  5.2 CSS에서 자바스크립트 분리하기 = 89
  5.3 자바스크립트에서 CSS 분리하기 = 91
  5.4 HTML에서 자바스크립트 분리하기 = 93
  5.5 자바스크립트에서 HTML 분리하기 = 96
   5.5.1 방법 1. 서버에서 가져오기 = 97
   5.5.2 방법 2. 간단한 클라이언트 사이드 템플릿 = 98
   5.5.2 방법 3. 복잡한 클라이언트 사이드 템플릿 = 101
 CHAPTER 6 전역 선언 방지
  6.1 전역의 문제점 = 106
   6.1.1 이름 충돌 문제 = 106
   6.1.2 변경에 취약한 문제 = 107
   6.1.3 테스트하기 어려워지는 문제 = 107
  6.2 실수에 의한 전역 선언 = 108
   6.2.1 실수를 방지하는 방법 = 109
  6.3 One-Global 접근법 = 110
   6.3.1 네임스페이스 = 112
   6.3.2 모듈 = 114
  6.4 Zero-Global 접근법 = 118
 CHAPTER 7 이벤트 처리
  7.1 고전적인 방법 = 121
  7.2 규칙 1. 애플리케이션 로직을 분리한다 = 122
  7.3 규칙 2. 이벤트 객체를 바로 전달하지 않는다 = 124
 CHAPTER 8 null 비교 금지
  8.1 기본 데이터 타입 알아내기 = 128
  8.2 객체 참조 타입 알아내기 = 130
   8.2.1 함수 알아내기 = 132
   8.2.2 배열 알아내기 = 133
  8.3 프로퍼티 알아내기 = 135
 CHAPTER 9 코드에서 구성 데이터 분리하기
  9.1 구성 데이터란? = 139
  9.2 구성 데이터 분리하기 = 140
  9.3 구성 데이터 저장하기 = 141
 CHAPTER 10 사용자 에러 던지기
  10.1 에러의 본질 = 145
  10.2 에러 던지기 = 146
  10.3 에러를 던지면 좋은 점 = 148
  10.4 에러는 언제 던져야 할까 = 149
  10.5 try...catch 문 = 151
   10.5.1 throw를 쓸 것인가 try...catch를 쓸 것인가 = 152
  10.6 에러 타입 = 153
 CHAPTER 11 객체의 변경 권한
  11.1 변경 권한이 있는 객체란? = 157
  11.2 객체 변경 금지 규칙 = 158
   11.2.1 메서드 오버라이드 금지 = 158
   11.2.2 새로운 메서드 추가 금지 = 160
   11.2.3 메서드 삭제 금지 = 162
  11.3 더 나은 접근법 = 164
   11.3.1 객체 기반 상속 = 164
   11.3.2 타입 기반 상속 = 166
   11.3.3 퍼사드 패턴 = 167
  11.4 폴리필이란? = 168
  11.5 객체 변경을 방지하는 방법 = 169
 CHAPTER 12 브라우저 탐지
  12.1 사용자 에이전트 탐지 = 173
  12.2 기능 탐지 = 176
  12.3 기능 추론 금지 = 178
  12.4 브라우저 추론 금지 = 179
  12.5 무엇을 사용해야 할까? = 183
PART 3 자동화
 CHAPTER 13 파일과 디렉터리 구조
  13.1 좋은 습관 = 189
  13.2 기본 디렉터리 구조 = 191
 CHAPTER 14 앤트
  14.1 설치 = 195
  14.2 빌드 파일 = 196
  14.3 빌드 실행하기 = 197
  14.4 타겟 의존성 = 198
  14.5 프로퍼티 = 199
  14.6 Buildr = 201
 CHAPTER 15 유효성 검사
  15.1 파일 위치 지정하기 = 203
  15.2 태스크 = 204
  15.3 타겟 향상시키기 = 206
  15.4 기타 향상 방법 = 208
  15.5 Buildr 태스크 = 209
 CHAPTER 16 파일 합치기와 굽기
  16.1 태스크 = 211
  16.2 줄 바꿈 = 212
  16.3 헤더와 푸터 = 214
  16.4 파일 굽기 = 215
 CHAPTER 17 최소화와 압축
  17.1 최소화 = 219
   17.1.1 YUI Compressor를 이용한 최소화 = 221
   17.1.2 Closure Compiler를 이용한 최소화 = 223
   17.1.3 UglifyJS를 이용한 최소화 = 225
  17.2 압축 = 228
   17.2.1 실시간 압축 = 228
   17.2.2 빌드 시간 압축 = 229
 CHAPTER 18 문서화
  18.1 JSDoc 툴킷 = 233
  18.2 YUI Doc = 236
 CHAPTER 19 테스트 자동화
  19.1 YUI Test Selenium Driver = 240
   19.1.1 Selenium 서버 설정하기 = 240
   19.1.2 YUI Test Selenium Driver 설정하기 = 240
   19.1.3 YUI Test Selenium Driver 사용하기 = 241
   19.1.4 앤트 타겟 = 243
  19.2 Yeti = 244
  19.3 PhantomJS = 246
   19.3.1 설치와 사용법 = 247
   19.3.2 앤트 타겟 = 248
  19.4 JsTestDriver = 249
   19.4.1 설치와 사용법 = 249
   19.4.2 앤트 타겟 = 250
 CHAPTER 20 통합하기
  20.1 다루지 않았던 것들 = 253
  20.2 빌드 계획하기 = 254
   20.2.1 개발 빌드 = 256
   20.2.2 통합 빌드 = 257
   20.2.3 릴리즈 빌드 = 258
  20.3 CI 시스템 사용하기 = 259
   20.3.1 젠킨스 = 259
   20.3.2 그 외 CI 시스템 = 262
APPENDIX(부록)
 APPENDIX A 자바스크립트 스타일 가이드
  A.1 들여쓰기 = 267
  A.2 줄 길이 = 268
  A.3 기본 리터럴 = 268
  A.4 연산자에 공백 넣기 = 271
  A.5 괄호에 공백 넣기 = 271
  A.6 객체 리터럴 = 272
  A.7 주석 = 274
   A.7.1 한 줄 주석 = 274
   A.7.2 여러 줄 주석 = 275
   A.7.3 주석 어노테이션 = 277
  A.8 변수 선언 = 278
  A.9 함수 선언 = 280
  A.10 이름 규칙 = 282
  A.11 strict 모드 = 285
  A.12 할당 = 286
  A.13 동등 연산자 = 286
  A.14 삼항 연산자 = 286
  A.15 문장 = 287
   A.15.1 간단한 문장 = 287
   A.15.2 return 문 = 287
   A.15.3 복합문 = 287
   A.15.4 if 문 = 288
   A.15.5 for 문 = 289
   A.15.6 while 문 = 290
   A.15.7 do 문 = 290
   A.15.8 switch 문 = 290
   A.15.9 try 문 = 292
  A.16 공백 = 292
  A.17 유의 사항 = 293
 APPENDIX B 자바스크립트 툴
  B.1 빌드 툴 = 295
  B.2 문서 생성기 = 296
  B.3 린트 툴 = 298
  B.4 최소화 툴 = 298
  B.5 테스트 툴 = 299
INDEX = 300

관련분야 신착자료