본문 바로가기

도서 소개

따라 하며 배우는 앵귤러 마스터 북

 

그동안 읽어주신 분들께 감사드립니다. 이 책은 현재 절판되었습니다.

단계별 예제를 만들면서 배우는, 앵귤러 마스터를 위한 완벽 가이드!

실용적 예제로 배우는 최신 웹 기술!

 

출판사 제이펍

원출판사 FULLSTACK.io

원서명 ng-book: The Complete Guide on Angular 5(원서 ISBN: 9781546376231)

저자명 네이트 머레이, 필리피 커리, 아리 러너, 칼로스 타보다

역자명 배장열

출판일 2018년 1월 24일

페이지 648쪽

판 형 46배판변형(188*245*30)

제 본 무선(soft cover)

정 가 34,000원

ISBN 979-11-88621-01-9 (93000)

키워드 앵귤러 / 타입스크립트 / 네이티브스크립트 / 리덕스 / 데이터 아키텍처

분야 프로그래밍 / 자바스크립트

관련 사이트

아마존 도서 소개 페이지(아마존에는 이전 버전인 Angular4 책만 등록되어 있습니다)

원출판사 도서 소개 페이지

 

관련 포스트

2018/01/18 - [출간전 책소식] - 실용적인 예제가 가득한 앵귤러 책!

 

관련 시리즈

■ (없음)

 

관련 도서

자바스크립트 마스터 북

처음 만나는 자바스크립트

자바스크립트와 node.js를 이용한 웹 크롤링 테크닉

 

관련 파일 다운로드

예제 코드

 

 

강의보조 자료

교재로 채택하신 분들은 메일을 보내주시면 아래의 자료를 보내드리겠습니다: jeipubmarketer@gmail.com

■ 본문의 그림과 표

 

샘플 PDF(차례, 옮긴이 머리말, 이 책에 대하여, 베타리더 후기, 1장 '첫 앵귤러 웹 애플리케이션 만들기')(총 85쪽 분량)

앵귤러마스터북_sample.pdf
다운로드

 

정오표 페이지

■ (등록되는 대로 링크를 걸어드리겠습니다)

 

도서구매 사이트(가나다순)

[강컴] [교보문고] [도서11번가] [반디앤루니스] [알라딘] [예스이십사] [인터파크]

 

도서 소개

단계별 예제를 만들면서 배우는, 앵귤러 마스터를 위한 완벽 가이드!

실용적 예제로 배우는 최신 웹 기술!

이 책의 유일한 목적은 독자들이 앵귤러를 배울 때 유용한 리소스 역할을 하는 것이다. 여러분(그리고 여러분의 팀)이 이 책을 끝까지 읽는다면 신뢰할 만하고 강력한 앵귤러 앱을 만드는 데 필요한 모든 것을 갖추게 될 것이다.

 

앵귤러는 다양하고 풍부한 기능으로 무장한 프레임워크다. 하지만 이는 모든 요소를 빠짐없이 이해하기가 만만치 않다는 뜻이기도 하다. 이 책에서는 각종 도구의 설치를 비롯해 컴포넌트 작성, 폼 사용, 페이지 간 라우팅, API 호출 등 앵귤러의 모든 것을 다룰 것이다.

- ‘이 책에 대하여’ 중에서

 

이 책의 주요 내용

  • 첫 앱 빌드하기
  • 내장 컴포넌트 및 컴포넌트 만들기
  • 폼(form)
  • 데이터 아키텍처
  • RxJS 옵저버블과 리덕스
  • 고급 컴포넌트
  • 네이티브스크립트를 사용해 네이티브 모바일 앱 만들기

지은이 소개

네이트 머레이(Nate Murray)

풀스택 개발자. 딥 러닝 기반 이미지 인식에서 고양이용 모바일 게임에 이르기까지 다양한 코드를 짜고 있다. IFTTT에서 일한 경험이 있으며, 데이터 마이닝과 웹 서비스 스케일링 지식을 갖췄다.

 

필리피 커리(Felipe Coury)

Gistia Labs의 공통 창업자 및 CTO. 앵귤러JS와 루비 온 레일즈를 담당하고 있다. Angular.js 전략 구현을 목적으로 여러 대기업 CTO와도 협업하고 있다.

 

아리 러너(Ari Lerner)

ng-book 1의 저자. 오랫동안 앵귤러를 가르치고 있으며, 구글의 앵귤러 실무단 가운데 한 명이기도 하다. ng-conf, SF Angular, Mountain View AngularJS 등에서 발표자로 활동했다.

 

칼로스 타보다(Carlos Taborda)

Gistia Labs의 공동 창업자 및 디렉터. 앵귤러와 루비 온 레일즈의 개발팀 교육뿐만 아니라 풀스택의 엔지니어링 프로젝트들도 담당하고 있다.

 

옮긴이 소개

배장열

IT 전문 번역자. 옮긴 책으로는 《스케치로 시작하는 아두이노 프로그래밍(제2판)》, 《마인크래프트로 배우는 파이썬 프로그래밍》, 《리눅스 바이블(제9판)》 등을 비롯하여 20여 종이 있다.

 

차례

1장 첫 앵귤러 웹 애플리케이션 만들기 _ 1

1.1 단순한 레딧 클론 1

1.2 시작하기 4

1.2.1 Node.js와 npm 4

1.2.2 타입스크립트 4

1.2.3 브라우저 5

1.2.4 윈도우 사용자를 위한 특별 과정 5

1.3 앵귤러 CLI 5

1.3.1 예시 프로젝트 6

1.4 애플리케이션 코드 작성하기 10

1.4.1 애플리케이션 실행하기 10

1.5 컴포넌트에 데이터 추가하기 17

1.5.1 템플릿 렌더링하기 19

1.5.2 테스트하기 19

1.6 배열 다루기 20

1.7 UserItemComponent 사용하기 23

1.7.1 UserItemComponent 렌더링하기 23

1.7.2 입력 받기 24

1.7.3 입력값 전달하기 25

1.8 부트스트랩 속성 과정 27

1.8.1 declarations 28

1.8.2 imports 28

1.8.3 providers 28

1.8.4 bootstrap 29

1.9 애플리케이션 확장하기 29

1.9.1 CSS 추가하기 30

1.9.2 애플리케이션 컴포넌트 31

1.9.3 인터랙션 추가하기 32

1.9.4 ArticleComponent 추가하기 36

1.10 여러 행 렌더링하기 44

1.10.1 Article 클래스 만들기 44

1.10.2 여러 Article 저장하기 49

1.10.3 Input으로 ArticleComponent 설정하기 50

1.10.4 Articles 리스트 렌더링하기 52

1.11 새 Article 추가하기 54

1.12 마무리 손길 55

1.12.1 Article 도메인 표시하기 55

1.12.2 점수별로 재정렬하기 56

1.13 배포 57

1.13.1 앱을 제품으로 빌드하기 57

1.13.2 서버로 업로드하기 58

1.14 전체 코드 59

1.15 정리 59

더보기

2장 타입스크립트 _ 60

2.1 앵귤러 4, 타입스크립트로 만들어지다 60

2.2 타입스크립트로 무엇을 얻을 수 있나? 62

2.3 타입 62

2.3.1 REPL 경험하기 64

2.4 내장 타입 64

2.4.1 string 64

2.4.2 number 64

2.4.3 boolean 65

2.4.4 Array 65

2.4.5 열거형 65

2.4.6 any 66

2.4.7 void 66

2.5 클래스 66

2.5.1 프로퍼티 67

2.5.2 메서드 67

2.5.3 컨스트럭터 69

2.5.4 상속 71

2.6 유틸리티 72

2.6.1 살찐 화살표 함수 72

2.6.2 템플릿 문자열 74

2.7 정리 75

3장 앵귤러는 어떻게 동작하는가 _ 76

3.1 애플리케이션 77

3.1.1 내비게이션 컴포넌트 78

3.1.2 브레드크럼 컴포넌트 78

3.1.3 제품 리스트 컴포넌트 78

3.2 이 장의 사용법 80

3.3 제품 모델 81

3.4 컴포넌트 82

3.5 컴포넌트 데코레이터 84

3.5.1 컴포넌트 selector 84

3.5.2 컴포넌트 template 84

3.5.3 Product 추가하기 85

3.5.4 템플릿 바인딩으로 Product 보기 87

3.5.5 Product 더 많이 추가하기 87

3.5.6 Product 선택하기 89

3.5.7 를 사용하여 제품 리스트 출력하기 89

3.6 ProductsListComponent 컴포넌트 92

3.6.1 ProductsListComponent의 @Component 옵션 설정하기 93

3.6.2 컴포넌트 입력 94

3.6.3 컴포넌트 출력 95

3.6.4 커스텀 이벤트 배출하기 96

3.6.5 ProductsListComponent 컨트롤러 클래스 작성하기 98

3.6.6 ProductsListComponent 뷰 템플릿 작성하기 99

3.6.7 ProductsListComponent 컴포넌트 전체 코드 101

3.7 ProductRowComponent 컴포넌트 103

3.7.1 ProductRowComponent 설정 103

3.7.2 ProductRowComponent 템플릿 104

3.8 ProductImageComponent 컴포넌트 105

3.9 PriceDisplayComponent 컴포넌트 106

3.10 ProductDepartmentComponent 컴포넌트 106

3.11 NgModule과 앱 시동하기 108

3.11.1 앱 시동하기 109

3.12 완성된 프로젝트 110

3.13 앱 배포하기 111

3.14 덧붙여: 데이터 아키텍처 111

4장 내장 지시자 _ 113

4.1 소개 113

4.2 ngIf 114

4.3 ngSwitch 114

4.4 NgStyle 116

4.5 NgClass 118

4.6 NgFor 121

4.6.1 인덱스 얻기 125

4.7 NgNonBindable 126

4.8 결론 127

5장 앵귤러의 폼 _ 128

5.1 폼은 중요하다. 그리고 복잡하다 128

5.2 FormControl과 FormGroup 129

5.2.1 FormControl 129

5.2.2 FormGroup 130

5.3 첫 번째 폼 130

5.3.1 FormsModule 로드하기 131

5.3.2 단순 SKU 폼: @Component 데코레이터 133

5.3.3 단순 SKU 폼: template 133

5.3.4 단순 SKU 폼: 컴포넌트 정의 클래스 136

5.3.5 테스트하기 137

5.4 FormBuilder 사용하기 138

5.5 FormBuilder로 만드는 리액티브 폼 139

5.5.1 FormBuilder 사용하기 139

5.5.2 뷰에서 myForm 사용하기 140

5.5.3 테스트하기 141

5.6 검증 추가하기 143

5.6.1 명시적으로 sku FormControl을 인스턴스 변수로 설정하기 144

5.6.2 맞춤형 검증 149

5.7 변경 내용 주시하기 150

5.8 ngModel 152

5.9 정리 154

6장 의존성 주입 _ 155

6.1 주입 예: PriceService 156

6.2 의존성 주입 요소들 160

6.3 인젝터 다루기 161

6.4 NgModule과 의존성 다루기 164

6.4.1 providers는 키다 166

6.5 제공자 166

6.5.1 클래스 사용하기 166

6.5.2 팩토리 사용하기 170

6.6 앱의 의존성 주입 173

6.7 참고 리소스 174

7장 HTTP _ 175

7.1 소개 175

7.2 @angular/common/http 사용하기 176

7.2.1 @angular/http에서 가져오기 176

7.3 기본 요청 177

7.3.1 SimpleHttpComponent 컴포넌트 만들기 178

7.3.2 SimpleHttpComponent 템플릿 만들기 178

7.3.3 SimpleHttpComponent 컨트롤러 만들기 179

7.3.4 SimpleHttpComponent 전체 코드 181

7.4 YouTubeSearchComponent 작성하기 181

7.4.1 SearchResult 작성하기 183

7.4.2 YouTubeSearchService 작성하기 184

7.4.3 SearchBoxComponent 작성하기 189

7.4.4 SearchResultComponent 작성하기 196

7.4.5 YouTubeSearchComponent 작성하기 197

7.5 @angular/http API 201

7.5.1 POST 요청 수행하기 201

7.5.2 PUT / PATCH / DELETE / HEAD 201

7.6 맞춤형 HTTP 헤더 202

7.7 정리 202

8장 라우팅 _ 203

8.1 라우팅은 왜 필요할까? 203

8.2 클라이언트 사이드 라우팅의 동작 방식 204

8.2.1 시작: 앵커 태그 사용하기 205

8.2.2 진화: HTML5 클라이언트 사이드 라우팅 206

8.3 첫 라우트 작성하기 206

8.4 앵귤러 라우팅의 구성 요소들 207

8.4.1 imports 207

8.4.2 라우트 설치하기 209

8.4.3 RouterOutlet: 사용하기 209

8.4.4 RouterLink: [routerLink] 사용하기 211

8.5 모두 합치기 212

8.5.1 컴포넌트 만들기 213

8.5.2 애플리케이션 컴포넌트 215

8.5.3 라우트 설정하기 216

8.6 라우팅 전략 218

8.7 애플리케이션 실행하기 219

8.8 라우트 파라미터 220

8.8.1 ActivatedRoute 220

8.9 음악 검색 앱 221

8.9.1 첫 단계 223

8.9.2 SpotifyService 224

8.9.3 SearchComponent 225

8.9.4 검색 시도하기 232

8.9.5 음악 검색 마무리하기 235

8.10 라우터 훅 236

8.10.1 AuthService 236

8.10.2 LoginComponent 238

8.10.3 ProtectedComponent와 라우트 가드 239

8.11 라우트 중첩 244

8.11.1 라우트 설정하기 244

8.11.2 ProductsModule 245

8.12 정리 249

9장 앵귤러 4의 데이터 아키텍처 _ 250

9.1 데이터 아키텍처 개요 250

9.1.1 앵귤러 4의 데이터 아키텍처 252

10장 옵저버블 데이터 아키텍처 1부 ― 서비스 _ 253

10.1 옵저버블과 RxJS 253

10.1.1 노트: 필요한 RxJS 지식 253

10.1.2 반응형 프로그래밍과 RxJS 배우기 254

10.2 대화 앱 개요 255

10.2.1 컴포넌트 256

10.2.2 모델 257

10.2.3 서비스 258

10.2.4 정리 258

10.3 모델 구현하기 258

10.3.1 User 259

10.3.2 Thread 259

10.3.3 Message 260

10.4 UsersService 구현하기 261

10.4.1 currentUser의 스트림 262

10.4.2 새 사용자 설정하기 262

10.4.3 UserService.ts 264

10.5 MessagesService 264

10.5.1 newMessages 스트림 265

10.5.2 messages 스트림 266

10.5.3 Operation 스트림 패턴 266

10.5.4 스트림 공유하기 268

10.5.5 messages 스트림에 Message 추가하기 269

10.5.6 완성된 MessagesService 273

10.5.7 MessagesService 테스트하기 275

10.6 ThreadsService 277

10.6.1 현재 Thread 집합의 맵(threads에서) 277

10.6.2 최신 스레드가 맨 위에 보이는 시간별 Thread 리스트(orderedthreads에서) 281

10.6.3 현재 선택된 Thread(currentThread에서) 282

10.6.4 현재 선택된 Thread에 사용할 Message 리스트(currentThreadMessages에서) 283

10.6.5 완성된 ThreadsService 286

10.7 데이터 모델 정리 288

11장 옵저버블 데이터 아키텍처 2부 ― 뷰 컴포넌트 _ 289

11.1 뷰 빌드하기: 최상위 컴포넌트, ChatApp 289

11.2 ChatThreadsComponent 291

11.2.1 ChatThreadsComponent 템플릿 292

11.3 단일 ChatThreadComponent 293

11.3.1 ChatThreadComponent 컨트롤러와 ngOnInit 294

11.3.2 ChatThreadComponent 템플릿 295

11.4 ChatWindowComponent 295

11.4.1 ChatWindowComponent 클래스 프로퍼티 296

11.5 ChatMessageComponent 305

11.5.1 ChatMessageComponent 템플릿 306

11.6 ChatNavBarComponent 308

11.6.1 ChatNavBarComponent @Component 308

11.6.2 ChatNavBarComponent 템플릿 310

11.7 정리 310

12장 리덕스와 함께하는 타입스크립트 _ 312

12.1 리덕스 313

12.1.1 리덕스: 핵심 개념 314

12.2 코어 리덕스 개념 315

12.2.1 리듀서란 무엇일까? 315

12.2.2 Action과 Reducer 인터페이스 정의하기 315

12.2.3 첫 Reducer 만들기 316

12.2.4 첫 Reducer 실행하기 317

12.2.5 동작으로 카운터 조정하기 318

12.2.6 리듀서 switch 319

12.2.7 동작의 ‘인수’ 320

12.3 상태 저장하기 321

12.3.1 저장소 사용하기 323

12.3.2 subscribe로 알림 받기 323

12.3.3 리덕스 코어 327

12.4 메시지 앱 327

12.4.1 메시지 앱의 state 328

12.4.2 메시지 앱의 action 328

12.4.3 메시지 앱의 reducer 329

12.4.4 동작 테스트하기 332

12.4.5 동작 생성자 333

12.4.6 진짜 리덕스 사용하기 335

12.5 앵귤러에서 리덕스 사용하기 336

12.6 앱 기획하기 337

12.7 리덕스 설정하기 338

12.7.1 애플리케이션 상태 정의하기 338

12.7.2 리듀서 정의하기 338

12.7.3 동작 생성자 정의하기 339

12.7.4 저장소 만들기 340

12.8 저장소 제공하기 341

12.9 앱 시동하기 343

12.10 AppComponent 344

12.10.1 import 344

12.10.2 템플릿 345

12.10.3 constructor 346

12.10.4 모두 합치기 347

12.11 앞으로 갈 곳 348

12.12 참조 348

13장 중급자를 위한 앵귤러 리덕스 _ 350

13.1 이 장의 관점 351

13.2 대화 앱 조감도 351

13.1 이 장의 관점 351

13.2.1 컴포넌트 352

13.2.2 모델 352

13.2.3 리듀서 353

13.2.4 정리 353

13.3 모델 구현하기 353

13.3.1 User 354

13.3.2 Thread 354

13.3.3 Message 355

13.4 앱 상태 355

13.4.1 효율적인 코드 레이아웃 356

13.4.2 루트 리듀서 356

13.4.3 UsersState 357

13.4.4 ThreadsState 357

13.4.5 AppState 시각화하기 359

13.5 리듀서(그리고 동작 생성자) 빌드하기 360

13.5.1 현재 사용자 동작 생성자 설정하기 360

13.5.2 UsersReducer ― 현재 사용자 설정하기 361

13.5.3 스레드와 메시지 개요 362

13.5.4 새 스레드 동작 생성자 추가하기 362

13.5.5 새 스레드 리듀서 추가하기 363

13.5.6 동작 생성자에 새 메시지 추가하기 364

13.5.7 새 메시지 리듀서 추가하기 365

13.5.8 스레드 동작 생성자 선택하기 366

13.5.9 스레드 리듀서 선택하기 367

13.5.10 리듀서 정리 368

13.6 앵귤러 대화 앱 빌드하기 369

13.6.1 ChatApp 최상위 컴포넌트 370

13.6.2 ChatPage 컴포넌트 371

13.6.3 컨테이너 vs. 표현용 컴포넌트 372

13.7 ChatNavBarComponent 빌드하기 374

13.7.1 리덕스 셀렉터 375

13.7.2 Threads 셀렉터 376

13.7.3 읽지 않은 메시지 개수 셀렉터 378

13.8 ChatThreadsComponent 빌드하기 379

13.8.1 ChatThreadsComponent 컨트롤러 379

13.8.2 ChatThreadsComponent 템플릿 381

13.9 단일 ChatThreadComponent 381

13.9.1 ChatThreadComponent 템플릿 383

13.10 ChatWindowComponent 빌드하기 384

13.11 ChatMessageComponent 391

13.11.1 incoming 설정하기 391

13.11.2 ChatMessageComponent 템플릿 392

13.12 정리 393

14장 컴포넌트 고급 _ 395

14.1 스타일 396

14.1.1 뷰(스타일) 캡슐화 398

14.1.2 Shadow DOM 캡슐화 401

14.1.3 캡슐화 금지 403

14.2 팝업 만들기 ― 호스트 요소 참조하기와 수정하기 405

14.2.1 팝업의 구조 405

14.2.2 ElementRef 사용하기 407

14.2.3 host에 바인딩하기 408

14.2.4 exportAs를 사용하여 버튼 추가하기 410

14.3 콘텐트 프로젝션으로 메시지 창 만들기 412

14.3.1 호스트의 CSS 변경하기 413

14.3.2 ng-content 사용하기 413

14.4 이웃 지시자 조회하기 ― 탭 작성하기 415

14.4.1 ContentTabsetComponent 컴포넌트 417

14.4.2 ContentTabsetComponent 사용하기 419

14.5 라이프사이클 훅 421

14.5.1 OnInit과 OnDestroy 422

14.5.2 OnChanges 425

14.5.3 DoCheck 430

14.5.4 CommentsListComponent로 댓글 리스트 렌더링하기 435

14.5.5 AfterContentInit, AfterViewInit, AfterContentChecked, AfterViewChecked 441

14.6 템플릿 고급 446

14.6.1 ngIf 다시 작성하기 ― ngBookIf 447

14.6.2 ngFor 다시 작성하기 ― NgBookFor 449

14.7 변경 감지 454

14.7.1 변경 감지 커스터마이징하기 458

14.7.2 존 464

14.7.3 옵저버블과 OnPush 464

14.8 정리 468

15장 테스트하기 _ 469

15.1 테스트 주도? 469

15.2 엔드투엔드 vs. 유닛 테스트 470

15.3 테스트 도구 471

15.3.1 재스민 471

15.3.2 카마 472

15.4 유닛 테스트 작성하기 472

15.5 앵귤러 유닛 테스트용 프레임워크 472

15.6 테스트 설정하기 473

15.7 서비스와 HTTP 테스트하기 474

15.7.1 HTTP 고려 사항 475

15.7.2 스텁 476

15.7.3 목 476

15.7.4 getTrack 테스트하기 479

15.8 컴포넌트 라우팅 테스트하기 485

15.8.1 테스트용 라우터 만들기 486

15.8.2 의존성 모킹하기 489

15.8.3 스파이 489

15.9 테스트 코드 다시 살펴보기 492

15.9.1 fakeAsync와 advance 494

15.9.2 inject 495

15.9.3 ArtistComponent의 초기화 테스트하기 496

15.9.4 ArtistComponent 메서드 테스트하기 497

15.9.5 ArtistComponent DOM 템플릿 값 테스트하기 498

15.10 폼 테스트하기 500

15.10.1 ConsoleSpy 만들기 502

15.10.2 ConsoleSpy 설치하기 503

15.10.3 테스트 모듈 설정하기 504

15.10.4 폼 테스트하기 504

15.10.5 폼 테스트 리팩토링하기 507

15.11 HTTP 요청 테스트하기 510

15.11.1 POST 테스트하기 510

15.11.2 DELETE 테스트하기 513

15.11.3 HTTP 헤더 테스트하기 513

15.11.4 YouTubeSearchService 테스트하기 515

15.12 정리 521

16장 앵귤러JS 1.x 앱을 앵귤러 4로 변환하기 _ 522

16.1 배경지식 522

16.2 우리가 만들려는 것 523

16.3 앵귤러 4에 앵귤러JS 1 매핑하기 524

16.4 상호운영성의 요건 526

16.5 앵귤러JS 1 앱 527

16.5.1 ng1-app HTML 528

16.5.2 코드 살펴보기 529

16.5.3 ng1: PinsService 530

16.5.4 ng1: 라우트 설정하기 531

16.5.5 ng1: HomeController 532

16.5.6 ng1: / HomeController 템플릿 532

16.5.7 ng1: pin 지시자 533

16.5.8 ng1: pin 지시자 템플릿 533

16.5.9 ng1: AddController 535

16.5.10 ng1: AddController 템플릿 537

16.5.11 ng1: 정리 539

16.6 하이브리드 앱 만들기 539

16.6.1 하이브리드 프로젝트 구조 540

16.6.2 하이브리드 앱 부트스트랩하기 542

16.6.3 업그레이드해야 하는 것들 544

16.6.4 기타: 타입 지정용 파일 546

16.6.5 ng2 PinControlsComponent 작성하기 549

16.6.6 ng2 PinControlsComponent 사용하기 550

16.6.7 ng2 PinControlsComponent를 ng1으로 다운그레이드하기 552

16.6.8 ng2에서 핀 추가하기 554

16.6.9 ng1 PinsService와 $state를 ng2로 업그레이드하기 555

16.6.10 ng2 AddPinComponent 작성하기 556

16.6.11 AddPinComponent 사용하기 561

16.6.12 ng2 서비스를 ng1으로 나타내기 562

16.6.13 AnalyticsService 작성하기 562

16.6.14 ng2 AnalyticsService를 ng1으로 다운그레이드하기 563

16.6.15 ng1에서 AnalyticsService 사용하기 564

16.7 정리 565

17장 네이티브스크립트 ― 앵귤러 개발자를 위한 모바일 애플리케이션 _ 566

17.1 네이티브스크립트란 무엇일까? 566

17.1.1 네이티브스크립트의 차별성 567

17.1.2 네이티브스크립트에 필요한 시스템과 개발 요건은 무엇일까? 568

17.2 네이티브스크립트와 앵귤러로 첫 모바일 애플리케이션 만들기 570

17.2.1 크로스 플랫폼 개발을 위한 빌드 플랫폼 추가하기 571

17.2.2 안드로이드와 iOS용으로 빌드하기와 테스트하기 571

17.2.3 자바스크립트, 안드로이드, iOS 플러그인과 패키지 설치하기 572

17.3 웹과 네이티브스크립트 UI 및 UX의 다른 점 이해하기 573

17.3.1 네이티브스크립트 페이지 레이아웃 기획하기 573

17.3.2 페이지에 UI 컴포넌트 추가하기 574

17.3.3 CSS로 컴포넌트 스타일링하기 576

17.4 위치 기반 사진 애플리케이션 개발하기 577

17.4.1 네이티브스크립트 프로젝트 만들기 578

17.4.2 다중 페이지 마스터-디테일 인터페이스 만들기 579

17.4.3 사진과 데이터를 받기 위한 플리커 서비스 만들기 582

17.4.4 기기 위치와 거리를 계산하기 위한 서비스 만들기 587

17.4.5 네이티브스크립트 애플리케이션에 맵박스 포함하기 590

17.4.6 지오로케이션 애플리케이션의 첫 번째 페이지 구현하기 592

17.4.7 지오로케이션 애플리케이션의 두 번째 페이지 구현하기 596

17.5 테스트하기! 598

17.6 앵귤러 개발자를 위한 네이티브스크립트 598

업데이트 이력 601

찾아보기 615