품목정보
발행일 | 2017년 06월 01일 |
---|---|
쪽수, 무게, 크기 | 488쪽 | 857g | 183*235*20mm |
ISBN13 | 9788968486807 |
ISBN10 | 8968486808 |
발행일 | 2017년 06월 01일 |
---|---|
쪽수, 무게, 크기 | 488쪽 | 857g | 183*235*20mm |
ISBN13 | 9788968486807 |
ISBN10 | 8968486808 |
PART I 기초 다지기 CHAPTER 1 앵귤러 준비하기 1.1 Node.js 1.2 NPM 다루기 __1.2.1 패키지 설치 __1.2.2 실습: welcome-msg-app __1.2.3 패키지와 의존 관계 __1.2.4 로컬 환경과 전역 환경 __1.2.5 package.json 1.3 마치며 CHAPTER 2 앵귤러 시작하기 2.1 타입스크립트 __2.1.1 타입 언어 __2.1.2 상위 언어 __2.1.3 열린 언어 __2.1.4 에디터 설정 2.2 Hello, Angular __2.2.1 ng new __2.2.2 ng serve __2.2.3 ng test __2.2.4 타입 선언 정보 2.3 마치며 CHAPTER 3 앵귤러 아키텍처 3.1 뷰를 구성하는 요소 __3.1.1 컴포넌트와 템플릿 __3.1.2 컴포넌트 생명 주기 __3.1.3 컴포넌트 트리 __3.1.4 데이터 바인딩 __3.1.5 마치며 3.2 애플리케이션을 완벽하게 만드는 요소 __3.2.1 서비스와 의존성 주입 __3.2.2 상태 관리 및 공유 __3.2.3 지시자 __3.2.4 파이프 __3.2.5 모듈 3.3 머티리얼 패키지 적용 3.4 마치며 PART II 기본기 향상하기 CHAPTER 4 뷰를 구성하는 기초 4.1 컴포넌트 __4.1.1 컴포넌트의 선언 __4.1.2 메타데이터 __4.1.3 부트스트래핑 __4.1.4 컴포넌트 트리 4.2 템플릿 __4.2.1 절차적 방식과 선언적 방식 __4.2.2 데이터 바인딩 __4.2.3 지시자 __4.2.4 파이프 4.3 마치며 CHAPTER 5 견고한 애플리케이션 만들기 5.1 서비스 __5.1.1 서비스의 생성과 사용 __5.1.2 실습: 마우스 위치 로거 __5.1.3 싱글턴으로서의 서비스 5.2 의존성 주입 __5.2.1 Injectable, Inject 데코레이터 __5.2.2 providers __5.2.3 의존성 주입기 트리 __5.2.4 Host, Optional 데코레이터 5.3 테스트 코드 작성 __5.3.1 서비스 테스트 __5.3.2 컴포넌트 테스트 5.4 디버깅 5.5 마치며 CHAPTER 6 컴포넌트 고급 6.1 독립된 요소: 컴포넌트 __6.1.1 웹 컴포넌트 __6.1.2 컴포넌트와 스타일 정보 __6.1.3 컴포넌트의 독립성을 깨뜨리는 안티패턴 6.2 컴포넌트 간 상태 공유와 이벤트 전파 __6.2.1 부모-자식 컴포넌트 간의 통신 __6.2.2 실습: 컴포넌트 통신 V2 __6.2.3 다양한 상태 공유 시나리오 __6.2.4 싱글턴 서비스를 이용한 상태 공유 6.3 앵귤러 방식의 템플릿 요소 탐색 __6.3.1 ViewChild를 사용한 요소 탐색 __6.3.2 템플릿 참조 변수와 ElementRef __6.3.3 Content Projection과 ContentChild를 사용한 요소 탐색 6.4 컴포넌트 생명 주기 __6.4.1 ngOnInit과 ngOnDestroy __6.4.2 ngAfterContentInit과 ngAfterViewInit __6.4.3 ngOnChanges __6.4.4 ngDoCheck __6.4.5 ngAfterContentChecked와 ngAfterViewChecked __6.4.6 지시자의 생명 주기 6.5 마치며 CHAPTER 7 HTTP 통신과 RxJS 7.1 HttpModule과 Http 서비스 기초 __7.1.1 실습: 초간단 사용자 조회 애플리케이션 __7.1.2 angular-in-memory-web-api 활용 7.2 RxJS __7.2.1 왜 RxJS인가? __7.2.2 RxJS 원리 __7.2.3 RxJS 연산자 활용 __7.2.4 RxJS를 활용한 마우스 위치 로거 코드 개선 7.3 게이트웨이 기반 Http 서비스 활용 __7.3.1 ApiGateway 서비스 __7.3.2 실습: 사용자 관리 애플리케이션 __7.3.3 HTTP 통신 관련 중복 코드 제거 7.4 마치며 CHAPTER 8 폼 다루기 8.1 폼의 구성 __8.1.1 폼 모델 __8.1.2 AbstractControl과 폼의 값 상태 __8.1.3 폼 지시자 __8.1.4 실습: NgModel과 FormControl 8.2 템플릿 주도 폼 __8.2.1 ngModel과 양방향 바인딩 __8.2.2 실습: 템플릿 주도 폼 __8.2.3 폼 유효성 검증 __8.2.4 커스텀 Validator 지시자 작성 8.3 반응형 폼(모델 주도 폼) __8.3.1 ReactiveFormsModule __8.3.2 FormBuilder __8.3.3 FormGroup, FormControlName __8.3.4 실습: 반응형 폼 __8.3.5 실습: 동적 폼 8.4 마치며 CHAPTER 9 앵귤러 동작 원리 9.1 부트스트랩과 컴파일 __9.1.1 애플리케이션의 최초 진입점 __9.1.2 JIT 컴파일 __9.1.3 AOT 컴파일 __9.1.4 부트스트랩 과정 분석 9.2 Zone.js와 변화 감지 __9.2.1 앵귤러를 움직이게 만드는 세 가지 이벤트 __9.2.2 Zone.js를 활용한 비동기 코드 감지 __9.2.3 상태 변화를 일으키는 세 가지 이벤트 __9.2.4 변화 감지 트리와 변화 감지 전략 9.3 마치며 PART III 깊이 들어가기 CHAPTER 10 프로젝트: 상품 관리 애플리케이션 구성 10.1 애플리케이션 설계 __10.1.1 기능 정의 및 도메인 모델 __10.1.2 컴포넌트 트리 10.2 프로젝트 구성 10.3 프로젝트 구현 1: 기본 레이아웃 구현 __10.3.1 주요 컴포넌트 생성 __10.3.2 컴포넌트 구현 코드 __10.3.3 라우터 없이 사이드바 기능 구현 10.4 마치며 CHAPTER 11 모듈과 라우터 11.1 모듈의 분리 __11.1.1 기능 모듈 __11.1.2 핵심 모듈 __11.1.3 모듈의 imports, exports __11.1.4 프로젝트 구현 2: 도메인별 기본 구현 11.2 라우터 기본 __11.2.1 라우터 설정: Route __11.2.2 Routes 등록 __11.2.3 RouterLink, RouterLinkActive __11.2.5 프로젝트 구현 3: 라우터 설정 __11.2.6 라우터 사용의 장점 11.3 라우터 활용 __11.3.1 상태 관리 __11.3.2 Router __11.3.3 ActivatedRoute __11.3.4 가드의 설정 11.4 모듈별 라우터 __11.4.1 컴포넌트 경로 __11.4.2 라우팅 설정 분리하기 __11.4.3 프로젝트 구현 4: 라우터 설정 분리 11.5 마치며 CHAPTER 12 프로젝트: 파이어베이스 사용 12.1 파이어베이스 사용 __12.1.1 프로젝트 생성 __12.1.2 파이어베이스 CLI __12.1.3 파이어베이스 연동 12.2 프로젝트 구현 5 __12.2.1 도메인 모델 클래스 구현 __12.2.2 사용자 세션 기능 구현 12.3 프로젝트 구현 6 __12.3.1 실시간 데이터베이스 사용 __12.3.2 NoCounterService 구현 __12.3.3 DataStoreService 구현 __12.3.4 파이어베이스 보안 규칙 설정 12.4 마치며 CHAPTER 13 프로젝트: 상품 관리 애플리케이션 구현 최종 13.1 프로젝트 구현 7 __13.1.1 카테고리 관리 뷰 __13.1.2 CategoryDetailComponent __13.1.3 CategoryDetailResolverService __13.1.4 CategoryItemComponent __13.1.5 CategoryManagementComponent __13.1.6 CategoryListResolverService 13.2 프로젝트 구현 8 __13.2.1 상품 관리 뷰 __13.2.2 ProductDetailComponent __13.2.3 ProductDetailResolverService __13.2.4 ProductListComponent __13.2.5 ProductListResolverService __13.2.6 CheckedProductSetService __13.2.7 ButtonGroupComponent __13.2.8 ProductBulkUpdaterService __13.2.9 ProductManagementComponent 13.3 프로젝트 최종 구현 __13.3.1 MainDashboardComponent __13.2.2 스피너 __13.3.3 상품 상태 파이프 __13.3.4 CanDeactivate 가드 설정 __13.3.5 세션 가드 13.4 마치며 부록. 자바스크립트의 진화: ES6(ECMAScript 6) 1. ES6 표준의 의미 2. 모듈 시스템 3. 모듈 번들러 4. 실습: area-calculator |
책을 볼때 가장 중요시 하는 것이 있다.
바로 서문과 목차이다.
목차는 책의 전체적인 내용을 알 수 있도록 하고
서문은 글쓴이가 어떤 목적으로 책을 썼는지 알 수 있기 때문이다.
앵귤러에 대해서 잘 알지 못했던 나는
먼저 목차에 대해서 살펴보기로 하였다.
큰 목차를 보면 다음과 같다.
PART I 기초 다지기
CHAPTER 1 앵귤러 준비하기
1.1 Node.js
1.2 NPM 다루기
CHAPTER 2 앵귤러 시작하기
2.1 타입스크립트
2.2 Hello, Angular
2.3 마치며
CHAPTER 3 앵귤러 아키텍처
3.1 뷰를 구성하는 요소
3.2 애플리케이션을 완벽하게 만드는 요소
3.3 머티리얼 패키지 적용
3.4 마치며
PART II 기본기 향상하기
CHAPTER 4 뷰를 구성하는 기초
4.1 컴포넌트
4.2 템플릿
4.3 마치며
CHAPTER 5 견고한 애플리케이션 만들기
5.1 서비스
5.2 의존성 주입
5.3 테스트 코드 작성
5.4 디버깅
5.5 마치며
CHAPTER 6 컴포넌트 고급
6.1 독립된 요소: 컴포넌트
6.2 컴포넌트 간 상태 공유와 이벤트 전파
6.3 앵귤러 방식의 템플릿 요소 탐색
6.4 컴포넌트 생명 주기
6.5 마치며
CHAPTER 7 HTTP 통신과 RxJS
7.1 HttpModule과 Http 서비스 기초
7.2 RxJS
7.3 게이트웨이 기반 Http 서비스 활용
7.4 마치며
CHAPTER 8 폼 다루기
8.1 폼의 구성
8.2 템플릿 주도 폼
8.3 반응형 폼(모델 주도 폼)
8.4 마치며
CHAPTER 9 앵귤러 동작 원리
9.1 부트스트랩과 컴파일
9.2 Zone.js와 변화 감지
9.3 마치며
PART III 깊이 들어가기
CHAPTER 10 프로젝트: 상품 관리 애플리케이션 구성
10.1 애플리케이션 설계
10.2 프로젝트 구성
10.3 프로젝트 구현 1: 기본 레이아웃 구현
10.4 마치며
CHAPTER 11 모듈과 라우터
11.1 모듈의 분리
11.2 라우터 기본
11.3 라우터 활용
11.4 모듈별 라우터
11.5 마치며
CHAPTER 12 프로젝트: 파이어베이스 사용
12.1 파이어베이스 사용
12.2 프로젝트 구현 5
12.3 프로젝트 구현 6
12.4 마치며
CHAPTER 13 프로젝트: 상품 관리 애플리케이션 구현 최종
13.1 프로젝트 구현 7
13.2 프로젝트 구현 8
13.3 프로젝트 최종 구현
13.4 마치며
부록. 자바스크립트의 진화: ES6(ECMAScript 6)
1. ES6 표준의 의미
2. 모듈 시스템
3. 모듈 번들러
4. 실습: area-calculator
제목 그대로 앵귤러에 대해 처음 배우는 사람들에게 전체적인 동작원리와 구성방식에 대해 알려준다.
웹프론트 개발에 대해 jsp와 서블릿을 공부했고, javascript를 공부하고 있는 나에게
이런 기술도 있어~ 라고 알려주는 방식의 구성과 내용을 가지고 있다.
하지만 실제로 내용을 들여다 보면 생각했던 것보다 쉽지 않다.
이는 javascript와 webpack등 접해보지 않는 것들이 많이 나와
이해하는데 구글링을 하면서 많은 자료를 찾아야 했다.
또 하나의 특징이자 장점은 firebase에 대한 내용이다.
앵귤러와 firebase는 모두 구글에서 개발되어 나온 것이기 때문에
서로의 호환성이 좋다.
시중에 firebase에 대한 내용을 다루는 책은 흔하지 않은데
앵귤러 첫걸음은 그 흔하지 않는 책중 하나이다.
앵귤러 프레임 워크는 사용자용 애플리케이션 개발을 위하여 구글에서 만든 오픈 소스 프레임 워크이다.
이 책은 앵귤러 프레임워크에 대한 기초부분, 응용부분을 설명하고 있다.
사실, JS와 HTML의 기본밖에 모르던 내가 이해하기엔 많은 어려움이 있었으나,
기본적인 개념 모든것을 이해하고 있는 분들이라면 충분히 이 책을 통해서
원하는 웹 애플리케이션을 만들 수 있을거라고 생각이 든다.
Angular라는 이름을 처음 들어본 것은 대학원 랩실에서 공부할 때 석사 학위를 받으러 한국에 온 외국인 개발자로부터였습니다. 그 분은 영국에서 웹 개발을 하셨는데 Angular를 사용했다고 합니다. 이후 대학원 수업 과제 발표에서 그 분 조가 Angular 프레임워크를 사용해 구현한 웹 UI를 보면서 Angular에 대한 관심은 있었지만 막상 공부하기에는 엄두가 나질 않았습니다.
지금 회사에 입사하고나서는 다른 팀에서 자체적으로 만들고 있는 웹 UI 프레임워크를 사용해서 웹 UI를 구현하고 있는데, 마침 한빛 리더스에서 '앵귤러 첫걸음'이라는 신간 도서를 리뷰할 수 있는 기회가 있어 신청했습니다.
처음 이 책을 받았을 때 목차를 보고 좋다고 생각된 점은 앵귤러로 개발하기 전에 node.js와 npm을 사용해 앵귤러를 포함한 여러 라이브러리들을 내려받는 부분부터 차근차근 설명하고 있다는 점이었습니다. 또한 Visual Studio Code 등 앵귤러 개발에 유용한 IDE도 소개되어 있어서 초보자가 쉽게 따라할 수 있게 되어 있습니다. 그리고 앵귤러에서 사용되는 타입스크립트가 무엇이고 이를 어떻게 컴파일하는지도 요점만 정확하게 짚어주는 것도 큰 장점입니다.
Chapter 3에는 앵귤러 개발이 도대체 어떻게 이루어지는 것인지 감을 잡을 수 있도록 간단한 예제를 따라해보는 실습이 있습니다. 앵귤러 개발의 대부분이라고 할 수 있는 '컴포넌트'라는 개념을 이해할 수 있게 도와주고, 명령어 한 줄로 컴포넌트의 클래스, html, css, 테스트 스펙 파일을 생성하고 이를 수정하면서 구성요소를 파악할 수 있게 됩니다.
책의 2부부터는 앵귤러가 제공하는 방대한 기능들을 하나씩 살펴봅니다. 3장에서 겉핥기 식으로 접해 본 뷰, 서비스를 자세히 배우고, 웹 컴포넌트, RxJS, 특별히 Form에 대한 심화 내용을 살펴봅니다. 개인적으로는 6장에 소개된 내용이 생소하지만 반드시 알아야 하는 내용이라고 느꼈습니다.
3부부터는 상품 관리 애플리케이션을 만들어볼 수 있습니다. 앵귤러의 모듈, 라우터 개념을 이해할 수 있게 돕고, 구글 파이어베이스와 연동해서 구글 계정으로 인증 처리를 하고 AngularFire2 패키지를 사용해 백엔드 코드 없이 데이터베이스 CRUD를 처리하는 방법을 설명하고 있습니다. 3부에서 조금 아쉬웠던 점은 코드 구현이 사실상 13장에 몰려 있어서 따라해보기가 조금 버거웠다는 점입니다. 기능들을 모두 책에 담아내기에는 앵귤러가 너무 방대한데, 이 책은 필요한 부분만 우선적으로 제공하고 있어 초보자가 앵귤러가 무엇인지 빠른 시간 내에 파악할 수 있게 도와줍니다. 앵귤러 설명 뿐 아니라 개발에 필요한 환경 설정에 대한 내용이 잘 되어 있어종합적으로는 국내 앵귤러 기본 도서 중에서 제일 추천할 만하다고 생각합니다.
이 책을 따라해보면서 회사 자체 UI 프레임워크와 비교해볼 수 있어 재미있었고, 요즘에는 정말 다양한 오픈소스 UI 프레임워크가 나와 있는데 jQuery를 사용하는 수준에 머물러 있었던 스스로가 우물 안 개구리였다는 것을 다시금 느끼고 반성했습니다. 그리고 node.js에도 더 많은 관심이 생겨서 앞으로는 node 서버 개발도 관심을 가지고 공부해보고 싶습니다.