Top

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

  • 원서명Meteor in Action (ISBN 9781617292477)
  • 지은이스테판 호츠하우스(Stephan Hochhaus), 마누엘 쇼벨 (Manuel Schoebel)
  • 옮긴이고석범
  • ISBN : 9788960779167
  • 40,000원
  • 2016년 11월 30일 펴냄 (절판)
  • 페이퍼백 | 548쪽 | 188*235mm
  • 시리즈 : 웹 프로페셔널

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/meteor-in-action)

요약

미티어는 노드제이에스를 배경에 두면서 프런트에서 백엔드까지 모든 것을 자바스크립트 하나로 코딩할 수 있는 환경을 제공한다. 또한 반응성 프로그래밍(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) 설정 방법을 설명한다.

저자/역자 소개

지은이의 말

애플리케이션을 개발해본 경험이 있는 사람들은 “애플리케이션 개발은 로켓 과학이 아니다.”라는 말을 자주 한다. 웹 애플리케이션 개발이 사람을 우주로 보내는 것만큼 복잡하지는 않더라도 경험해보지 않은 사람들은 상당히 두려운 대상이 될 수 있다. 보통 웹에 애플리케이션을 올리기 위해서는 매우 많은 도구와 서버 요소가 필요하다. 미티어는 이런 상황에서 게임-체인저가 되고자 한다. 미티어 개발자 중 한 사람인 닉 마틴(Nick Martin)은 다음과 같이 표현했다.
“우리는 미티어를 통해 앱을 만들고자 하는 모든 사람과 모든 장소에 힘을 부여함으로써 웹 앱 개발의 대중화를 지향한다.”
우리는 HTML, CSS에 대한 기초 지식만을 가진 사람들이 미티어로 하루도 채 안 되는 시간 동안, 그들의 아이디어를 코드로 바꾸는 것을 보아왔다. 우리는 이러한 이유 때문에 미티어가 개발을 더 편리하게 만든다고 믿고 있다. 미티어는 자신이 한 번도 개발자라고 생각해보지 않았던 사람들에게 개발의 장을 열어줄 것이다.
아마도 반나절 이상 동안 미티어를 가지고 놀아보면 훌륭한 교사가 없더라도 길이 보일 것이다. 이때 『미티어 인 액션』이 도움이 될 것이다. 이 책은 웹 앱, 모바일 앱에 상관없이 애플리케이션을 만들 때 필요한 모든 측면을 자세히 설명해줄 개인 교사 역할을 할 것이다. 궁극적으로는 당신의 생각을 코드로 바꿀 수 있게 될 것이다. 미티어 이전에 이러한 시도를 했더라면, 미티어가 가장 흔한 문제들을 얼마나 빠르게 해결하는지 알게 될 것이다.
『미티어 인 액션』을 쓸 때 프런트-엔드 개발자와 서버 쪽 배경을 가진 개발자 모두를 고려했다. 프런트-엔드 개발자는 그들의 기술을 서버로 확장할 수 있도록 했으며, 서버 개발자는 자바(Java), 루비(Ruby), PHP 등에서 풀-스택 자바스크립트로 옮겨갈 수 있도록 배려했다. 이 책은 완전 초보자를 위한 것이 아니라 이전에 웹을 조금이나마 개발해본 사람들을 위한 것이다.
미티어는 지금 이 순간에도 진화를 거듭하고 있다. 우리는 독자들이 미티어 플랫폼의 핵심 사항을 익힐 수 있는 기초를 제공하기 위해 심혈을 기울였다. 또한 이 책에서 설명한 모든 기능들을 미티어 버전 1.1에서 모두 잘 동작하는 것을 확인했다.

지은이 소개

스테판 호츠하우스(Stephan Hochhaus)

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

마누엘 쇼벨 (Manuel Schoebel)

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

마누엘과 스테판은 독일의 쾰른과 루르 지역에서 미티어 미트업을 만들어 미티어 개발자들의 아이디어와 새롭게 개발한 것들을 공유할 수 있도록 하고 있다.

옮긴이의 말

미티어(Meteor)에 대한 관심은 R의 Shiny 패키지와 관련돼 있다. 이전에 Shiny에 관련된 작은 책을 번역한 적이 있는데, 어느 글에서 Shiny 개발자가 Shiny의 반응성(reactive) 프로그래밍 방식은 미티어의 방식을 따랐다는 글을 읽고 미티어가 무엇인지 무척 궁금했다.
웹사이트에서 관련 자료들을 통해 간단한 애플리케이션을 따라 만들어보면서, 미티어의 세계에 빠져들었다. 사실 이 책을 번역할 때까지만 해도 HTML, CSS, 자바스크립트 실력이 초보적인 수준이었기 때문에 무사히 번역을 할 수 있을지에 에 대한 걱정이 많았다. 새로운 개념은 새로 공부하면서 하나씩 채워나갔다. 그래서인지 시간은 처음 생각했던 것보다 오래 걸렸다.
이전에 루비 온 레이즈(Ruby on Rails)로도 웹사이트를 구성해보았던 경험과 비교하면 미티어는 여러 모로 새로웠다. 우선 미티어는 그 목적이 문서를 보여주는 정적인 웹사이트를 만드는 것에 있는 것이 아니라 데이터의 이동이 많은 다이내믹 웹 애플리케이션을 만드는 데 있다. 그리고 데이터베이스 쿼리 등에서 프런트-엔드에 이르는 모든 과정이 자바스크립트 하나로 해결된다는 점이 특징이다.
여러 분야에서 데이터의 중요성이 강조되고, 데이터를 제공해주는 서비스가 늘어나고 있는 상황에서 웹 애플리케이션 개발 도구인 미티어는 앞으로 중요해질 수밖에 없을 것이라는 생각이 든다. 최근 ‘MIT Technology Review’라는 잡지사는 ‘슬랙(Slack) (https://slack.com)’이라는 도구를 2016년 혁신적인 10 대 기술 중 하나로 선정하였는데, 미티어는 이를 만드는 데 최적의 도구라고 생각한다.
내가 코딩을 즐긴다고 하면 좀 이상하게 바라보는 사람들이 많다. 코딩은 생각을 실물로 바꾸는 놀라운 힘을 가지고 있다. 그동안 하고 싶었던 일들을 실현시킬 수 있는 것이 코딩이라고 생각했다. 이러한 배움의 연장으로 이 책을 번역했다. 전문가들이 보기에 혹시 부족한 부분이 있다면 너그럽게 용서해주기 바란다.

옮긴이 소개

고석범

가톨릭대학교 의과대학을 졸업하고 신경과 전문의 자격을 취득했다. 수년 동안 일반 병원, 공공 노인 요양원, 요양 병원에서 근무했다. 언제나 의료 현장의 혁신을 지향했지만 언제나 구호로만 그치는 것을 보면서, 실체가 없는 혁신은 의미가 없음을 깨닫고, 실질적인 혁신을 위해 책과 인터넷으로 컴퓨터를 배우기 시작했다. 병원장까지 역임했지만, 자신이 원하는 일을 하기 위해 병원을 떠나 혈중암세포를 포획하는 장비 등을 개발하는 (주)지노바이오 대표이사로 취임했고, 지인들과 새로운 개념의 헬스케이 비즈니스를 위한 (주)시클리드를 창업했다.
번역서로는 에이콘에서 출판한 『R과 Shiny 패키지를 활용한 웹 애플리케이션 개발』(2014), 『데이터스마트』(2015)이 있으며, 집필서로는 『R과 Knitr를 활용한 데이터 연동형 문서 만들기』(2014)가 있다.

목차

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

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안