Node Web Development 한국어판 [웹 개발 플랫폼 노드 프로그래밍]
- 원서명Node Web Development (ISBN 9781849515146)
- 지은이데이비드 헤론
- 옮긴이손병대
- ISBN : 9788960772502
- 20,000원
- 2011년 12월 07일 펴냄 (절판)
- 페이퍼백 | 228쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 웹 프로페셔널
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
『Node Web Development 한국어판』은 노드 웹 애플리케이션 개발의 핵심을 찌르는 탁월한 시작점이다. 실용적인 예제를 중심으로, HTTP 서버와 클라이언트 객체, Connect와 Express 프레임워크, 비동기 알고리즘, SQL과 MongoDB 데이터베이스 등을 배운다.
[ 소개 ]
이 책은 노드를 시작하기 위한 가장 이상적인 지침서다. 노드를 설치하는 실용적인 조언부터 시작해서 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 프레임워크를 이용한 사용자 인증을 알아보고, 마지막으로 더 나은 에러 페이지에 대해서도 알아본다.
[ 소개 ]
이 책은 노드를 시작하기 위한 가장 이상적인 지침서다. 노드를 설치하는 실용적인 조언부터 시작해서 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 프레임워크를 이용한 사용자 인증을 알아보고, 마지막으로 더 나은 에러 페이지에 대해서도 알아본다.
목차
목차
- 1장 노드 개요
- 노드의 능력
- 서버 측 자바스크립트
- 노드를 사용해야 하는 이유
- 스레드 기반 아키텍처와 비동기 이벤트 기반 아키텍처
- 성능과 활용
- 더 적은 서버 활용과 그린 웹 호스팅
- ‘노드’ 용어
- 정리
- 노드의 능력
- 2장 노드 설치
- 시스템 요구 사항
- POSIX 시스템(리눅스, 솔라리스, 맥 등)에 설치
- 미리 설치해야 할 것
- 맥 OS X 환경에 맞는 개발자 도구 설치
- 홈(HOME) 폴더에 설치
- 홈 폴더에 설치해야만 하는 이유
- 시스템 전체 폴더에 설치
- MacPort로 맥 OS X에 설치
- homebrew로 맥 OS X에 설치
- 패키지 관리 시스템으로 리눅스에 설치
- 여러 개의 노드 동시 설치
- 홈(HOME) 폴더에 설치
- 설치 확인 명령
- 노드 커맨드라인 툴
- 간단한 스크립트 작성과 실행
- 노드 서버 실행
- 노드 패키지 매니저 설치
- 시스템 시작과 동시에 노드 서버 시작
- 멀티 코어 시스템에서 모든 CPU 사용
- 정리
- 3장 노드 모듈
- 모듈이란?
- 노드 모듈
- 노드가 require('module')을 해석하는 방법
- 모듈 식별자와 패스명
- 애플리케이션의 로컬 모듈
- 애플리케이션 안에 여러 버전의 모듈 넣기
- require.paths를 이용한 시스템 전체 모듈
- 복합 모듈
- npm 노드 패키지 매니저
- npm 패키지 포맷
- npm 패키지 찾기
- npm 명령 사용
- npm 명령 도움말 얻기
- 패키지 정보 보기
- 패키지 설치
- 설치된 패키지 사용
- 현재 설치된 패키지 보기
- 패키지 스크립트
- 설치된 패키지 내용 탐색과 수정
- 설치된 패키지 중 오래된 패키지 업데이트
- 설치된 패키지 제거
- 패키지 개발과 퍼블리싱
- npm 환경 설정
- 패키지 버전 문자열과 범위
- CommonJS 모듈
- 모듈 캡슐화 예제
- 정리
- 모듈이란?
- 4장 웹 애플리케이션 응용
- 수학 마법사 제작
- 웹 프레임워크를 사용하거나 사용하지 않기
- 프레임워크 없이 수학 마법사 구현
- 노드의 라우팅 요청
- URL 쿼리 파라미터 핸들링
- 곱셈 만들기
- 다른 수학 기능 만들기
- 수학 마법사 확장
- 오래 걸리는 계산(피보나치 수)
- 완벽한 웹 서버에서 빠진 기능
- Connect로 수학 마법사 구현
- Connect 설치와 설정
- Connect 프레임워크로 접속
- Express 프레임워크로 수학 마법사 구현
- Express 수학 마법사 구현
- 에러 처리
- URL 파라미터화와 데이터 서비스
- Express에서 URL을 파라미터로 만들기
- 수학 계산 서버(와 클라이언트)
- 수학 서버로 수학 마법사 다시 작성
- 정리
- 수학 마법사 제작
- 5장 간단한 웹 서버, 이벤트 이미터, HTTP 클라이언트
- 이벤트 이미터를 이용해 이벤트 주고받기
- EventEmitter 이론
- HTTP 스니퍼: HTTP 대화 엿듣기
- 기본 웹 서버 구현
- 기본 서버 구현
- 기본 서버 코어(basicserver.js)
- 파비콘 핸들러(faviconHandler.js)
- 스태틱 파일 핸들러(staticHandler.js)
- 기본 서버의 설정(server.js)
- Basic Server에 가상 호스트 설정
- 기본 서버의 짧은 URL 모듈
- 기본 서버 구현
- MIME 타입과 mime npm 패키지
- 쿠키 다루기
- 가상 호스트와 요청 라우팅
- HTTP 클라이언트 요청 만들기
- 정리
- 이벤트 이미터를 이용해 이벤트 주고받기
- 6장 데이터 스토리지와 검색
- 노드를 위한 데이터 스토리지 엔진
- SQLITE3: 가벼운 인프로세스 SQL 엔진
- 설치
- sqlite3로 노트 애플리케이션 구현
- 데이터베이스 추상 모듈: notesdb-sqlite3.js
- 데이터베이스 설치: setup.js
- 콘솔에 노트 출력: show.js
- 노트 웹 애플리케이션: app.js
- 노트 애플리케이션 템플릿
- sqlite3 노트 애플리케이션 실행
- 에러 디버깅과 핸들링
- 다른 SQL 데이터베이스 사용
- 몽구스: 몽고DB와 연결되는 노드 인터페이스
- 몽구스 설치
- 몽구스로 노드 애플리케이션 구현
- 데이터베이스 추상 모듈: notesdb-mongoose.js
- 데이터베이스 초기화: setup.js
- 콘솔에 노트 출력: show.js
- 애플리케이션에 노트 넣기: app.js
- 몽고DB를 지원하는 다른 데이터베이스 모듈
- 사용자 인증 처리 훑어보기
도서 오류 신고
정오표
정오표
[ p109 '다른 수학 기능 만들기' 절 4행 ]
여기서 Math.floor 함수를 이용해 req.a 값을 내림한다는 점에 유념하자.
→ 팩토리얼 함수의 경우 n보다 작은 정수를 모두 곱한 값이므로, Math.floor 함수를 이용해 req.a 값을 내림한다는 점에 유의하자.
[ p112 코드 중 ]
13행부터 마지막 행까지 삭제
2015.2.4 수정사항
[p171 : 3행]
간단하다 --> 간단하다.
[p173 : 4행]
Connent --> Connect