HOME > Detail View

Detail View

미티어 인 액션 : 데이터 기반 웹 애플리케이션 핵심 개발 도구

미티어 인 액션 : 데이터 기반 웹 애플리케이션 핵심 개발 도구 (Loan 3 times)

Material type
단행본
Personal Author
Hochhaus, Stephan. Schoebel, Manuel, 저 고석범, 역
Title Statement
미티어 인 액션 : 데이터 기반 웹 애플리케이션 핵심 개발 도구 / 스테판 호츠하우스, 마누엘 쇼벨 지음 ; 고석범 옮김
Publication, Distribution, etc
서울 :   에이콘,   2016  
Physical Medium
562 p. : 삽화 ; 24 cm
Series Statement
에이콘 웹 프로페셔널 시리즈 = Web professional series
Varied Title
Meteor in action
ISBN
9788960779167 9788960770935 (세트)
General Note
부록: A. 미티어 설치, B. MonogoDB의 구조, C. nginx 설정  
색인수록  
Subject Added Entry-Topical Term
Web applications --Programming Application software --Development Web site development JavaScript (Computer program language)
000 00000cam c2200205 c 4500
001 000045903945
005 20170425142525
007 ta
008 170424s2016 ulka 001c kor
020 ▼a 9788960779167 ▼g 94000
020 1 ▼a 9788960770935 (세트)
035 ▼a (KERIS)BIB000014262472
040 ▼a 211048 ▼c 211048 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 006.7/8 ▼2 23
085 ▼a 006.78 ▼2 DDCK
090 ▼a 006.78 ▼b 2016z1
100 1 ▼a Hochhaus, Stephan.
245 1 0 ▼a 미티어 인 액션 : ▼b 데이터 기반 웹 애플리케이션 핵심 개발 도구 / ▼d 스테판 호츠하우스, ▼e 마누엘 쇼벨 지음 ; ▼e 고석범 옮김
246 1 9 ▼a Meteor in action
260 ▼a 서울 : ▼b 에이콘, ▼c 2016
300 ▼a 562 p. : ▼b 삽화 ; ▼c 24 cm
440 0 0 ▼a 에이콘 웹 프로페셔널 시리즈 = ▼x Web professional series
500 ▼a 부록: A. 미티어 설치, B. MonogoDB의 구조, C. nginx 설정
500 ▼a 색인수록
650 0 ▼a Web applications ▼x Programming
650 0 ▼a Application software ▼x Development
650 0 ▼a Web site development
650 0 ▼a JavaScript (Computer program language)
700 1 ▼a Schoebel, Manuel, ▼e
700 1 ▼a 고석범, ▼e
900 1 0 ▼a 호츠하우스, 스테판, ▼e
900 1 0 ▼a 쇼벨, 마누엘, ▼e
945 ▼a KLPA

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 006.78 2016z1 Accession No. 121240061 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

에이콘 웹 프로페셔널 시리즈. 미티어는 노드제이에스를 배경에 두면서 프런트에서 백엔드까지 모든 것을 자바스크립트 하나로 코딩할 수 있는 환경을 제공한다. 또한 반응성 프로그래밍(reactive programming)이라는 개념을 사용하기 때문에 데이터가 바뀌면 바로 자동으로 그 값이 반영되도록 설계돼 있어 기술적 프로그래밍(declarative programming)이 가능하여 적은 코드로도 많은 기능을 구현할 수 있다.

이 책은 미티어 스택의 핵심 부분, 즉 클라우드에서 각 액티브 유저로 새로운 정보를 발행하는 데이터 동기화 기술, 반응성 템플릿을 사용하여 데이터의 변화에 따라 스크린이 다시 디스플레이되게 하기, 이벤트와 폼, 미티어의 아이소모픽 유저 계정, 라우팅, 패키지, 보안 등을 모두 다루고 있다.

★ 요약 ★

미티어는 노드제이에스를 배경에 두면서 프런트에서 백엔드까지 모든 것을 자바스크립트 하나로 코딩할 수 있는 환경을 제공한다. 또한 반응성 프로그래밍(reactive programming)이라는 개념을 사용하기 때문에 데이터가 바뀌면 바로 자동으로 그 값이 반영되도록 설계돼 있어 기술적 프로그래밍(declarative programming)이 가능하여 적은 코드로도 많은 기능을 구현할 수 있다. 이 책은 미티어 스택의 핵심 부분, 즉 클라우드에서 각 액티브 유저로 새로운 정보를 발행하는 데이터 동기화 기술, 반응성 템플릿을 사용하여 데이터의 변화에 따라 스크린이 다시 디스플레이되게 하기, 이벤트와 폼, 미티어의 아이소모픽 유저 계정, 라우팅, 패키지, 보안 등을 모두 다루고 있다.

★ 이 책에서 다루는 내용 ★

■ 실시간 애플리케이션 개발
■ 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) 설정 방법을 설명한다.


Information Provided By: : Aladin

Author Introduction

스테판 호츠하우스(지은이)

언어학을 위한 펄(Perl) 강의를 듣다가 우연히 개발에 발을 들여놓기 시작했다. 큰 기업에서 확장성 있는 웹 솔루션과 PHP, C#, 자바 등을 다뤄보다가 2013년 중소 회사를 위한 웹 애플리케이션을 개발하는 사업을 시작했다. 그는 미티어를 접한 이후부터 자바스크립트에 안착해야겠다는 생각을 했다. 스테판은 스크럼(Scrum)과 지속적인 배치(Continuous Delivery)에 관련된 컨설턴트 일도 병행하고 있다. 보훔 대학교에서 언어학과 사회-심리학에 대한 석사학위를 가지고 있고, 정규 표현식에 익숙하다. 독일의 쾰른과 루르 지역에서 미티어 미트업을 만들어 미티어 개발자들의 아이디어와 새롭게 개발한 것들을 공유할 수 있도록 하고 있다.

마누엘 쇼벨(지은이)

이센 대학교에서 경영정보학을 수료했으며, 웹 기업가 정신에 특히 많은 관심을 가지고 있다. 마누엘은 많은 시간을 들여 창업자들을 가르치는 한편, MVP(Minimum Viable Product)(최소 기능 제품)을 개발하는 것을 돕고 있으며, 여러 가지 스타트업을 창업하기도 했다. 그는 2012년 미티어가 막 태동할 때부터 연구를 시작했으며, 매우 유용한 블로그 포스트로 인해 미티어 커뮤니티에서 유명한 전문가가 되었다. 독일의 쾰른과 루르 지역에서 미티어 미트업을 만들어 미티어 개발자들의 아이디어와 새롭게 개발한 것들을 공유할 수 있도록 하고 있다.

고석범(옮긴이)

가톨릭대학교 의과대학을 졸업하고, 서울성모병원에서 신경과 전문의 자격을 획득했다. 종합병원, 요양병원 등에서 봉직의로 근무한 경력이 있고, 시립 요양원 책임자를 맡기도 했다. 센터 관리자, 병원장 등과 같은 행정 경험을 하면서 여러 가지 의료 현장의 문제를 컴퓨터가 해결할 수 있음을 깨닫고 독학으로 컴퓨터를 공부하기 시작했다. 시간을 쪼개 R 프로그래밍 언어와 헬스케어 관련 책들을 저술하고 번역했다. 액체 생검 바이오 벤처에서 일했고, 지금은 다시 의료 현장으로 돌아와 헬스케어 ICT를 통해 의료의 질과 효율을 향상시키는 데 기여하고자 노력 중이다.

Information Provided By: : Aladin

Table of Contents

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 설치하기

New Arrivals Books in Related Fields

Deisenroth, Marc Peter (2020)