Node.js, MongoDB와 Angular를 이용한 웹 개발 2/e
도서명:Node.js, MongoDB와 Angular를 이용한 웹 개발 2/e
저자/출판사:브래드,데일리,브렌든,데일리,칼렙,데일리/에이콘출판
쪽수:708쪽
출판일:2019-04-10
ISBN:9791161752792
목차
1부. 시작하기
1장. Node.js-to-Angular Stack 소개
__기본 웹 개발 프레임워크 이해
____사용자
____브라우저
____웹 서버
____백엔드 서비스
__Node.js-to-Angular Stack 컴포넌트 이해
____Node.js
____몽고DB
____익스프레스
____앵귤러
__요약
__2장에서 다룰 내용
2장. 자바스크립트 기본 학습
__변수 정의하기
__자바스크립트 데이터 형식 이해
__연산자 사용하기
____산술 연산자
____대입 연산자
____비교 연산자와 조건 연산자 사용
__루프 구현하기
____while 루프
____do / while 루프
____for 루프
____for / in 루프
____루프 중단
__함수 만들기
____함수 정의하기
____함수에 변수 전달하기
____함수에서 값 반환
____익명 함수 사용
__변수 범위
__자바스크립트 객체 사용
____객체 문법 사용
____사용자 정의 객체 생성
____프로토타입 객체 패턴 사용
__문자열 조작
____문자열 결합
____부분 문자열 탐색
____문자열에서 단어 바꾸기
____문자열을 배열로 쪼개기
__배열 작업
____배열 결합
____배열을 이용한 반복문
____배열을 문자열로 변환하기
____배열에 항목이 있는지 검사
____배열에 항목을 추가 또는 삭제
__에러 처리 부분 추가
____try/catch 블록
____사용자 정의 예외 처리
____finally 사용
__요약
__3장에서 다룰 내용
2부. Node.js 학습하기
3장. Node.js 시작하기
__Node.js 이해
____누가 Node.js를 사용하나?
____Node.js는 어떤 용도로 사용되나?
____Node.js는 무엇을 제공할까?
__Node.js 설치
____Node.js 설치 위치 살펴보기
____Node.js 실행 파일 검증
____Node.js IDE 선택
__Node.js 패키지 사용
____패키지로 묶인 노드 모듈이란?
____노드 패키지 저장소 이해
____노드 패키지 관리자 사용
____노드 패키지 모듈 찾기
____노드 패키지 모듈 설치
____package.json 사용하기
__Node.js 애플리케이션 작성
____Node.js 패키지 모듈 만들기
____Node.js 패키지 모듈을 NPM 레지스트리에 발행하기
____Nodejs 애플리케이션에서 Node.js 패키지 모듈 사용
__데이터를 콘솔에 쓰기
__요약
__4장에서 다룰 내용
4장. Node.js에서 이벤트, 리스너, 타이머, 콜백 사용하기
__Node.js 이벤트 모델 이해
____이벤트 콜백 방식과 스레드 방식 비교
____Node.js의 블로킹 입출력
____대화 예제
__이벤트 큐에 작업 추가
____타이머 구현
____nextTick을 사용한 작업 스케줄링
____이벤트 이미터와 리스너 구현하기
__콜백 구현
____콜백 함수에 추가 매개변수 전달하기
____콜백 내 클로저 구현
____콜백 체인 구성
__요약
__5장에서 다룰 내용
5장. Node.js의 데이터 입출력 처리
__JSON으로 작업하기
____JSON을 자바스크립트 객체로 변환하기
____자바스크립트 객체를 JSON으로 변환하기
__버퍼 데이터를 대상으로 Buffer 모듈 사용하기
____버퍼 데이터 이해
____버퍼 생성하기
____버퍼에 쓰기
____버퍼에서 읽기
____버퍼 길이 결정
____버퍼 복사
____버퍼 분할
____버퍼 병합
__스트림 데이터 사용을 위한 스트림 모듈 사용하기
____Readable 스트림
____Writable 스트림
____Duplex 스트림
____Transform 스트림
____Readable 스트림과 Writable 스트림을 파이프 형태로 연결
__zlib를 사용한 데이터 압축 및 해제
____버퍼 압축과 해제
____스트림 압축/해제
__요약
__6장에서 다룰 내용
6장. Node.js의 파일 시스템 접근
__동기적 파일 시스템 호출 대 비동기적 파일 시스템 호출
__파일 열기 및 닫기
__파일 쓰기
____간편한 파일 쓰기
____동기적 파일 쓰기
____비동기적 파일 쓰기
____스트리밍 파일 쓰기
__파일 읽기
____간단한 파일 읽기
____동기적 파일 읽기
____비동기적 파일 읽기
____스트리밍 방식 파일 읽기
__기타 파일 시스템 작업
____경로 존재 검증하기
____파일 정보 확인
____파일 목록 나열
____파일 삭제
____파일 잘라내기
____디렉터리 생성과 삭제
____파일명과 디렉터리명을 변경
____파일 변경 내역 관찰
__요약
__7장에서 다룰 내용
7장. HTTP 서비스를 Node.js로 구현
__URL 처리
____URL 객체 이해
____URL 구성 요소 해석
__질의 문자열과 폼 매개변수 처리
__요청, 응답, 서버 객체 이해
____http.ClientRequest 객체
____http.ServerResponse 객체
____http.IncomingMessage 객체
____HTTP 서버 객체
__Node.js에서 HTTP 클라이언트와 HTTP 서버 구현하기
____정적 파일 제공
____동적 GET 서버 구현
____POST 서버 구현
____외부 소스와의 상호 작용
__HTTPS 서버와 HTTPS 클라이언트 구현
____HTTPS 클라이언트 생성
____HTTPS 서버 생성
__요약
__8장에서 다룰 내용
8장. Node.js에서 구현하는 소켓 서비스
__네트워크 소켓 이해하기
__TCP 서버와 소켓 객체 이해하기
____net.socket 객체
____net.서버 객체
__TCP 소켓 서버와 클라이언트 구현
____TCP 소켓 클라이언트 구현
____TCP 소켓 서버 구현
__TLS 서버와 TLS 클라이언트 구현하기
____TLS 소켓 클라이언트 생성
____TLS 소켓 서버 생성
__요약
__9장에서 다룰 내용
9장. Node.js의 다중 프로세서를 사용한 애플리케이션 확장하기
__process 모듈 이해하기
____입출력 파이프 처리 이해하기
____프로세스 시그널 이해
__process 모듈로 하는 프로세스 실행 제어
__process 모듈의 정보 가져오기
__자식 프로세스 구현
____ChildProcess 객체 이해
____exec()을 사용해 다른 프로세스의 시스템 명령 실행하기
____execFile()을 사용해 다른 프로세스의 실행 가능 파일을 수행하기
____spawn()을 사용해 다른 Node.js 객체에서 프로세스 생성하기
____자식 프로세스 포크 구현
__프로세스 클러스터 구현
____cluster 모듈 사용
____worker 객체 이해
____HTTP 클러스터 구현하기
__요약
__10장에서 다룰 내용
10장. 추가 Node.js 모듈 사용하기
__os 모듈 사용하기
__util 모듈 사용
____문자열 가공하기
____객체 형식 확인
____자바스크립트 객체를 문자열로 변환하기
____기타 객체 기능 상속받기
__dns 모듈 사용하기
__crypto 모듈 사용하기
__기타 노드 모듈 및 객체
__요약
__11장에서 다룰 내용
3부. 몽고DB 학습하기
11장. NoSQL과 몽고DB 이해하기
__왜 NoSQL인가?
__몽고DB 이해하기
____컬렉션 이해하기
____문서 이해하기
__몽고DB 데이터 형식
__데이터 모델 계획
____문서 참조를 이용한 데이터 정규화
____내장된 문서로 데이터 비정규화하기
____제한 컬렉션 사용
____원자적 쓰기 연산 이해하기
____문서 크기의 증가 고려하기
____인덱싱, 샤딩과 복제
____큰 컬렉션 대 많은 컬렉션
____데이터 수명 주기 결정
____데이터 사용성과 성능 고려하기
__요약
__12장에서 다룰 내용
12장. 몽고DB 시작하기
__몽고DB 환경 구축하기
____몽고DB 설치하기
____몽고DB 시작하기
____몽고DB 중지하기
____셸 클라이언트에서 몽고DB에 접근하기
__사용자 계정 관리하기
____사용자 목록 출력하기
____사용자 계정 생성하기
____사용자 삭제
__접근 제어 설정하기
____사용자 관리자 계정 생성
____인증 모드 활성화하기
____데이터베이스 관리자 계정 생성하기
__데이터베이스 관리하기
____데이터베이스 목록 출력하기
____현재 사용 중인 데이터베이스 변경하기
____데이터베이스 생성하기
____데이터베이스 삭제하기
____데이터베이스 복사하기
__컬렉션 관리하기
____데이터베이스의 컬렉션 목록 출력하기
____컬렉션 생성하기
____컬렉션 삭제하기
____컬렉션에서 문서 찾기
____컬렉션에 문서 추가하기
____컬렉션에서 문서 삭제하기
____컬렉션의 문서 갱신하기
__요약
__13장에서 다룰 내용
13장. 몽고DB와 Node.js 시작하기
__Node.js에 몽고DB 드라이버 추가하기
____Node.js에서 몽고DB로 접속하기
____쓰기 확인 이해하기
____MongoClient 객체를 사용해 Node.js에서 MongoDB 연결하기
__몽고DB Node.js 드라이버에 사용된 객체 이해하기
____Db 객체 이해
____Admin 객체 이해하기
____Colletion 객체 이해하기
____Cursor 객체 이해하기
__데이터베이스 접근과 조작하기
____데이터베이스 나열하기
____데이터베이스 생성하기
____데이터베이스 삭제하기
____데이터베이스 생성, 삭제 및 나열 예제
____몽고DB 서버 상태 얻기
__컬렉션 접근 및 조작
____컬렉션 나열하기
____컬렉션 생성하기
____컬렉션 삭제하기
____컬렉션 생성, 나열, 삭제하는 예제
____컬렉션 정보 얻기
__요약
__14장에서 다룰 내용
14장. Node.js에서 몽고DB 문서 다루기
__데이터베이스 변경 선택 사항 이해하기
__데이터베이스 갱신 연산자 이해하기
__컬렉션에 문서 추가하기
__컬렉션에서 문서 검색하기
____컬렉션의 문서 갱신
__컬렉션 문서를 원자적으로 수정하기
__컬렉션에 문서 저장하기
__컬렉션에 문서 삽입을 위해 upsert를 사용하기
____컬렉션에서 문서 삭제하기
____컬렉션에서 하나의 문서 삭제하기
__요약
__15장에서 다룰 내용
15장. Node.js에서 몽고DB에 접근하기
__데이터 세트 소개하기
__query 객체 이해하기
__options 객체 이해하기
__문서의 특정 세트 탐색하기
__문서 세기
__결과 세트 제한하기
____크기로 결과를 제한하기
____객체의 반환된 필드 제한하기
____페이징 결과 나타내기
__결과 세트 정렬하기
__고유 필드 값 검색하기
__결과 분류하기
__집계 결과를 사용한 맵리듀스 적용하기
____aggregate() 메서드 이해하기
____집계 프레임워크 연산자 사용하기
____집계 수식 연산자 구현하기
____집계 예제
__요약
__16장에서 다룰 내용
16장. mongoose를 사용한 스키마 구조화 및 검증하기
__mongoose 이해
____추가 객체
__mongoose를 사용해 몽고DB에 연결하기
__스키마 정의하기
____패스 이해하기
____스키마 정의 및 생성하기
____스키마에 인덱스 추가하기
____Unique 필드 구현하기
____Required 필드로 강제하기
____Schema 모델에 메서드 추가하기
____Words 데이터베이스에서 스키마 구현하기
__모델 컴파일하기
__Query 객체 이해하기
____Query 데이터베이스 동작 설정하기
____Query 데이터베이스 옵션 설정하기
____Query 연산자 설정하기
__문서 객체 이해하기
____Mongoose를 사용해 문서 탐색하기
____Mongoose를 사용해 문서 추가하기
____Mongoose를 사용해 문서 갱신하기
____변경된 문서 저장하기
____단일 문서 갱신하기
____여러 문서 갱신하기
__Mongoose를 사용해 문서 삭제하기
____단일 문서 삭제하기
____여러 문서 삭제하기
__Mongoose를 사용해 문서 집계하기
____검증 프레임워크 사용하기
____미들웨어 함수 구현하기
__요약
__17장에서 다룰 내용
17장. 고급 몽고DB 개념
__인덱스 추가
__제한 컬렉션 사용
__복제 적용하기
____복제 전략
____복제 세트 배포
__샤딩 구현
____샤딩 서버 형식
____샤드 키 선택
____분할 메서드 선택
____샤드 몽고DB 클러스터 배포
__몽고DB 수리
__몽고DB 백업
__요약
__18장에서 다룰 내용
4부. 익스프레스 학습하기
18장. Node.js에서 익스프레스 구현하기
__익스프레스 시작하기
____익스프레스 설정 구성
____익스프레스 서버 시작하기
__route 환경 구성
____route 구현
____매개변수를 route에 적용
__Request 객체 사용
__Response 객체 사용
____헤더 설정
____상태 설정
____응답 전송
____JSON 응답 값 전송
____파일 전송
____다운로드 응답 전송
____응답 리다이렉팅
__템플릿 엔진 구현
____엔진 정의
____지역 변수 추가
____템플릿 생성
____응답에서의 템플릿 렌더링
__요약
__19장에서 다룰 내용
19장. 익스프레스 미들웨어 구현
__미들웨어의 이해
____전역적으로 경로에 미들웨어 할당하기
____단일 route에 미들웨어 할당하기
____다수의 미들웨어 기능 추가하기
__query 미들웨어 사용하기
__정적 파일 제공하기
____POST 보디 데이터 처리
__쿠키 보내기 및 받기
__세션 구현
__기본 HTTP 인증 적용
__세션 인증 구현
__사용자 정의 미들웨어 생성
__요약
__20장에서 다룰 내용
5부. 앵귤러 학습하기
20장. 타입스크립트로 뛰어들기
__다양한 데이터 형식 익히기
__인터페이스의 이해
__클래스 구현
____Class 상속
__모듈 구현
__함수의 이해
__요약
__21장에서 다룰 내용
21장. 앵귤러 시작하기
__왜 앵귤러인가?
__앵귤러의 이해
____모듈
____지시자
____데이터 바인딩
____의존성 주입
____서비스
__책임 분리
__환경에 앵귤러 추가
__앵귤러 CLI 사용
____CLI로 콘텐츠 생성
__기본 앵귤러 애플리케이션 생성
____첫 앵귤러 앱 생성
____NgModule의 이해와 사용
____앵귤러 부트스트래퍼 생성하기
__요약
__22장에서 다룰 내용
22장. 앵귤러 컴포넌트
__컴포넌트 설정
선택자 정의
__템플릿 작성
____앵귤러 애플리케이션에서의 인라인 CSS와 HTML 사용
__생성자 사용
__외부 템플릿 사용
____의존성 주입
____의존성 주입을 사용한 중첩 컴포넌트 작성
____의존성 주입을 통한 데이터 전달
____입력을 사용하는 앵귤러 애플리케이션 작성
__요약
__23장에서 다룰 내용
23장. 표현식
__표현식 사용
____기본 표현식 사용
____표현식에서 Component 클래스와 상호 작용
____앵귤러 표현식에서 타입스크립트 사용
__파이프 사용
____내장 파이프 사용
____사용자 정의 파이프 작성
____사용자 정의 파이프 생성
__요약
__24장에서 다룰 내용
24장. 데이터 바인딩
__데이터 바인딩 이해
____보간법
____프로퍼티 바인딩
____속성 바인딩
____클래스 바인딩
____스타일 바인딩
____이벤트 바인딩
____양방향 바인딩
__요약
__25장에서 다룰 내용
25장. 내장 지시자
__지시자의 이해
__내장 지시자 사용
____컴포넌트 지시자
____구조 지시자
____속성 지시자
__요약
__26장에서 다룰 내용
6부. 고급 앵귤러 학습하기
26장. 사용자 정의 지시자
__사용자 정의 속성 지시자 생성
__컴포넌트로 사용자 정의 지시자 생성
__요약
__27장에서 다룰 내용
27장. 이벤트와 변경 감지
__브라우저 이벤트 사용하기
__사용자 정의 이벤트 방출
____상위 컴포넌트 계층 구조에 사용자 정의 이벤트 방출하기
____리스너를 사용한 사용자 정의 이벤트 처리
____중첩 컴포넌트에서의 사용자 정의 이벤트 구현
____자식 컴포넌트에서 부모 컴포넌트의 데이터 삭제하기
__옵서버블의 사용
____옵서버블 객체 생성
____옵서버블로 데이터 변경 관찰하기
__요약
__28장에서 다룰 내용
28장. 웹 애플리케이션에서의 앵귤러 서비스 구현
__앵귤러 서비스의 이해
__내장 서비스 사용
__http 서비스로 HTTP GET 및 PUT 요청 전송
____HTTP 요청 설정
____HTML 응답 콜백 함수의 구현
____간단한 JSON 파일 구현과 http 서비스를 사용한 접근
__http 서비스를 사용한 간단한 모의 서버 구현
____간단한 모의 서버 구현 및 http 서비스를 사용한 서버 항목 업데이트
__router 서비스로 뷰 변경하기
____앵귤러에서 routes 사용하기
____간단한 라우터 구현
__탐색 바를 사용한 라우터 구현
__매개변수를 사용한 라우터 구현
__요약
__29장에서 다룰 내용
29장. 사용자 정의 앵귤러 서비스 생성하기
__앵귤러 애플리케이션에 사용자 정의 서비스 통합하기
____애플리케이션에 앵귤러 서비스 추가하기
__상수 데이터 서비스를 사용하는 간단한 애플리케이션 구현
__데이터 변환 서비스 구현
__변수 데이터 서비스 구현
__프로미스를 반환하는 서비스 구현
__공유 서비스 구현
__요약
__30장에서 다룰 내용
30장. 앵귤러 즐기기
__애니메이션 서비스를 사용하는 앵귤러 애플리케이션 구현
__이미지를 확대하는 앵귤러 애플리케이션 구현
__드래그 앤 드롭을 사용하는 앵귤러 애플리케이션 구현
__별점 평가 컴포넌트 구현
__요약