본문 바로가기

추천 검색어

실시간 인기 검색어

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

제이펍 · 2018년 01월 24일
10.0 (5개의 리뷰)
집중돼요 (25%의 구매자)
  • 앵귤러 마스터북 대표 이미지
    앵귤러 마스터북 대표 이미지
  • A4
    사이즈 비교
    210x297
    앵귤러 마스터북 사이즈 비교 191x249
    단위 : mm
MD의 선택 무료배송 이벤트 소득공제
10% 30,600 34,000
적립/혜택
1,700P

기본적립

5% 적립 1,700P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 1,700P
  • 리뷰 작성 시, e교환권 추가 최대 300원

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

절판되었습니다.

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

패키지

북카드

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

앵귤러 마스터북 상세 이미지
단계별 예제를 만들면서 배우는, 앵귤러 마스터를 위한 완벽 가이드!
앵귤러는 다양하고 풍부한 기능으로 무장한 프레임워크다. 하지만 이는 모든 요소를 빠짐없이 이해하기가 만만치 않다는 뜻이기도 하다. 이 책에서는 각종 도구의 설치를 비롯해 컴포넌트 작성, 폼 사용, 페이지 간 라우팅, API 호출 등 앵귤러의 모든 것을 다룰 것이다.

작가정보

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

저자(글) 필리피 커리

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

저자(글) 아리 러너

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

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

목차

  • 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

책 속으로

앵귤러 애플리케이션은 컴포넌트의 트리 구조, 그 이상도 그 이하도 아니다. 이 트리 구조의 루트에서 최상위 컴포넌트는 애플리케이션 그 자체다. 브라우저가 앱을 시동(booting, 다시 말해 ‘부트스트래핑’)할 때 렌더링하는 것이 바로 애플리케이션이다. 컴포넌트의 장점 중 하나로 컴포넌트는 구성 가능(composable)하다는 점을 들 수 있다. 다시 말해, 작은 컴포넌트를 쌓아 올려 더 큰 컴포넌트를 만들 수 있다. 애플리케이션은 단순히 다른 컴포넌트들을 렌더링하는 컴포넌트인 셈이다. 컴포넌트는 구조적으로 부모/자식 트리 관계이므로 각 컴포넌트는 자신의 자식 컴포넌트를 재귀적으로 렌더링한다.
_77쪽

폼이야말로 웹 애플리케이션에서 가장 중요하고 핵심적인 요소가 아닐까 한다. 링크를 클릭한다든가 마우스를 움직이는 이벤트도 자주 받게 되지만, 사용자에게서 리치 데이터(rich data)를 입력받는 방식은 폼(form)이 대다수일 것이다. 겉으로는 폼이 직관적이라고 할 수 있다. input 태그로 만들어진 곳에 사용자가 어떤 내용을 채우고 제출을 클릭하는 과정이 전부이다. 어려울 것이 무엇이겠는가? 하지만 실제로 폼은 복잡하기 그지없다. 왜 그런지 몇 가지 이유를 들면 다음과 같다.
_128쪽

앵귤러는 외부 API를 사용하기 위한 자체 HTTP 라이브러리를 제공한다. 외부 서버를 호출할 때는 사용자가 계속해서 페이지와 소통하도록 하는 것이 중요하다. 다시 말해, HTTP 요청이 외부 서버로부터 리턴될 때까지 페이지가 멈춰 있으면 안 된다. 이런 결과를 얻으려면 HTTP 요청이 비동기(asynchronous)여야 한다. 지금껏 비동기 코드는 동기(synchronous) 코드에 비해 다루기가 까다로웠다. 자바스크립트에서 비동기 코드를 처리할 수 있는 방식은 일반적으로 세 가지로 나뉜다.
_175쪽

웹 개발에서 라우팅(routing)은 애플리케이션을 브라우저의 현재 URL에 따라 여러 영역으로 분할하는 과정을 말한다. 예를 들어, 어떤 웹 사이트의 /에 접속한다면 이는 그 웹 사이트의 ‘홈 라우트(home route)’에 접속한 것이다. 마찬가지로 /visit에 접속한다면 ‘about page’가 렌더링되어야 한다.
_203쪽

앵귤러에서는 옵저버블을 데이터 아키텍처의 근간으로 사용할 수 있도록 애플리케이션을 구조화할 수 있다. 옵저버블을 사용한 데이터 구조화를 반응형 프로그래밍(Reactive Programming)이라고 부른다. 그런데 옵저버블이나 반응형 프로그래밍이 도대체 무엇일까? 반응형 프로그래밍은 데이터의 비동기 스트림을 처리할 수 있는 방법이다. 옵저버블은 반응형 프로그래밍을 구현하는 데 사용할 주 데이터 구조다. 하지만 이들 용어가 명확하지 않다는 데는 어느 정도 인정하는 바이다. 그런 이유에서 이제부터는 더욱더 명확해질 수 있는 구체적인 예를 이 장 끝까지 다룰까 한다.
_253쪽

출판사 서평

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

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

앵귤러는 다양하고 풍부한 기능으로 무장한 프레임워크다. 하지만 이는 모든 요소를 빠짐없이 이해하기가 만만치 않다는 뜻이기도 하다. 이 책에서는 각종 도구의 설치를 비롯해 컴포넌트 작성, 폼 사용, 페이지 간 라우팅, API 호출 등 앵귤러의 모든 것을 다룰 것이다.
- ‘이 책에 대하여’ 중에서
이 책의 주요 내용
■ 첫 앱 빌드하기
■ 내장 컴포넌트 및 컴포넌트 만들기
■ 폼(form)
■ 데이터 아키텍처
■ RxJS 옵저버블과 리덕스
■ 고급 컴포넌트
■ 네이티브스크립트를 사용해 네이티브 모바일 앱 만들기

기본정보

상품정보
ISBN 9791188621019
발행(출시)일자 2018년 01월 24일
쪽수 648쪽
크기
191 * 249 * 33 mm / 1255 g
총권수 1권
원서명/저자명 Ang-Book/Createspace Independent Publishing Platform

Klover

Klover 리뷰 안내
교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1.리워드 안내
구매 후 90일 이내에 평점과 10자 이상의 리뷰 작성 시 e교환권 200원을 적립해 드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
한달 후 리뷰
구매 후 30일~ 120일 이내에 작성된 두 번째 구매리뷰에 대해 한 달 후 리뷰로 인지하고 e교환권 100원을 추가 제공합니다.

* 강연, 공연, 여행, 동영상, 사은품, 기프트카드 상품은 지급 제외
2.운영 원칙 안내
Klover 리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
3.신고하기
다른 고객이 작성리뷰에 대해 불쾌함을 느끼는 경우 신고를 할 수 있으며, 신고 자가 일정수준 이상 누적되면 작성하신 리뷰가 노출되지 않을 수 있습니다.

구매 후 리뷰 작성 시, e교환권 200원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.

구매 후 리뷰 작성 시, e교환권 100원 적립

이 책의 첫 기록을 남겨주세요

교환/반품/품절 안내

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

이벤트
TOP

저자 모두보기

매장별 재고 및 도서위치

할인쿠폰 다운로드

  • 쿠폰은 주문결제화면에서 사용 가능합니다.
  • 다운로드한 쿠폰은 마이 > 나의 통장 에서 확인 가능합니다.
  • 도서정가제 적용 대상 상품에 대해서는 정가의 10%까지 쿠폰 할인이 가능합니다.
  • 도서정가제 적용 대상 상품에 10% 할인이 되었다면, 해당 상품에는 사용하실 수
    없습니다.

적립예정포인트 안내

  • 통합포인트 안내

    • 통합포인트는 교보문고(인터넷, 매장), 핫트랙스(인터넷, 매장), 모바일 교보문고 등 다양한 곳에서 사용하실 수 있습니다.
    • 상품 주문 시, 해당 상품의 적립률에 따라 적립 예정 포인트가 자동 합산되고 주문하신 상품이 발송완료 된 후에 자동으로 적립됩니다.
    • 단, 쿠폰 및 마일리지, 통합포인트, e교환권 사용 시 적립 예정 통합포인트가 변동될 수 있으며 주문취소나 반품시에는 적립된 통합포인트가 다시 차감됩니다.
  • 통합포인트 적립 안내

    • 통합포인트는 도서정가제 범위 내에서 적용됩니다.
    • 추가적립 및 회원 혜택은 도서정가제 대상상품(국내도서, eBook등)으로만 주문시는 해당되지 않습니다.
  • 기본적립) 상품별 적립금액

    • 온라인교보문고에서 상품 구매시 상품의 적립률에 따라 적립됩니다.
    • 단 도서정가제 적용 대상인 국내도서,eBook은 15%내에서 할인율을 제외한 금액내로 적립됩니다.
  • 추가적립) 5만원 이상 구매시 통합포인트 2천원 추가적립

    • 5만원 이상 구매시 통합포인트 2천원 적립됩니다.
    • 도서정가제 예외상품(외서,음반,DVD,잡지(일부),기프트) 2천원 이상 포함시 적립 가능합니다.
    • 주문하신 상품이 전체 품절인 경우 적립되지 않습니다.
  • 회원혜택) 3만원이상 구매시 회원등급별 2~4% 추가적립

    • 회원등급이 플래티넘, 골드, 실버 등급의 경우 추가적립 됩니다.
    • 추가적립은 실결제액 기준(쿠폰 및 마일리지, 통합포인트, e교환권 사용액 제외) 3만원 이상일 경우 적립됩니다.
    • 주문 후 취소,반품분의 통합포인트는 단품별로 회수되며, 반품으로 인해 결제잔액이 3만원 미만으로 변경될 경우 추가 통합포인트는 전액 회수될 수 있습니다.

제휴 포인트 안내

제휴 포인트 사용

  • OK CASHBAG 10원 단위사용 (사용금액 제한없음)
  • GS&POINT 최대 10만 원 사용
더보기

구매방법 별 배송안내

지역별 도착 예정일

수도권 지역

배송 일정 안내 테이블로 결제 완료 시간, 도착예정일 결제 완료 시간 컬럼의 하위로 평일 0시 ~ 12시 토요일 0시 ~ 11시 평일 12시 ~ 22시 평일 12시 ~ 24시 토요일 11시 ~ 21시 을(를) 나타낸 표입니다.
결제 완료 시간 도착예정일
평일 0시 ~ 12시

토요일 0시 ~ 11시
당일배송 오늘

당일배송 오늘
평일 12시 ~ 22시

평일 12시 ~ 24시

토요일 11시 ~ 21시
새벽배송 내일 07시 이전

내일

일요배송 일요일

수도권 외 (천안, 대전, 울산, 부산, 대구, 창원)

배송 일정 안내 테이블로 결제 완료 시간, 도착예정일 결제 완료 시간 컬럼의 하위로 월~토 0시 ~ 11시 30분 을(를) 나타낸 표입니다.
결제 완료 시간 도착예정일
월~토 0시 ~ 11시 30분
당일배송 오늘

배송 유의사항

  • 새벽배송과 일요배송은 수도권 일부 지역을 대상으로 합니다. 상품 상세페이지에서 도착 예정일을 확인해 주세요.
  • 수도권 외 지역에서 선물포장하기 또는 사은품을 포함하여 주문할 경우 당일배송 불가합니다.
  • 무통장입금 주문 후 당일 배송 가능 시간 이후 입금된 경우 당일 배송 불가합니다.
  • 새벽배송의 경우 공동 현관 출입 번호가 누락 되었거나 틀릴 경우 요청하신 방법으로 출입이 어려워, 부득이하게 공동 현관 또는 경비실 앞에 배송 될 수 있습니다.
  • 학교, 관공서, 회사 등 출입 제한 시간이 있는 곳은 당일배송, 새벽배송, 일요배송이 제공되지 않을 수 있습니다.
  • 공휴일과 겹친 토요일, 일요일은 일요일 배송에서 제외됩니다. 일요배송은 한정 수량에 한해 제공됩니다. 수량 초과 시 일반배송으로 발송되니 주문 시 도착 예정일을 확인해 주세요.
  • 주문 후 배송지 변경 시 변경된 배송지에 따라 익일 배송될 수 있습니다.
  • 수도권 외 지역의 경우 효율적인 배송을 위해 각 지역 매장에서 택배를 발송하므로, 주문 시의 부록과 상이할 수 있습니다.
  • 각 지역 매장에서 재고 부족 시 재고 확보를 위해 당일 배송이 불가할 수 있습니다.
  • 기상악화로 인한 도로 사정으로 일부 지역의 배송 지연이 발생될 수 있습니다.
  • 출고 예정일이 5일 이상인 상품의 경우(결제일로부터 7일 동안 미입고), 출판사 / 유통사 사정으로 품/절판 되어 구입이 어려울 수 있습니다. 이 경우 SMS, 메일로 알려드립니다.
  • 분철상품 주문 시 분철 작업으로 인해 기존 도착 예정일에 2일 정도 추가되며, 당일 배송, 해외 배송이 불가합니다.
  • 해외주문도서는 해외 거래처 사정에 의해 품절/지연될 수 있습니다.
  • 스페셜오더 도서나 일서 해외 주문 도서와 함께 주문 시 배송일이 이에 맞추어 지연되오니, 이점 유의해 주시기 바랍니다.

바로드림존에서 받기

  1. STEP 01
    매장 선택 후 바로드림 주문
  2. STEP 02
    준비완료 알림 시 매장 방문하기
  3. STEP 03
    바로드림존에서 주문상품 받기
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상 시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함 되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해 주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반 코너에서 수령확인이 가능합니다
  • 선물 받는 분의 휴대폰번호만 입력하신 후 결제하시면 받는 분 휴대폰으로 선물번호가 전달됩니다.
  • 문자를 받은 분께서는 마이 > 주문관리 > 모바일 선물내역 화면에서 선물번호와 배송지 정보를 입력하시면 선물주문이 완료되어 상품준비 및 배송이 진행됩니다.
  • 선물하기 결제하신 후 14일까지 받는 분이 선물번호를 등록하지 않으실 경우 주문은 자동취소 됩니다.
  • 또한 배송 전 상품이 품절 / 절판 될 경우 주문은 자동취소 됩니다.

바로드림 서비스 안내

  1. STEP 01
    매장 선택 후 바로드림 주문
  2. STEP 02
    준비완료 알림 시 매장 방문하기
  3. STEP 03
    바로드림존에서 주문상품 받기
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반코너에서 수령확인이 가능합니다.
  1. STEP 01
    픽업박스에서 찾기 주문
  2. STEP 02
    도서준비완료 후 휴대폰으로 인증번호 전송
  3. STEP 03
    매장 방문하여 픽업박스에서 인증번호 입력 후 도서 픽업
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반코너에서 수령확인이 가능합니다.

도서 소득공제 안내

  • 도서 소득공제란?

    • 2018년 7월 1일 부터 근로소득자가 신용카드 등으로 도서구입 및 공연을 관람하기 위해 사용한 금액이 추가 공제됩니다. (추가 공제한도 100만원까지 인정)
      • 총 급여 7,000만 원 이하 근로소득자 중 신용카드, 직불카드 등 사용액이 총급여의 25%가 넘는 사람에게 적용
      • 현재 ‘신용카드 등 사용금액’의 소득 공제한도는 300만 원이고 신용카드사용액의 공제율은 15%이지만, 도서·공연 사용분은 추가로 100만 원의 소득 공제한도가 인정되고 공제율은 30%로 적용
      • 시행시기 이후 도서·공연 사용액에 대해서는 “2018년 귀속 근로소득 연말 정산”시기(19.1.15~)에 국세청 홈택스 연말정산간소화 서비스 제공
  • 도서 소득공제 대상

    • 도서(내서,외서,해외주문도서), eBook(구매)
    • 도서 소득공제 대상 상품에 수반되는 국내 배송비 (해외 배송비 제외)
      • 제외상품 : 잡지 등 정기 간행물, 음반, DVD, 기프트, eBook(대여,학술논문), 사은품, 선물포장, 책 그리고 꽃
      • 상품정보의 “소득공제” 표기를 참고하시기 바랍니다.
  • 도서 소득공제 가능 결제수단

    • 카드결제 : 신용카드(개인카드에 한함)
    • 현금결제 : 예치금, 교보e캐시(충전에한함), 해피머니상품권, 컬쳐캐쉬, 기프트 카드, 실시간계좌이체, 온라인입금
    • 간편결제 : 교보페이, 네이버페이, 삼성페이, 카카오페이, PAYCO, 토스, CHAI
      • 현금결제는 현금영수증을 개인소득공제용으로 신청 시에만 도서 소득공제 됩니다.
      • 교보e캐시 도서 소득공제 금액은 교보eBook > e캐시 > 충전/사용내역에서 확인 가능합니다.
      • SKpay, 휴대폰 결제, 교보캐시는 도서 소득공제 불가
  • 부분 취소 안내

    • 대상상품+제외상품을 주문하여 신용카드 "2회 결제하기"를 선택 한 경우, 부분취소/반품 시 예치금으로 환원됩니다.

      신용카드 결제 후 예치금으로 환원 된 경우 승인취소 되지 않습니다.

  • 도서 소득공제 불가 안내

    • 법인카드로 결제 한 경우
    • 현금영수증을 사업자증빙용으로 신청 한 경우
    • 분철신청시 발생되는 분철비용

알림 신청

아래의 알림 신청 시 원하시는 소식을 받아 보실 수 있습니다.
알림신청 취소는 마이룸 > 알림신청내역에서 가능합니다.

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

신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.

허위 신고일 경우, 신고자의 서비스 활동이 제한될 수 있으니 유의하시어
신중하게 신고해주세요.

판형알림

  • A3 [297×420mm]
  • A4 [210×297mm]
  • A5 [148×210mm]
  • A6 [105×148mm]
  • B4 [257×364mm]
  • B5 [182×257mm]
  • B6 [128×182mm]
  • 8C [8절]
  • 기타 [가로×세로]
EBS X 교보문고 고객님을 위한 5,000원 열공 혜택!
자세히 보기

해외주문양서 배송지연 안내

현재 미국 현지 눈폭풍으로 인해
해외 거래처 출고가 지연되고 있습니다.

해외주문양서 주문 시
예상 출고일보다 배송기간이 더 소요될 수 있으니
고객님의 너그러운 양해 부탁드립니다.

감사합니다.