미티어 인 액션
도서명:미티어 인 액션
저자/출판사:스테판,호츠하우스,마누엘,쇼벨/에이콘출판
쪽수:564쪽
출판일:2016-11-30
ISBN:9788960779167
목차
1부. 와, 별똥별이다!
1장. 웹 앱을 만드는 더 나은 방법
__1.1 미티어 소개
____1.1.1 미티어의 비하인드 스토리
____1.1.2 미티어 스택
____1.1.3 아이소모픽 프레임워크: 풀-스택 자바스크립트
____1.1.4 브라우저에서의 프로세싱: 분산된 플랫폼에서의 실행
____1.1.5 반응성 프로그래밍
__1.2 미티어는 어떻게 작동하는가?
____1.2.1 코어 프로젝트
____1.2.2 아이소빌드와 커맨드라인 툴
____1.2.3 클라이언트 코드 대 서버 코드
__1.3 장점과 단점
____1.3.1 미티어가 빛을 발하는 경우
____1.3.2 미티어의 과제
__1.4 애플리케이션 만들기
____1.4.1 새로운 프로젝트 설정하기
____1.4.2 애플리케이션 시작하기
__1.5 디폴트 프로젝트 분해하기
____1.5.1 helloWorld.css
____1.5.2 helloWorld.html
____1.5.3 helloWorld.js
__1.6 정리
2장. 냉장고: 반응성 게임
__2.1 애플리케이션 개요
__2.2 초기 설정
____2.2.1 새 프로젝트 설정
__2.3 레이아웃 작성하기
____2.3.1 스타일 설정하기
____2.3.2 템플릿 추가하기
__2.4 실시간으로 데이터베이스에 내용 추가하기
____2.4.1 데이터베이스에 아이템 저장하기
____2.4.2 데이터를 템플릿에 연결하기
____2.4.3 초기 제품군 추가하기
__2.5 냉장고 안에 아이템 넣기
____2.5.1 제이쿼리-UI를 프로젝트에 추가하기
____2.5.2 아이템의 드롭 타깃 정하기
____2.5.3 아이템들을 드래그할 수 있도록 하기
__2.6 meteor.com에 배치한 후 냉장고 앱 사용하기
__2.7 정리
2부. 3, 2, 1 ― 충돌!
3장. 템플릿 다루기
__3.1 템플릿에 대한 소개
__3.2 템플릿 다루기
____3.2.1 블레이즈(Blaze) 엔진
____3.2.2 템플릿 파일 구성하기
__3.3 동적인 HTML 템플릿 만들기
____3.3.1 이중, 삼중 중괄호 태그(표현식)
____3.3.2 인클루전 태그(파셜)
____3.3.3 블록 태그
____3.3.4 헬퍼
__3.4 이벤트 핸들링
____3.4.1 템플릿 이벤트 맵
____3.4.2 이벤트 전파
____3.4.3 브라우저 디폴트 행동 차단하기
__3.5 템플릿 생애 주기
__3.6 정리
4장. 데이터 다루기
__4.1 미티어의 디폴트 데이터 소스
____4.1.1 무엇이 데이터 소스를 반응성으로 만드는가?
____4.1.2 반응성 데이터는 어떻게 함수와 연결되는가?
__4.2 가사돌봄이 앱 만들기
____4.2.1 템플릿 설정하기
____4.2.2 데이터베이스 연결과 컬렉션 정의
__4.3 Session 객체 다루기
____4.3.1 Session 객체
____4.3.2 선택된 드롭다운 값을 저장하기 위해 Session 사용하기
____4.3.3 Tracker.autorun을 사용하여 반응성 맥락 만들기
__4.4 MongoDB 컬렉션 다루기
____4.4.1 MongoDB에서 도큐먼트 조회하기
____4.4.2 미티어 컬렉션 다루기
____4.4.3 컬렉션 초기화하기
____4.4.4 컬렉션 조회하기
____4.4.5 템플릿에 컬렉션 데이터 표시하기
____4.4.6 컬렉션 데이터 업데이트
____4.4.7 컬렉션에 새로운 데이터 삽입
____4.4.8 컬렉션에서 데이터 삭제
__4.5 정리
5장. 완전한 반응성 편집
__5.1 반응성 편집 작업 과정
__5.2 반응성 프론트-엔드 대 DOM 조작
__5.3 로컬 컬렉션에 변화를 스테이징하기
__5.4 폼에 컬렉션 데이터 표시하기
____5.4.1 #each 루프에 배열 인덱스 정보 추가하기
__5.5 로컬 켈렉션을 사용한 반응성 업데이트
____5.5.1 houseForm 템플릿을 위한 이벤트 맵
____5.5.2 plantFieldset 템플릿을 위한 이벤트 맵
__5.6 간단한 알림 시스템 구현하기
____5.6.1 알림을 위한 템플릿 추가하기
____5.6.2 status 프로퍼티 추가하기
____5.6.3 Session 변수를 사용하여 알림을 트리거하기
__5.7 정리
6장. 사용자 관리, 인증과 권한
__6.1 사용자를 애플리케이션에 추가하기
____6.1.1 패스워드 인증 기능 추가하기
____6.1.2 등록과 패스워드 리셋
____6.1.3 이메일 설정
__6.2 OAuth를 사용한 사용자 인증
____6.2.1 OAuth에 대한 소개
____6.2.2 페이스북 인증을 통합하기
____6.2.3 다른 OAutho 서비스 제공자 통합하기
__6.3 사용자 허가 사항, 역할, 그룹 등의 관리
____6.3.1 allow/deny를 사용하여 권한 관리하기
__6.4 정리
7장. 데이터 교환
__7.1?발행과 구독
____7.1.1 publish()와 subscribe()
____7.1.2 글로벌 구독
____7.1.3 템플릿-레벨 구독
____7.1.4 구독에 파라미터 전달하기
____7.1.5 집계 데이터(aggregated data)를 클라이언트에만 존재하는 컬렉션으로 발행
____7.1.6 집계된 발행을 반응성 데이터 소스로 만들기
____7.1.7 사용자 아이디에 따라서 보이는 데이터 한정하기
__7.2 미티어 메서드
____7.1.2 insecure 패키지 삭제하기
____7.2.2 메서드를 사용하여 컬렉션에 데이터 쓰기
__7.3 정리
8장. Iron.Router를 사용한 라우팅
__8.1 웹 애플리케이션에서의 라우팅
__8.2 클라이언트-사이드 라우팅
____8.2.1 Iron.Router 추가하기
____8.2.2 첫 번째 라우트 만들기
____8.2.3 라우트에 의존하는 레이아웃 정의하기
____8.2.4 라우트에 의존하는 데이터 맥락 설정
____8.2.5 Iron.Router를 사용하여 데이터 구독
__8.3 고급 라우팅 메서드
____8.3.1 이름 붙여진 라우터와 링크 헬퍼 사용
____8.3.2 더 나은 내비게이션 링크를 위해 액티브 라우트 다루기
____8.3.3 외부 라이브러리 로딩 대기
____8.3.4 라우터를 컨트롤러로 체계화하기
____8.3.5 훅을 사용하여 라우트 프로세싱 기능 확장.
____8.3.6 Iron.Router 플러그인 만들기
__8.4 REST API를 가진 서버 사이드 라우팅
__8.5 정리
9장. 패키지 시스템
__9.1 모든 애플리케이션의 기초
__9.2 아이소팩 사용하기
____9.2.1 버전 솔버와 시맨틱 버전
____9.2.2 패키지 찾기
____9.2.3 아이소팩 추가와 삭제
____9.2.4 패키지 업데이트하기
__9.3 npm 패키지 사용
__9.4 아이소팩 만들기
____9.4.1 패키지 만들기
____9.4.2 패키지 메타데이터 선언하기
____9.4.3 패키지 기능 추가하기
____9.4.4 tinytest를 사용하여 아이소팩 테스팅하기
____9.4.5 공개하기
__9.5 정리
10장. 고급 서버 메서드
__10.1 Node.js 다시 보기
____10.1.1 동기식 코드
____10.1.2 비동기식 코드
__10.2 파이버를 사용한 비동기식 함수
____10.2.1 이벤트 루프에 멀티태스킹 기능 부여하기
____10.2.2 wrapAsync를 사용하여 파이버에 콜백 바인딩
____10.2.3 하나의 클라이언트에서 메서드 언블록킹하기
____10.2.4 bindEnvironment를 사용하여 파이버 생성하기
__10.3 외부 API통합하기
____10.3.1 http 패키지를 사용하여 RESTful 호출 실행하기
____10.3.2 API 쿼리를 위해 동기식 메서드 사용하기
____10.3.3 API 쿼리를 위해 비동기식 메서드 사용하기
__10.4 컬렉션으로 파일 업로딩하기
____10.4.1 데이터베이스에 파일 업로딩하기
__10.5 정리
3부. 크레이터 남기기!
11장. 빌딩과 디버깅
__11.1 미티어 빌드 프로세스
____11.1.1 빌드 단계
____11.1.2 --production 옵션을 사용하여 실행
____11.1.3 로드 순서
____11.1.4 패키지를 통해 빌드 단계 추가
____11.1.5 커스텀 빌드 단계 추가
__11.2 실행되는 애플리케이션에 접근하기
____11.2.1 인터랙티브 서버 셸 사용
____11.2.2 node-inspector를 사용하여 디버깅
__11.3 브라우저 애플리케이션 만들기
____11.3.1 1meteor.settings를 사용하여 애플리케이션 설정
____11.3.2 미티어 프로젝트 빌드
__11.4 모바일 애플리케이션 만들기
____11.4.1 코르도바를 사용한 하이브리드 앱
____11.4.2 모바일 플랫폼 추가
____11.4.3 모바일 플랫폼 설정
____11.4.4 모바일 기능 추가
__11.5 정리
12장. 출시
__12.1 출시 준비
____12.1.1 버전 관리자 사용
____12.1.2 벨로시티(Velocity) 프레임워크를 가지고 테스팅하기
____12.1.3 로드를 예측하고 테스팅하기
____12.1.4 서버 관리
____12.1.5 체크리스트
__12.2 설정과 배치
____12.2.1 metero.com을 이용한 간단한 배치
____12.2.2 모든 것이 준비된 호스팅: 클라우드 서비스
____12.2.3 완전한 유연성: 매뉴얼 설정
__12.3 조각들을 연결하기
____12.3.1 환경 변수
____12.3.2 미티어를 MonogoDB에 연결하기
__12.4 스케일링 전략
____12.4.1 여유가 있는 능동-수동 고가용성
____12.4.2 단일 요소로 구성된 배치
____12.4.3 여유분과 부하 분산
____12.4.4 방탄복과 같은 가용성
__12.5 정리
부록 A. 미티어 설치
__A.1 요구사항
__A.2 리눅스와 맥 OS X에 미티어 설치하기
__A.3 윈도우에 미티어 설치하기
__A.4 Vagrant를 사용하여 미티어 실행하기
부록 B. MonogoDB의 구조
__B.1 MongoDB의 구성 요소들
____B.1.1 mongod: 데이터베이스와 샤드
____B.1.2 mongos: 쿼리 라우팅
____B.1.3 mongoc: 서버들에 대한 설정
____B.1.4 레플리카 셋
__B.2 MongoDB 설정
부록 C. nginx 설정
__C.1 엔진 엑스를 사용한 부하 분산(load balancing)
____C.1.1 우분투에 nginx 설치하기
____C.1.2 데비****7(Wheezy)에 설치하기
__C.2 부하 분산기 설정하기
____C.2.1 하나의 사이트 설정 파일 만들기
____C.2.2 미티어 서버 정의하기
____C.2.3 요청을 백엔드 서버들로 포워딩하기
____C.2.4 nginx 사이트 활성화하기
__C.3 엔진 엑스를 사용하여 정적인 콘텐츠 서빙하기
____C.3.1 CSS와 자바스크립트 파일 서빙
____C.3.2 미티어 파일들과 이미지들을 서빙하기
____C.3.3 gzip 압축 기능 추가하기
__C.4 엔진 엑스에 SSL 설치하기