HOME > 상세정보

상세정보

웹 개발 플랫폼 노드 프로그래밍 (13회 대출)

자료유형
단행본
개인저자
Herron, David 손병대, 역
서명 / 저자사항
웹 개발 플랫폼 노드 프로그래밍 / 데이비드 헤론 지음 ; 손병대 옮김
발행사항
의왕 :   에이콘,   2011  
형태사항
225 p. : 삽화 ; 24 cm
총서사항
Acorn+PACKT technical book
원표제
Node Web development : a practical introduction to Node, the exciting new server-side JavaScript web development stack
ISBN
9788960772502 9788960772106 (set)
일반주기
색인수록  
일반주제명
Web site development Application software --Development Internet programming
000 00000cam c2200205 c 4500
001 000045683625
005 20170810165421
007 ta
008 111222s2011 ggka 001c kor
020 ▼a 9788960772502 ▼g 94560
020 1 ▼a 9788960772106 (set)
035 ▼a (KERIS)BIB000012609967
040 ▼a 211062 ▼c 211062 ▼d 244002 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 006.76 ▼2 22
085 ▼a 006.76 ▼2 DDCK
090 ▼a 006.76 ▼b 2011z8
100 1 ▼a Herron, David
245 1 0 ▼a 웹 개발 플랫폼 노드 프로그래밍 / ▼d 데이비드 헤론 지음 ; ▼e 손병대 옮김
246 1 9 ▼a Node Web development : ▼b a practical introduction to Node, the exciting new server-side JavaScript web development stack
246 3 9 ▼a Node Web development : ▼b practical introduction to Node, the exciting new server-side JavaScript web development stack
260 ▼a 의왕 : ▼b 에이콘, ▼c 2011
300 ▼a 225 p. : ▼b 삽화 ; ▼c 24 cm
440 0 0 ▼a Acorn+PACKT technical book
500 ▼a 색인수록
650 0 ▼a Web site development
650 0 ▼a Application software ▼x Development
650 0 ▼a Internet programming
700 1 ▼a 손병대, ▼e
900 1 0 ▼a 헤론, 데이비드, ▼e
945 ▼a KLPA

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 006.76 2011z8 등록번호 121216020 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 006.76 2011z8 등록번호 121216021 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

노드를 설치하는 실용적인 조언부터 시작해서 HTTP 서버와 클라이언트 애플리케이션 개발 방법을 배운다. 그리고 이 책은 노드의 다양한 활용법을 보여준다. 예를 들어 데이터베이스 스토리지 엔진을 연동한다든가 Connect/Express 프레임워크로 웹사이트를 만들기도 하고, 이런 프레임워크 없이 개발하는 방법도 소개한다. 또한 노드의 CommonJS 모듈 시스템에 대한 정보도 얻을 수 있다. 또한 CommonJS 모듈 시스템을 통해 객체지향 설계의 중요한 부분을 구현한다.

이 책은 노드를 시작하기 위한 가장 이상적인 지침서다. 노드를 설치하는 실용적인 조언부터 시작해서 HTTP 서버와 클라이언트 애플리케이션 개발 방법을 배운다. 그리고 이 책은 노드의 다양한 활용법을 보여준다. 예를 들어 데이터베이스 스토리지 엔진을 연동한다든가 Connect/Express 프레임워크로 웹사이트를 만들기도 하고, 이런 프레임워크 없이 개발하는 방법도 소개한다. 또한 노드의 CommonJS 모듈 시스템에 대한 정보도 얻을 수 있다. 또한 CommonJS 모듈 시스템을 통해 객체지향 설계의 중요한 부분을 구현한다.


★ 이 책에서 다루는 내용 ★

■ 웹 애플리케이션 개발에서 서버 측 자바스크립트 역할의 재발견
■ 성능과 처리량을 위해 잘 알고 있는 아키텍처 선택
■ 서버 측 웹 애플리케이션 개발을 위한 노드 설치와 사용
■ Connect와 Express 애플리케이션 프레임워크의 사용
■ SQL과 몽고DB 데이터베이스 시스템 설정
■ 동기와 비동기 알고리즘의 차이점과 이 차이점이 중요한 이유

★ 이 책의 대상 독자 ★

이 책은 자바스크립트로 서버 측 개발을 하고 싶은 개발자, 즉 더 빠르고 성능 좋은 웹 애플리케이션을 만들고 싶은 개발자를 위한 책이다. 적어도 기본적인 자바스크립트를 이해하고 웹 애플리케이션 개발 경험이 있는 사람에게 권장한다.


★ 이 책의 구성 ★

1장, 노드 개요에서는 노드 플랫폼을 소개한다. 1장은 노드 사용법 외에 기술적인 측면과 설계적인 측면에서 노드를 선택한 이유를 설명한다. 그리고 노드와 서버 측 자바스크립트의 역사뿐 아니라 자바스크립트가 브라우저에 갇혀왔던 이유를 설명한다.

2장, 노드 설치에서는 노드 개발 환경을 구축한다. 물론 여러 시나리오에 따라 소스코드를 컴파일하는 과정이 포함돼 있다. 그리고 노드 서버를 맛보기로 만들어본다.

3장, 노드 모듈에서는 모듈을 설명한다. 모듈은 노드 애플리케이션 개발의 기본 단위다. 3장은 모듈을 이해하고 개발할 수 있게 안내한다. 그리고 노드 패키지 매니저(npm)도 자세히 설명한다. 또한 설치된 패키지를 관리하는 여러 시나리오와 npm 패키지를 개발해 배포하는 방법도 알아본다.

4장, 애플리케이션 응용에서는 노드 애플리케이션 개발에 대한 기초적인 내용을 설명한다. 특히 간단한 애플리케이션을 먼저 만들어보고 이것을 Connect와 Express 프레임워크를 이용해 변형해본다. 예제로 만들 애플리케이션이 간단하므로 이벤트 루프를 이해하는 데 좋은 기회가 된다. 그리고 시간이 오래 걸리는 계산과, 동기/비동기 알고리즘을 알아보고, 무거운 계산을 백엔드 서버로 처리하는 방법을 배운다.

5장, 간단한 웹 서버, 이벤트 이미터, HTTP 클라이언트에서는 HTTP 클라이언트와 서버 객체를 중심으로 설명한다. 서버와 클라이언트 애플리케이션을 각기 만들어 서로 통신하는 방법을 자세히 알아본다.

6장, 데이터 스토리지와 검색에서는 대부분의 애플리케이션에서 필요로 하고 데이터를 오랜 기간 안전하게 저장할 수 있는 데이터 스토리지를 설명한다. 그리고 SQL과 몽고DB 데이터베이스 엔진을 이용해 애플리케이션을 만드는 방법과 Express 프레임워크를 이용한 사용자 인증을 알아보고, 마지막으로 더 나은 에러 페이지에 대해서도 알아본다.

★ 저자 서문 ★

노드를 이용한 웹 소프트웨어 개발 세계에 온 것을 환영한다. 노드는 새롭게 개발된 소프트웨어 플랫폼으로, 자바스크립트를 웹 브라우저에서 해방시켰다. 그리고 서버 측 애플리케이션에서 사용하는 일반적인 소프트웨어 개발 플랫폼으로, 자바스크립트를 사용한다. 노드에는 크롬 브라우저에서 사용하는 매우 빠른 자바스크립트, V8 엔진과 빠르고 튼튼한 비동기 네트워크 I/O 라이브러리가 탑재됐고, 뛰어난 성능과 확장이 용이한 서버를 만드는 데 초점이 맞춰졌다. 그리고 '실시간 웹'을 구현하는 클라이언트 애플리케이션에도 적합하다.

노드 플랫폼은 루비를 비롯한 다른 언어의 웹 서버 컴포넌트로 수년간 개발되다가 2009년 라이언 댈에 의해 형태를 갖췄다. 라이언 댈은 전통적인 스레드 기반의 동시성 모델보다 비동기 이벤트 기반 시스템을 플랫폼의 기반 구조로 선택했다. 당시 스레드 시스템은 개발하기 어렵다는 악명이 높았고, 비동기 이벤트 기반 모델은 이에 비해 훨씬 간단했다. 그리고 커넥션당 하나의 스레드를 유지하는 오버헤드가 적고, 속도도 빨랐다. 노드 목표는 '확장 가능한 네트워크 서버를 구축하는 쉬운 방법'을 제공하는 것이다. 노드는 이벤트 머신(루비)과 Twisted 프레임워크(파이썬) 같은 시스템에 영향을 받아 설계도 비슷하다.

이 책은 노드를 사용해 웹 애플리케이션을 만드는 데 초점을 맞췄다. 그리고 노드를 배우는 데 필요한 중요한 개념을 설명하고 안내한다. 먼저 실제 애플리케이션을 작성해보고, 어떻게 동작하는지 면밀히 분석하고 해부해 어떻게 애플리케이션에 이식할지 설명한다. 노드와 노드 패키지 매니저를 설치한다. 물론 어떻게 설치하는지부터 배우고 노드 모듈과 npm 패키지 개발에 대해서도 배운다. 그리고 여러 애플리케이션을 개발한다. 예를 들어 이벤트 루프가 반응이 없을 정도로 오래 걸리는 계산이나, 무거운 부하를 다른 서버로 분배하는 방법, Express 프레임워크를 이용한 애플리케이션 등을 만들어본다.

★ 옮긴이의 말 ★

노드(Node.js)라는 단어를 처음 접했을 때가 아마 작년 이맘때였을 것이다. 당시 노드는 내게 매력적인 단어는 아니었다. 특히 UI 개발자라는 직업 특성상 서버 측 이야기는 내게 큰 흥미를 주지 못했다. 그리고 정확히 1년이 지났다. 그동안 노드는 또 한 번 급성장을 했고, 내게도 많은 생각의 변화가 있었다. 노드는 더 이상 먼 나라 이야기가 아니라 내 이야기가 됐다. 이제는 이름만 들어도 알 수 있는 내로라하는 기업들이 너도 나도 노드를 활용한 신기술 연마에 여념이 없다. 물론 이것은 나라 밖 이야기다.


항상 신기술의 바람은 우리나라에 한 발짝 느리게 다가온다. 그리고 여전히 물음표를 던지는 사람이 많다. 노드의 성장세는 인정하지만 그럴듯한 성과를 보여주지 못한다고 비판한다. 그 중 가장 뼈아픈 질문은 노드로 성공한 케이스가 있느냐는 것이다. 사실 이 질문의 답은 나도 궁금하다. 물론 성공 사례를 들어가며 설명하는 것이 가장 쉬운 설득 방법임엔 틀림없다. 하지만 가장 확실한 방법은 직접 부딪혀보는 것이다. 직접 경험해본 것만큼 가장 확실한 설득도 없을 것이다.

노드를 직접 경험해보고 싶은 개발자에게 이 책은 그야말로 탁월한 선택이 아닐까 싶다. 이 책 Node Web Development 한국어판은 먼 나라 이야기 같은 노드를 우리 동네 이야기처럼 친절하고 자세하게 설명한다. 노드 설치에서부터 DB 연결까지 전반적인 웹 개발 스펙트럼을 모두 아우렀다. 뿐만 아니라 커맨드라인 도구 사용법과 CommonJS 모듈에 이르기까지 무심코 넘어갈 수 있는 것들도 꼼꼼하게 설명한다. 그리고 노드를 둘러싼 각종 의혹과 궁금증들도 소개한다. 저자는 특히, '왜 노드를 사용해야 하는가?'라는 질문에 대해 다양한 관점에서 실마리를 풀어낸다.

이 책을 번역하는 동안에도 노드는 계속 발전 중이다. 원서의 노드 버전은 0.4.8이었지만 내가 처음 번역을 시작했을 때는 0.5.8 버전이었다. 그리고 현재는 0.6.X 버전이 출시된 상태다. 어쩌면 이 책을 보게 될 여러분은 또 한 번 업그레이드된 노드를 보게 될지도 모르겠다. 그만큼 노드는 빠른 성장을 거듭하는 중이다.
그리고 노드는 단순히 새로운 웹 개발 플랫폼 이상의 의미가 있다. 그동안 브라우저 안에만 머물러 있어야만 했던, 혹은 머무를 수밖에 없었던 자바스크립트, 그리고 각종 오해와 멸시를 당했던 자바스크립트가 이제는 현대적이고 발전된 언어로 재조명되고 있다는 점이다. 나는 이것을 자바스크립트의 대반격이라고 말하고 싶다. 그리고 실제 자바스크립트의 대약진을 기대해본다.


정보제공 : Aladin

저자소개

데이비드 헤론(지은이)

실리콘밸리에서 20년간 개발자이자 품질 엔지니어로서 소프트웨어 업계에 종사 중이다. 가장 최근에는 야후에서 품질 엔지니어링 팀의 아키텍트로, 노드 기반의 새로운 웹 애플리케이션 플랫폼을 연구했다. 썬 마이크로시스템즈(Sun Microsystems)에서 엔지니어로 근무하는 동안에는 자바 SE 품질 엔지니어링 팀의 아키텍터로, 테스트 자동화 도구와 AWT 로봇 클래스를 연구했다. 현재 AWT 로봇 클래스는 GUI 테스트 자동화 소프트웨어에 널리 쓰인다. 그리고 오픈 JDK 프로젝트와 JDK-Distors 프로젝트에도 참여했으며, 자바 1.6 버전의 버그를 찾기 위해 자바 개발자 커뮤니티와 함께 월드 와이드 무스탕 리그레션 컨테스트(Mustang Regressions Contest)를 개최했다. 썬 마이크로시스템즈 이전에는 VXtreme 사에서 비디오 스트리밍 관련 연구를 했는데, 이 회사를 마이크로소프트 사가 인수하면서 결과적으로 이 연구는 윈도우 미디어 플레이어로 상용화됐다. 울렁공 그룹(Wollongong Group)에서는 이메일 클라이언트와 서버 소프트웨어를 만들었고, 이메일 관련 프로토콜을 개선하는 IETF 워킹 그룹의 멤버다. 전기 자동차와 세계 에너지 공급, 기후 변화, 환경 문제에 관심이 많으며 Transition Silicon Valley의 공동 창업자다. 또한 examiner.com의 온라인 저널리스트로서 'Green Transportation Examiner'라는 제목으로 기고했고, 지속적으로 관련 이슈를 블로그(7gen.com)에 쓰고 있으며, 전기 자동차에 관한 토론 웹사이트(visforvoltage.org)를 운영 중이다. Node.JS와 드루팔(Drupal), 닥터 후(Doctor Who) 등의 여러 주제로 자신의 블로그(davidherron.com)에 글을 쓰고 있다.

손병대(옮긴이)

숭실대학교 미디어학부와 영어영문학부를 복수 전공했다. 현재 NHN 모바일 Ajax 팀에서 UI 개발과 더불어 Ajax 실무 강의를 겸하고 있다. 참여했던 대표적인 프로젝트로는 2008년 네이버 메인 개편, 2009년 네이버 지도 개편, 2010년 거리 뷰 프로젝트가 있으며, 2011년 초에는 일본으로 건너가 네이버 재팬 서비스를 지원하기도 했다. 지금은 HTML5 게임을 만들고 있으며, 자바스크립트로 할 수 있는 모든 것에 관심이 많다. 특히 타이타늄 앱 개발과 윈도우 8 앱 개발에도 관심이 많다. 공동 저작한 저서로 『자바스크립트 UI 개발과 Jindo 프레임워크』(2011년)가 있고, 번역서로는 『Node Web Development 한국어판』(2011)이 있다.

정보제공 : Aladin

목차

목차
저자 소개 = 6
감사의 글 = 7
감수자 소개 =8
옮긴이 소개 = 9
옮긴이의 말 =10
들어가며 = 17
1장 노드 개요 = 25
 노드의 능력 = 27
  서버 측 자바스크립트 = 28
 노드를 사용해야 하는 이유 = 29
  스레드 기반 아키텍처와 비동기 이벤트 기반 아키텍처 = 30
  성능과 활용 = 33
  더 적은 서버 활용과 그린 웹 호스팅 = 36
 ‘노드’ 용어 = 37 
 정리 = 37 
2장 노드 설치 = 39
 시스템 요구 사항 = 40 
 POSIX 시스템(리눅스, 솔라리스, 맥 등)에 설치 = 41  
  미리 설치해야 할 것 = 41  
 맥 OS X 환경에 맞는 개발자 도구 설치 = 42  
  홈(HOME) 폴더에 설치 = 42 
   홈 폴더에 설치해야만 하는 이유 = 44  
  시스템 전체 폴더에 설치 = 45  
  MacPort로 맥 OS X에 설치 = 46  
  homebrew로 맥 OS X에 설치 = 47  
  패키지 관리 시스템으로 리눅스에 설치 = 47
  여러 개의 노드 동시 설치 = 48 
 설치 확인 명령 = 49 
  노드 커멘드라인 툴 = 49 
  간단한 스크립트 작성과 실행 = 51 
  노드 서버 실행 = 53 
 노드 패키지 매니저 설치 = 54 
 시스템 시작과 동시에 노드 서버 시작 =56 
  멀티 코어 시스템에서 모든 CPU 사용 = 62 
 정리 = 65 
3장 노드 모듈 = 67 
 모듈이란? = 68
  노드 모듈 = 69 
  노드가 require('module')을 해석하는 방법 = 70  
   모듈 식별자와 패스명 = 70 
   애플리케이션의 로컬 모듈 = 71  
   애플리케이션 안에 여러 버전의 모듈 넣기 = 73 
   require.paths를 이용한 시스템 전체 모듈 = 76
   복합 모듈 = 77 
 npm 노드 패키지 매니저 = 78
  npm 패키지 포맷 = 78
  npm 패키지 찾기 = 81
  npm 명령 사용 = 82
   npm 명령 도움말 얻기 = 83  
   패키지 정보 보기 = 84
   패키지 설치 = 85  
   설치된 패키지 사용 = 86
   현재 설치된 패키지 보기 = 87
   패키지 스크립트 = 88 
   설치된 패키지 내용 탐색과 수정 = 88 
   설치된 패키지 중 오래된 패키지 업데이트 = 89 
   설치된 패키지 제거 = 90 
   패키지 개발과 퍼블리싱 = 90  
   npm 환경 설정 = 93
  패키지 버전 문자열과 범위 = 94
  CommonJS 모듈 = 97
   모듈 캡슐화 예제 = 97  
 정리 = 99 
4장 웹 애플리케이션 응용 = 101 
 수학 마법사 제작 = 102 
  웹 프레임워크를 사용하거나 사용하지 않기 = 102  
 프레임워크 없이 수학 마법사 구현 = 103  
  노드의 라우팅 요청 = 103  
  URL 쿼리 파라미터 핸들링 = 105  
  곱셈 만들기 = 107 
  다른 수학 기능 만들기 = 109
  수학 마법사 확장 = 114
  오래 걸리는 계산(피보나치 수) = 115  
  완벽한 웹 서버에서 빠진 기능 = 120
  Connect로 수학 마법사 구현 = 120
  Connect 설치와 설정 = 122
  Connect 프레임워크로 접속 = 124 
 Express 프레임워크로 수학 마법사 구현 = 127
  Express 수학 마법사 구현 = 128
  에러 처리 = 135
  URL 파라미터화와 데이터 서비스 = 136
   Express에서 URL을 파라미터로 만들기 = 136 
   수학 계산 서버(와 클라이언트) = 137 
   수학 서버로 수학 마법사 다시 작성 = 142
 정리 = 144
5장 간단한 웹 서버, 이벤트 이미터, HTTP 클라이언트 = 147
 이벤트 이미터를 이용해 이벤트 주고받기 =148 
  EventEmitter 이론 = 150 
 HTTP 스니퍼: HTTP 대화 엿듣기 = 152  
 기본 웹 서버 구현 = 155  
  기본 서버 구현 = 156
   기본 서버 코어(basicserver.js) = 156  
   파비콘 핸들러(faviconHandler.js) = 161 
   스태틱 파일 핸들러(staticHandler.js) = 163 
   기본 서버의 설정(server.js) = 164 
   Basic Server에 가상 호스트 설정 = 167 
   기본 서버의 짧은 URL 모듈 = 168  
 MIME 타입과 mime npm 패키지 = 170 
 쿠키 다루기 = 172 
 가상 호스트와 요청 라우팅 = 173
 HTTP 클라이언트 요청 만들기 = 173
 정리 = 177 
6장 데이터 스토리지와 검색 = 179 
 노드를 위한 데이터 스토리지 엔진 = 180 
 SQLITE3: 가벼운 인프로세스 SQL 엔진 = 181 
  설치 = 181  
  sqlite3로 노트 애플리케이션 구현 = 181 
   데이터베이스 추상 모듈: notesdb-sqlite3.js = 182 
   데이터베이스 설치: setup.js = 187 
   콘솔에 노트 출력: show.js = 189 
   노트 웹 애플리케이션: app.js = 190 
   노트 애플리케이션 템플릿 = 195 
   sqlite3 노트 애플리케이션 실행 = 197  
   에러 디버깅과 핸들링 = 199 
  다른 SQL 데이터베이스 사용 = 202 
 몽구스: 몽고DB와 연결되는 노드 인터페이스 = 203 
  몽구스 설치 = 203 
  몽구스로 노드 애플리케이션 구현 = 205 
   데이터베이스 추상 모듈: notesdb-mongoose.js = 205 
   데이터베이스 초기화: setup.js = 210 
   콘솔에 노트 출력: show.js = 211 
   애플리케이션에 노트 넣기: app.js = 211 
  몽고DB를 지원하는 다른 데이터베이스 모듈 = 213 
 사용자 인증 처리 훑어보기 = 214 
 정리 = 218 
 찾아보기 = 219

관련분야 신착자료