책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 웹디자인/홈페이지 > HTML/JavaScript
· ISBN : 9788998139155
· 쪽수 : 492쪽
· 출판일 : 2013-03-27
책 소개
목차
[1부] 소개 및 설정
▣ 01장_ 노드 설치
윈도우에서의 노드 설치
맥 OS X에서의 설치
소스코드를 활용한 노드 설치
- 노드 버전의 선택
- 노드 소스코드 내려받기
- 노드 빌드
- 노드 설치
- 노드 실행
노드 패키지 매니저의 설정 및 활용
- NPM을 활용한 패키지 설치, 업데이트, 제거
정리
▣ 02장_ 노드 소개
이벤트 주도 프로그래밍 방식의 이해
노드와 자바스크립트에서 비동기적 애플리케이션 개발이 쉬운 이유
- 클로저란?
- 클로저가 비동기적 프로그래밍에 도움되는 이유
정리
[2부] 노드 핵심 API
▣ 03장_ 모듈 로딩
노드가 모듈을 로드하는 방식
모듈 내보내기
- 모듈의 로딩
정리
▣ 04장_ 바이너리 데이터의 조작, 인코딩, 디코딩을 위한 버퍼 활용
버퍼의 생성
버퍼의 바이트 가져오기 및 설정
버퍼 잘라내기
버퍼 복사
버퍼 디코딩
정리
▣ 05장_ 이벤트 이미터 패턴을 활용한 이벤트 바인딩 단순화
표준 콜백 패턴의 이해
이벤트 이미터 패턴의 이해
이벤트 타입의 이해
이벤트 이미터 API의 활용
- .addListener() 또는 .on()을 활용한 콜백 바인딩
- 여러 이벤트 리스너의 바인딩
- .removeListener()를 활용한 이벤트 이미터의 이벤트 리스너 제거
- .once()를 통한 일회용 콜백 등록
- .removeAllListeners()를 활용한 모든 이벤트 리스너 제거
커스텀 이벤트 이미터의 개발
- Node 이벤트 이미터의 상속
- 이벤트 내보내기
정리
▣ 06장_ 타이머를 활용한 함수 호출 예약
SETTIMEOUT을 활용한 함수의 실행 지연
CLEARTIMEOUT을 활용한 함수의 실행 취소
함수의 반복 실행 예약 및 취소
PROCESS.NEXTTICK을 활용해 다음 이벤트 루프 반복까지 함수 실행 연기하기
이벤트 루프 블로킹
이벤트 루프 빠져나가기
SETINTERVAL 대신 SETTIMEOUT을 활용한 직렬화 강제 적용
정리
[3부] 파일, 프로세스, 스트림, 네트워크 통신
▣ 07장_ 파일 조회, 읽기, 쓰기
파일 경로의 조작
- 경로 정규화
- 경로 결합
- 경로 해석
- 두 절대 경로 사이에서 상대 경로 찾기
- 경로 구성 요소의 추출
- 경로의 존재 여부 판단
FS 모듈의 소개
- 파일 통계 정보 조회
파일 열기
파일 읽기
- 파일에 쓰기
- 파일 닫기
정리
▣ 08장_ 외부 프로세스의 생성 및 제어
외부 명령의 실행
자식 프로세스의 실행
- 자식 프로세스의 생성
- 자식 프로세스의 데이터 수신
- 자식 프로세스로의 데이터 전송
- 자식 프로세스 종료 시 알림 수신
신호 전달 및 프로세스 죽이기
정리
▣ 09장_ 데이터 스트림 읽기와 쓰기
읽기 가능 스트림의 활용
- 데이터 기다리기
- 스트림의 일시 정지 및 재개
- 스트림이 끝나는 시점의 판단
쓰기 가능 스트림의 활용
- 스트림에 데이터 쓰기
- 스트림의 드레인 시점 기다리기
복잡한 스트림 예제에 대한 고려
- 파일 시스템 스트림의 생성
- 네트워크 스트림의 이해
느린 클라이언트 문제를 피하고 서버 구하기
- 느린 클라이언트 문제의 이해
- 느린 클라이언트 문제의 해결
- stream.pipe()를 활용한 느린 클라이언트 문제 예방 및 읽기 가능 스트림과 쓰기 가능 스트림의 파이핑
정리
▣ 10장_ TCP 서버의 개발
TCP 서버의 생성
- Socket- 객체의 활용
- 유휴 소켓의 이해
- Keep-Alive 설정
- 지연 시간의 활용 또는 미사용
- 클라이언트 커넥션 리스닝
- 서버 닫기
- 에러 처리
간단한 TCP 채팅 서버의 개발
- 커넥션 수신
- 커넥션으로부터 데이터 읽기
- 모든 클라이언트 수집
- 데이터 전달
- 닫힌 커넥션의 제거
- TCP 채팅 서버 활용법
정리
▣ 11장_ HTTP 서버의 개발
HTTP.SERVERREQUEST 객체의 이해
HTTP.SERVERRESPONSE- 객체의 이해
- 헤더 쓰기
- 헤더의 변경 또는 설정
- 헤더의 제거
- 응답 바디 쓰기
HTTP 청크 응답 스트리밍
- 파일 파이핑
- 다른 프로세스의 출력 파이핑
서버 닫기
예제- 1:정적 파일을 제공하는 서버 개발
예제 2: HTTP 청크 응답과 타이머의 활용
정리
▣ 12장_ TCP 클라이언트의 개발
서버 연결
데이터의 전송 및 수신
커넥션 종료
에러 처리
명령행 TCP 클라이언트 예제의 개발
- 서버 연결
- 서버로의 명령행 데이터 전송
- 서버 메시지의 출력
- 커넥션이 끊길 때의 재연결
- 커넥션 닫기
- 클라이언트 한데 정리하기
정리
▣ 13장_ HTTP 요청의 수행
GET 요청하기
다른 HTTP 동사의 활용
- 응답 객체의 검사
- 응답 본문 가져오기
- 응답 본문 스트리밍
HTTP.AGENT를 활용한 소켓 풀링
서드파티 요청 모듈을 활용한 HTTP 요청 단순화
- request 모듈의 설치 및 사용
- 테스트 서버의 생성
- 리다이렉트 따르기
- 요청 옵션의 설정
- 요청 본문 인코딩
- 스트리밍
- 쿠키 보관함의 활용
정리
▣ 14장_ 데이터그램의 활용
UDP의 이해
UDP의 활용법 이해
데이터그램 서버의 개발
- 메시지 리스닝
- 서버 테스트
- 추가 메시지 정보의 검사
간단한 데이터그램 에코 서버의 개발
- 메시지 기다리기
- 전송자에게 메시지 재전송
- 에코 서버 정리
데이터그램 클라이언트의 개발
- 클라이언트의 개발
- 메시지 전송
- 소켓 닫기
간단한 데이터그램 명령행 클라이언트의 개발
- 명령행에서 읽기
- 서버로 데이터 보내기
- 서버로부터 데이터 받기
- 명령행 UDP 클라이언트 정리
데이터그램 멀티캐스트의 이해와 활용
- 멀티캐스트 메시지의 수신
- 멀티캐스트 메시지의 전송
- 데이터그램의 최대 크기
정리
▣ 15장_ TLS/SSL을 통한 TCP 서버 보호
개인 키와 공개 키의 이해
- 개인 키의 생성
- 공개 키의 생성
TLS 서버의 개발
- 서버 초기화
- 커넥션 리스닝
- 클라이언트로부터 데이터 읽기
- 클라이언트로 데이터 보내기
- 접속 종료
TLS 클라이언트의 개발
- 클라이언트 초기화
- 서버 접속
- 서버 인증서의 확인
- 서버로 데이터 보내기
- 서버로부터 데이터 읽기
- 접속 종료
예제 개발
- TLS 채팅 서버의 개발
- TLS 명령행 채팅 클라이언트의 개발
- 클라이언트 인증서의 확인
정리
▣ 16장_ HTTPS를 통한 HTTP 서버 보호
보안 HTTP 서버의 개발
- 서버 옵션의 설정
- 커넥션 리스닝
- HTTPS 클라이언트 인증서의 유효성 검증
HTTPS 클라이언트의 개발
- 클라이언트 초기화
- 요청 보내기
- HTTPS 서버 인증서의 검증
정리
[4부] 모듈 및 애플리케이션 개발과 디버깅
▣ 17장_ 모듈 및 애플리케이션 테스트
테스트 러너의 활용
- 테스트 작성
- 테스트 실행
ASSERTION 테스트 모듈의 활용
- assert 모듈의 활용
- 노드탭의 내장 Assertion 함수 활용
비동기적 모듈의 테스트
정리
▣ 18장_ 모듈 및 애플리케이션 디버깅
CONSOLE.LOG의 활용
노드의 내장 디버거 활용
노드 인스펙터의 활용
정리
▣ 19장_ 콜백 흐름의 제어
부메랑 효과의 이해
함수 선언을 통한 부메랑 효과 방지
비동기 흐름 제어 라이브러리의 활용
- 연속 실행
- 병렬 실행
- 캐스케이딩
- 큐
- 순회
- 매핑
- 리듀싱
- 필터링
- 감지
정리
[5부] 웹 애플리케이션 개발
▣ 20장_ HTTP 미들웨어의 개발 및 활용
커넥트 HTTP 미들웨어 프레임워크의 이해
커스텀 HTTP 미들웨어의 개발
- 비동기적 미들웨어의 개발
- 미들웨어 내에서의 콜백 등록
- 미들웨어 내에서의 에러 처리
커넥트의 내장 HTTP 미들웨어 활용
- 요청 로깅
- 에러 처리
- 정적 파일 서비스
- 쿼리 문자열 파싱
- 요청 본문의 파싱
- 쿠키 파싱
- 세션의 활용
- 다른 미들웨어
정리
▣ 21장_ Express.js를 활용한 웹 애플리케이션 개발
EXPRESS.JS 애플리케이션의 초기화
애플리케이션의 미들웨어 설정
요청 라우팅
- 요청 처리
- 세션 활용
- 라우트 미들웨어의 활용
정리
▣ 22장_ Socket.IO를 활용한 실시간 애플리케이션 개발
웹소켓의 동작 원리 이해
SOCKET.IO를 활용한 웹소켓 애플리케이션 개발
- 서버에서의 Socket.IO 설치 및 실행
- Socket.IO를 활용한 실시간 웹 채팅 개발
- 채팅 애플리케이션의 확장
- 접속 중단 감지
- 사용자 채팅방 분리
- 네임스페이스의 활용
- 레디스를 활용한 서버사이드 애플리케이션 배포
정리
[6부] 데이터베이스 연결
▣ 23장_ node-mysql을 활용한 MySQL 연결
라이브러리를 활용한 MySQL 데이터베이스 연결 및 통신
보안을 염두에 둔 데이터 추가
효과적인 데이터 조회
정리
▣ 24장_ 나노를 활용한 카우치디비 연결
나노 모듈의 설치
데이터베이스 연결 및 생성
도큐먼트 저장
카우치디비 뷰의 생성 및 활용
카우치디비 도큐먼트의 파일 첨부
정리
▣ 25장_ 몽구스를 활용한 몽고디비 연결
몽구스의 설치
몽구스가 모델을 활용해 데이터베이스 접근을 캡슐화하는 원리의 이해
몽고디비 연결
스키마 정의
모델 정의
- 밸리데이터 활용
- 수정자의 활용
- 게터의 활용
- 가상 어트리뷰트의 활용
- 기본값의 활용
- 인덱스의 정의
- DB Ref를 활용한 다른 도큐먼트 참조
- 인스턴스 메서드의 정의
- 스태틱 메서드의 정의
정리