출고예상일 안내
주문하신 상품이 한국에서 현지 배송을 위한 출고단계가 이루어질 것으로 예상되는 날짜입니다. 상품을 준비하는 과정에서 내부적인 사정으로 인해 출고예상일에 다소 오차가 생길 수 있습니다.
여러 상품(예약상품포함)을 함께 주문하신 경우 출고예상일이 가장 늦은 날짜에 맞춰 함께 배송됩니다.

미티어 인 액션 데이터 기반 웹 애플리케이션 핵심 개발 도구
시리즈 : 에이콘 웹 프로페셔널 [64]
스테판 호츠하우스, 마누엘 쇼벨 저 | 고석범 역 | 에이콘출판 | 2016년 11월
ISBN : 9788960779167 / 564쪽 187 x 235 (㎜)
이 상품에 궁금하신점이 있으세요? 1:1상담문의

-
성구(강성규)
-
클리커, 이희영, 강민혁
-
거트루드(박태현)
- 21,600
- 21,600
- 22,500
- 23,400
- [시리즈] 에이콘 웹 프로페셔널 [64]
출판사 리뷰
출판사 서평 ★ 이 책에서 다루는 내용 ★ ■ 실시간 애플리케이션 개발 ■ MongoDB와 기타 반응성 데이터 소스 사용 ■ 아이언 라우터(Iron Router)를 가진 애플리케이션 개발 ■ 애플리케이션 배치 및 스케일링 ★ 이 책의 대상 독자 ★ 이 책은 독자들이 적어도 기초적인 HTML, CSS, 자바스크립트에 대한 지식을 가지고 있다고 가정한다. 객체를 다루는 방법과 이전에 콜백을 사용한 경험을 가지고 있어야 하며 (반드시 필요한 것은 아니지만) 데이터베이스가 작동하는 기초 지식을 갖추고 있는 것이 좋다. 하지만 서버... ★ 이 책에서 다루는 내용 ★ ■ 실시간 애플리케이션 개발 ■ MongoDB와 기타 반응성 데이터 소스 사용 ■ 아이언 라우터(Iron Router)를 가진 애플리케이션 개발 ■ 애플리케이션 배치 및 스케일링 ★ 이 책의 대상 독자 ★ 이 책은 독자들이 적어도 기초적인 HTML, CSS, 자바스크립트에 대한 지식을 가지고 있다고 가정한다. 객체를 다루는 방법과 이전에 콜백을 사용한 경험을 가지고 있어야 하며 (반드시 필요한 것은 아니지만) 데이터베이스가 작동하는 기초 지식을 갖추고 있는 것이 좋다. 하지만 서버 사이드 자바스크립트나 Node.js에 대한 경험은 필요하지 않다. ★ 이 책의 구성 ★ 이 책은 세 가지 부분으로 구성되어 있다. 1부에서는 플랫폼에 대한 고차원적인 개요를 제공한다. 여기서는 미티어 스택의 구성 요소와 주요 개념을 소개한다. 1장에서 Node.js, MongoDB, 아소모피즘, 반응성을 소개한 후, 2장에서 첫 미티어 애플리케이션을 만들어볼 것이다. 2부에서는 반응성 애플리케이션을 위한 기초 요소를 알려준다. 각 장은 애플리케이션을 만들 때 접하는 여러 가지 요소를 개별적으로 설명한다. 3장은 템플릿으로 시작하고, 4장은 데이터를 다루는 방법과 CRUD 연산에 대해 다루며, 5장은 이 둘을 결합해 반응성 인터페이스를 구성할 때 고려해야 할 점을 설명한다. 6장에서는 사용자와 관련된 기능을 설명하면서 보안이 적용된 애플리케이션을 만드는 방법을 소개한다. 7장에서는 미티어가 디폴트로 사용하는 자동화된 데이터 발행 기전을 설명한다. 이 장에서는 미티어 발행/구도 개념과 또다른 보안 레이어를 구축하기 위해 메서드를 사용하는 방법도 소개한다. 8장에서는 인기 있는 Iron Router 라이브러리를 사용해 클라이언트와 서버에서 모두 사용되는 라우팅 기능을 설명한다. 9장에서는 아이소팩, npm 패키지, 사용자 작성 패키지 등을 사용하여 미티어의 핵심 기능을 확장하는 방법을 설명한다. 10장은 비동기식 연산을 위한 서버 쪽 메서드와 외부 API에 접근하는 방법, 파일을 업로딩하는 방법을 살펴보면서 두 번째 파트를 마무리한다. 3부에서는 한 단계 더 나아가 애플리케이션을 정확하게 빌드하고 배치하는 방법을 다룬다. 11장에서는 미티어의 빌드 시스템, 코드 디버깅, 웹과 모바일 애플리케이션으로 전환시키는 방법을 설명한다. 마지막 12장에서는 미티어 애플리케이션을 출시하기 위한 여러 가지 측면들을 살펴본다. 이 책의 마지막에는 3개의 부록이 있다. 부록 A에서는 지원되는 모든 플랫폼에 미티어를 설치하는 방법을 설명하고, 부록 B에서는 MongoDB의 구성과 고가용성을 획득하기 위한 요소를 설명한다. 이 밖에 확장을 위하여 미티어가 사용하는 방법의 중요한 기술 중 하나인 오피로그 테일링(oplog tailing)을 설정하는 방법도 설명한다. 부록 C에서는 여러 미티어 서버들의 부하를 분산하는 방법, 정적인 콘텐츠를 서빙하는 방법, SSL을 가능할 수 있도록 하는 기능 등을 구현하기 위한 엔진엑스(nginx)의 역프록시(reverse proxy) 설정 방법을 설명한다.
★ 지은이의 말 ★
애플리케이션을 개발해본 경험이 있는 사람들은 “애플리케이션 개발은 로켓 과학이 아니다.”라는 말을 자주 한다. 웹 애플리케이션 개발이 사람을 우주로 보내는 것만큼 복잡하지는 않더라도 경험해보지 않은 사람들은 상당히 두려운 대상이 될 수 있다. 보통 웹에 애플리케이션을 올리기 위해서는 매우 많은 도구와 서버 요소가 필요하다. 미티어는 이런 상황에서 게임-체인저가 되고자 한다. 미티어 개발자 중 한 사람인 닉 마틴(Nick Martin)은 다음과 같이 표현했다.
“우리는 미티어를 통해 앱을 만들고자 하는 모든 사람과 모든 장소에 힘을 부여함으로써 웹 앱 개발의 대중화를 지향한다.”
우리는 HTML, CSS에 대한 기초 지식만을 가진 사람들이 미티어로 하루도 채 안 되는 시간 동안, 그들의 아이디어를 코드로 바꾸는 것을 보아왔다. 우리는 이러한 이유 때문에 미티어가 개발을 더 편리하게 만든다고 믿고 있다. 미티어는 자신이 한 번도 개발자라고 생각해보지 않았던 사람들에게 개발의 장을 열어줄 것이다.
아마도 반나절 이상 동안 미티어를 가지고 놀아보면 훌륭한 교사가 없더라도 길이 보일 것이다. 이때 『미티어 인 액션』이 도움이 될 것이다. 이 책은 웹 앱, 모바일 앱에 상관없이 애플리케이션을 만들 때 필요한 모든 측면을 자세히 설명해줄 개인 교사 역할을 할 것이다. 궁극적으로는 당신의 생각을 코드로 바꿀 수 있게 될 것이다. 미티어 이전에 이러한 시도를 했더라면, 미티어가 가장 흔한 문제들을 얼마나 빠르게 해결하는지 알게 될 것이다.
『미티어 인 액션』을 쓸 때 프런트-엔드 개발자와 서버 쪽 배경을 가진 개발자 모두를 고려했다. 프런트-엔드 개발자는 그들의 기술을 서버로 확장할 수 있도록 했으며, 서버 개발자는 자바(Java), 루비(Ruby), PHP 등에서 풀-스택 자바스크립트로 옮겨갈 수 있도록 배려했다. 이 책은 완전 초보자를 위한 것이 아니라 이전에 웹을 조금이나마 개발해본 사람들을 위한 것이다.
미티어는 지금 이 순간에도 진화를 거듭하고 있다. 우리는 독자들이 미티어 플랫폼의 핵심 사항을 익힐 수 있는 기초를 제공하기 위해 심혈을 기울였다. 또한 이 책에서 설명한 모든 기능들을 미티어 버전 1.1에서 모두 잘 동작하는 것을 확인했다.
★ 옮긴이의 말 ★
미티어(Meteor)에 대한 관심은 R의 Shiny 패키지와 관련돼 있다. 이전에 Shiny에 관련된 작은 책을 번역한 적이 있는데, 어느 글에서 Shiny 개발자가 Shiny의 반응성(reactive) 프로그래밍 방식은 미티어의 방식을 따랐다는 글을 읽고 미티어가 무엇인지 무척 궁금했다.
웹사이트에서 관련 자료들을 통해 간단한 애플리케이션을 따라 만들어보면서, 미티어의 세계에 빠져들었다. 사실 이 책을 번역할 때까지만 해도 HTML, CSS, 자바스크립트 실력이 초보적인 수준이었기 때문에 무사히 번역을 할 수 있을지에 에 대한 걱정이 많았다. 새로운 개념은 새로 공부하면서 하나씩 채워나갔다. 그래서인지 시간은 처음 생각했던 것보다 오래 걸렸다.
이전에 루비 온 레이즈(Ruby on Rails)로도 웹사이트를 구성해보았던 경험과 비교하면 미티어는 여러 모로 새로웠다. 우선 미티어는 그 목적이 문서를 보여주는 정적인 웹사이트를 만드는 것에 있는 것이 아니라 데이터의 이동이 많은 다이내믹 웹 애플리케이션을 만드는 데 있다. 그리고 데이터베이스 쿼리 등에서 프런트-엔드에 이르는 모든 과정이 자바스크립트 하나로 해결된다는 점이 특징이다.
여러 분야에서 데이터의 중요성이 강조되고, 데이터를 제공해주는 서비스가 늘어나고 있는 상황에서 웹 애플리케이션 개발 도구인 미티어는 앞으로 중요해질 수밖에 없을 것이라는 생각이 든다. 최근 ‘MIT Technology Review’라는 잡지사는 ‘슬랙(Slack) (https://slack.com)’이라는 도구를 2016년 혁신적인 10 대 기술 중 하나로 선정하였는데, 미티어는 이를 만드는 데 최적의 도구라고 생각한다.
내가 코딩을 즐긴다고 하면 좀 이상하게 바라보는 사람들이 많다. 코딩은 생각을 실물로 바꾸는 놀라운 힘을 가지고 있다. 그동안 하고 싶었던 일들을 실현시킬 수 있는 것이 코딩이라고 생각했다. 이러한 배움의 연장으로 이 책을 번역했다. 전문가들이 보기에 혹시 부족한 부분이 있다면 너그럽게 용서해주기 바란다.
목차
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 컬렉션으로 파일 업로딩하기
_








































