Node.js, MongoDB와 Angular를 이용한 웹 개발 2/e [웹 개발자들이 반드시 알아야 할 웹 개발 필수 학습서]
- 원서명Node.js, MongoDB and Angular Web Development: The definitive guide to using the MEAN stack to build web applications (2nd Edition) (ISBN 9780134655536)
- 지은이브래드 데일리(Brad Dayley), 브렌든 데일리(Brenden Dayley), 칼렙 데일리(Caleb Dayley)
- 옮긴이테크 트랜스 그룹 T4
- ISBN : 9791161752792
- 40,000원
- 2019년 04월 10일 펴냄
- 페이퍼백 | 708쪽 | 188*235mm
- 시리즈 : 웹 프로페셔널
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
MEAN 스택을 통해 실제로 사용할 수 있는 역동적인 웹사이트와 웹 애플리케이션을 구축할 수 있다. 웹 페이지 로직에서 앵귤러 기술을 사용해 Node.js 서버와 통신할 수 있고, 몽고DB 데이터베이스로부터 필요한 데이터를 얻을 수도 있다. Node.js, 몽고DB, 앵귤러를 결합해 상호 작용이 가능하고, 역동적인 웹 페이지를 구현할 수 있다. 이 책을 통해서 배울 수 있는 내용들은 다음과 같다.
■ Node.js와 익스프레스(Express)를 이용해 확장성(scalability)이 뛰어나고 역동적인 웹 서버 구현하기
■ 자바스크립트로 서버 측 웹 서비스 구축하기
■ 몽고DB를 사용해 웹 애플리케이션 데이터 저장하기
■ Node.js 자바스크립트 코드를 사용해 몽고DB에 접근하고 사용하기
■ 정적 웹 루트(route)와 동적 웹 루트를 선언하고, 이를 지원하기 위한 서버 측 스크립트 구현하기
■ HTML 언어 확장하기 위한 개별 사용자용 앵귤러 컴포넌트 정의하기
■ Node.js 웹 서버와 상호작용할 수 있는 클라이언트 측 서비스 구현하기
■ 풍부한 UI(User Interaction)를 제공하는 동적 브라우저 뷰 구축하기
■ 웹 페이지에 중첩된 컴포넌트 추가하기
■ 클라이언트 애플리케이션 뷰 간의 탐색을 관리하기 위한 앵귤러(Angular) 라우팅 구현하기
이 책에서 다루는 내용
■ Node.js와 익스프레스를 사용해 높은 확장성을 가지고, 동적인 웹 서버 구축하기
■ 웹 애플리케이션을 위한 몽고DB 데이터 저장 방법 구현하기
■ Node.js 자바스크립트 코드를 사용해 몽고DB에 접근하고 연동하기
■ HTML 언어를 확장한 사용자 맞춤형 앵귤러 지시자 정의하기
■ 자바스크립트로 서버 측 웹 서비스 구현하기
■ Node.js 웹 서버와 연동할 수 있는 클라이언트 측 서비스 구현하기
■ 풍부한 사용자 연동 기능을 제공하는 동적 브라우저 뷰 구축하기
■ 웹 애플리케이션과 페이지에 인증된 사용자 계정과 중첩 주석 컴포넌트 추가하기
이 책의 대상 독자
기본적으로 HTML을 이해하고 있으며 최근에 많이 사용되는 프로그래밍 언어로 프로그래밍을 해본 경험이 있는 사람을 대상으로 한다. 자바스크립트를 이미 알고 있다면 좀 더 쉽게 이해할 수 있겠지만, 이 책에서는 자바스크립트의 기초도 다루므로 반드시 미리 알고 시작할 필요는 없다.
이 책의 구성
1부, ‘시작하기’에서는 Node.js, 몽고DB 및 앵귤러 간의 상호 작용에 대한 개요와 세 가지 도구를 사용해 웹 개발 스택 전체를 구성하는 방법에 대해 설명한다. 2장, ‘자바스크립트 기본 학습’에서는 Node.js 및 앵귤러 코드를 구현할 때 필요한 자바스크립트 언어의 기초를 제공하며 자바스크립트 입문서로 활용될 수 있다.
2부, ‘Node.js 학습하기’에서는 Node.js 모듈의 설치에서 구현에 이르는 Node.js 언어 플랫폼에 대해 설명한다. 2부에서는 웹 서버 및 서버 측 스크립트뿐 아니라, 사용자 정의 Node.js 모듈을 구현하는 데 필요한 기본 프레임워크를 제공한다.
3부, ‘몽고DB 학습하기’에서는 몽고DB 데이터베이스 설치에서 Node.js 애플리케이션과의 통합까지 설명한다. 애플리케이션의 요구에 맞게 데이터 모델을 계획하는 방법과 Node.js 애플리케이션에서 몽고DB에 액세스해 상호 작용하는 방법에 대해 설명한다.
4부, ‘익스프레스 학습하기’에서는 Node.js용 익스프레스 모듈과 이를 애플리케이션의 웹 서버로 활용하는 방법에 대해 설명한다. 데이터에 동적 route와 고정 route를 설정하는 방법과 보안, 캐싱 및 기타 웹 서버 기본 사항을 구현하는 방법을 배운다.
5부, ‘앵귤러 학습하기’에서는 앵귤러 프레임워크 아키텍처와 Node.js 스택에 통합하는 방법에 대해 설명한다. 또한 브라우저에서 활용할 수 있는 사용자 맞춤 HTML 구성 요소 및 클라이언트 측 서비스를 만드는 방법에 대해서도 설명한다.
6부, ‘고급 앵귤러 학습하기’에서는 사용자 맞춤 지시자(directive) 및 사용자 맞춤 서비스 작성과 같은 좀 더 향상된 앵귤러 개발 방법에 대해 설명한다. 또한 앵귤러에 내장된 HTTP 및 라우팅 서비스를 사용하는 방법에 대해 배운다. 드래그 앤 드롭 구성 요소를 작성하고 애니메이션을 구현하는 등 풍부한 UI 예제를 이용해 추가로 마무리한다.
목차
목차
- 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장에서 다룰 내용
- Node.js 이해
- 4장. Node.js에서 이벤트, 리스너, 타이머, 콜백 사용하기
- Node.js 이벤트 모델 이해
- 이벤트 콜백 방식과 스레드 방식 비교
- Node.js의 블로킹 입출력
- 대화 예제
- 이벤트 큐에 작업 추가
- 타이머 구현
- nextTick을 사용한 작업 스케줄링
- 이벤트 이미터와 리스너 구현하기
- 콜백 구현
- 콜백 함수에 추가 매개변수 전달하기
- 콜백 내 클로저 구현
- 콜백 체인 구성
- 요약
- 5장에서 다룰 내용
- Node.js 이벤트 모델 이해
- 5장. Node.js의 데이터 입출력 처리
- JSON으로 작업하기
- JSON을 자바스크립트 객체로 변환하기
- 자바스크립트 객체를 JSON으로 변환하기
- 버퍼 데이터를 대상으로 Buffer 모듈 사용하기
- 버퍼 데이터 이해
- 버퍼 생성하기
- 버퍼에 쓰기
- 버퍼에서 읽기
- 버퍼 길이 결정
- 버퍼 복사
- 버퍼 분할
- 버퍼 병합
- 스트림 데이터 사용을 위한 스트림 모듈 사용하기
- Readable 스트림
- Writable 스트림
- Duplex 스트림
- Transform 스트림
- Readable 스트림과 Writable 스트림을 파이프 형태로 연결
- zlib를 사용한 데이터 압축 및 해제
- 버퍼 압축과 해제
- 스트림 압축/해제
- 요약
- 6장에서 다룰 내용
- JSON으로 작업하기
- 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장에서 다룰 내용
- URL 처리
- 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장에서 다룰 내용
- process 모듈 이해하기
- 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장에서 다룰 내용
- 몽고DB 환경 구축하기
- 13장. 몽고DB와 Node.js 시작하기
- Node.js에 몽고DB 드라이버 추가하기
- Node.js에서 몽고DB로 접속하기
- 쓰기 확인 이해하기
- MongoClient 객체를 사용해 Node.js에서 MongoDB 연결하기
- 몽고DB Node.js 드라이버에 사용된 객체 이해하기
- Db 객체 이해
- Admin 객체 이해하기
- Colletion 객체 이해하기
- Cursor 객체 이해하기
- 데이터베이스 접근과 조작하기
- 데이터베이스 나열하기
- 데이터베이스 생성하기
- 데이터베이스 삭제하기
- 데이터베이스 생성, 삭제 및 나열 예제
- 몽고DB 서버 상태 얻기
- 컬렉션 접근 및 조작
- 컬렉션 나열하기
- 컬렉션 생성하기
- 컬렉션 삭제하기
- 컬렉션 생성, 나열, 삭제하는 예제
- 컬렉션 정보 얻기
- 요약
- 14장에서 다룰 내용
- Node.js에 몽고DB 드라이버 추가하기
- 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장에서 다룰 내용
- mongoose 이해
- 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장. 앵귤러 즐기기
- 애니메이션 서비스를 사용하는 앵귤러 애플리케이션 구현
- 이미지를 확대하는 앵귤러 애플리케이션 구현
- 드래그 앤 드롭을 사용하는 앵귤러 애플리케이션 구현
- 별점 평가 컴포넌트 구현
- 요약
도서 오류 신고
정오표
정오표
[p.34: 그림 1.1]
클라이언트 측 스크립트
->
서버 측 스크립트
[p.67: 14행]
var hour = tArr[0];
var minute = tArr[1];
var second = tArr[2];
[p.68: 15행]
var first = w[0];
->
var first = week[0];
[p.70: 12행]
var timeStr = timeArray.join(“:”);
->
var timeStr = timeArr.join ( ":");
[p.70: 아래에서 6행]
if (week.indexOf(day) == -1) {
->
if (week.indexOf(day) != -1) {
[p.73 : 10행]
tray 블록이 실행되든
->
try 블록이 실행되든
[p.85 : 표 3.1]
instal
->
install
[p.90 : 11행]
/sensorify 폴더를
->
/censorify 폴더를
[p.99: 7행]
사용자 맞춤 모듈이나 오브젝트 내에 이벤트를 구현하는 방법도 다룬다.
->
사용자 맞춤 모듈이나 객체 내에 이벤트를 구현하는 방법도 다룬다.
[p.105 : 아래에서 1행]
11 setTimeout(simpleTimeout,50, “50MilliSecond”); <Listing First>
->
11 setTimeout(simpleTimeout,50, “50MilliSecond”);
[p.108 : 5행]
setImmediate(myFunc(),1000)
->
setImmediate(myFunc);
[p.109 : 9행]
pocess.maxTickDepth
->
process.maxTickDepth
[p.111 : 8행]
addListener
->
.addListener
[p.116 : 4행]
3~20번 줄에
->
13~20번 줄에
[p.184: 목록 7.4]
18 }).end
->
18 }).end();
[p.635: 그림 28.5]
->