이미 소장하고 있다면 판매해 보세요.
|
1장 익스프레스란 무엇인가
익스프레스란 무엇인가 ___익스프레스에 관한 이야기 익스프레스 설치 익스프레스를 구성하는 컴포넌트 ___애플리케이션 객체 ___요청 객체 ___응답 객체 익스프레스에서 사용하는 개념 ___비동기 자바스크립트 ___노드 모듈 ___익스프레스 앱은 전부 노드 모듈 ___미들웨어 ___요청 흐름 ___HTTP/HTTPS를 위한 노드 API 요약 2장 첫 번쨰 익스프레스 앱 만들기 ___익스프레스 앱의 시작 ______익스프레스 매니페스트 파일 ______가장 기본적인 익스프레스 앱 _________익스프레스 앱의 시작과 정지 _________앱의 출력 내용 분석 ______뷰 코드를 적용한 익스프레스 앱 ______익스프레스 앱에 있는 공용 폴더 ___익스프레스 앱의 자동 생성 ___미들웨어로 익스프레스 기능 확장하기 ___노드 모듈로 익스프레스 기능 확장하기 ___익스프레스 앱에 전달되는 요청을 기록 ___설정 파일 사용 ___애플리케이션 옵션값의 설정과 획득 ___각 개발 환경에서 동작하는 익스프레스 ___요약 3장 익스프레스 라우트의 이해 라우터란 무엇인가? ___HTTP 요청 함수의 이해 라우터 미들웨어 복습 라우트 정의 ___라우트 식별자 ___라우트의 우선순위 라우트 처리방법 라우트 구조화 방법 ___노드 모듈의 사용 ___네임스페이스드 라우팅 ___리소스 요청 라우팅 ___라우팅 방법 선택하기 요약___라우트란 무엇인가? ______HTTP 요청 함수의 이해 ___router 미들웨어 복습 ___라우트 정의 ______라우트 식별자 ______라우트의 우선순위 ___라우트 처리방법 ___라우트 구조화 방법 ______노드 모듈의 사용 ______네임스페이스드 라우팅 ______리소스 요청 라우팅 ______라우팅 방법 선택하기 ___요약 4장 서버가 전송하는 응답 HTTP 응답에 관한 지침 ___HTTP 상태 코드 ______1XX ______2XX ______3XX ______4XX ______5XX ___HTTP 응답 헤더 ___미디어 타입 익스프레스에서 사용하는 HTTP 응답 ___HTTP 상태 코드 설정 ___HTTP 헤더 설정 ___데이터 전송 ______일반 문자열 ______HTML ______JSON ______JSONP ______정적 파일 전송 ______프로그램 로직을 이용한 파일 전송 ______에러 페이지 제공 ______내용 협상 ______요청 리다이렉트 요약 5장 템플릿 언어 제이드 제이드란 무엇인가 HTML 태그 생성 ___HTML 엘리먼트의 계층구조 ___ID 할당 ___클래스 할당 ___HTML 속성의 할당 문자열 컨텐트 생성 필터 도큐먼트의 독타입 선언 제이드가 지원하는 프로그램 기법 ___변수 ___인터폴레이션 ___제어 형식 ______자바스크립트 형식 ______제이드 형식 모듈화 ___Includes ___템플릿 상속 ___믹스인 인코딩 주석 요약 6장 CSS 전처리기 스타일러스 ___도입 ___익스프레스에서 스타일러스 활성화하기 ___선택자 ______선택자 블록 ______계층구조 ___규칙 ______@import ______@media ______@font-face ______@keyframes ______@extend ______@CSS ___프로그래밍 기법 ______변수 _________리터럴 _________리스트 _________튜플 _________리스트 튜플 ______믹스인 ______함수 ______주석 ______연산자 ______조건문 _________if, else if, else _________unless ___내장 함수 ___요약 7장 폼, 쿠키와 세션 ___데이터를 전송하는 폼의 사용 ______GET 전송 처리 _________폼 데이터 읽기 _________URL 쿼리의 파라미터 읽기 _________다중 옵션 처리 ______POST 전송 핸들링 _________POST 데이터 파싱 기능의 활성화 _________폼 데이터 읽기 _________문자열만 있는 폼의 처리 _________파일 업로드 _________파일 업로드에 대한 더 많은 처리 ______표준 함수를 시뮬레이션한 함수로 폼 전송 ___이름이 붙여진 세그먼트에 저장되는 데이터 ______데이터 읽기 ___데이터 저장을 위한 쿠키 사용 _________쿠키 생성 _________쿠키 읽기 _________쿠키 업데이트 _________세션 쿠키 _________서명있는 쿠키 _________쿠키 삭제 ___데이터를 저장할 수 있는 세션의 사용 ______쿠키 기반 세션 ______세션 스토어 기반 세션 _________메모리스토어 _________레디스스토어 _________몽고스토어 ______세션 변수 _________세션 변수 설정 _________세션 변수 읽기 _________세션 변수 업데이트 _________세션 변수 삭제 ______세션 삭제 _________쿠키 기반 세션의 삭제 _________세션스토어 기반 세션의 삭제 ___요약 8장 프로덕션 환경의 익스프레스 프로덕션 환경이란 무엇인가? ___프로덕션 모드에서는 무엇이 변경되는가? ___프로덕션 환경의 시뮬레이션 앱 벤치마킹 앱 클러스터 생성 민감한 이벤트 처리 ___앱 서버 종료 ___예외적인 에러의 처리 ______예외적인 에러를 처리할 수 있는 try-catch의 적용 ______예외적인 에러를 처리할 수 있는 도메인의 적용 ______예외적인 에러가 발생하는 경우, 프로세스를 종료할 것인가 아니면 유지할 것인가? ___프로세스 종료 처리 가동시간 보장 ___Forever ___upstart 리버스 프록시 ___신뢰 프록시 옵션 요약 |
|
이 책은 전 세계 수천 명의 노드 개발자들이 사용하는 유명한 웹 프레임워크인 익스프레스Express에 관한 것이다. 이 책에서는 주로 익스프레스 3으로 언급되는 세 번째 버전의 익스프레스를 구체적으로 다룬다.
익스프레스는 정확히 4년 전에 처음 공개되고 나서 눈부신 발전을 거듭해 왔다. 오늘날 익스프레스는 Node.js를 위한 가장 강력한 웹 프레임워크 중 하나로 인정받고 있다. 다양한 배경지식과 경험이 있는 개발자들이 매일 웹 앱을 개발하기 위해 익스프레스를 사용한다. 이제 익스프레스의 인기가 상승함에 따라 관련 도서 한 권을 반드시 가지고 있어야 할 때다. 예전에 만든 익스프레스에 관한 튜토리얼이 온라인에서 많이 알려졌고, 특히 노드와 익스프레스 초보자들에게 큰 인기를 끌었다. 그 이후로 나는 독자의 과거 경력과 배경지식에 대한 별다른 요구사항 없이도 언제든 필요할 때 참고할 수 있는 세부적인 기술 내용으로 가득 찬 익스프레스 서적을 집필하는 것이 꿈이었다. 여러분이 손에 든 이 책은 초보자에게 친숙하면서 동시에 기술적으로 심도 있게 다룬 익스프레스 관련 서적으로서, 이로써 나는 꿈을 이뤘다. 이 책은 익스프레스를 사용하여 다양한 웹 개발을 시작하는 개발자에게 필요한 모든 것을 다룬다.---「저자 서문」 익스프레스(Express)는 노드 앱을 개발할 때 높은 성능을 제공할 수 있는 웹 프레임워크다. 익스프레스의 주요 특징으로는 강력하고 구조화된 라우팅, 템플릿 언어 지원, 명확한 에러 처리를 들 수 있다. 이와 같은 특징들을 위해 많은 개발자가 심혈을 기울였는데, 이중 TJ Holowaychuk, Ciaran Jessup, Aaron Heckmann, Guillermo Rauch가 핵심적인 역할을 했다. 익스프레스 프레임워크와 함께 사용해 노드 앱을 확장하는 데 기여할 수 있는 서드파티 모듈도 있는데, 이는 express-resource, express-messages, express-configure, express-namespace, express-expose, express-params, express-mongoose가 있다. 서드파티 모듈의 내용을 자세히 알고 싶다면 http://firejune.io/express/를 살펴보기 바란다. 총 8장으로 구성된 이 책은 각 장마다 익스프레스를 사용하는 데 필요한 기본 지식과 관련 예제 코드가 담겨 있다. 우선, 1장에서는 익스프레스의 탄생 배경과 설치 방법을 익힐 수 있다. 또한 이 책을 학습하는 과정에서 알아두어야 할 익스프레스 API 설명과 실제 사용 방법을 배울 수 있다. 1장 내용을 기반으로 2장에서는 기본 기능을 갖춘 익스프레스 앱을 구현하는 내용을 설명한다. 이때 제이드라는 템플릿 언어가 소개된다. 제이드(Jade)를 통해 복잡한 프로젝트에서 좀 더 간편하게 HTML 코드의 생성 방법을 알게 된다. 또한 앱 개발의 목적에 따라 노드 모듈 혹은 미들웨어 사용 방법도 2장에서 알려준다. 2장의 마지막 부분에서는 하나의 앱을 다양한 실행 환경에서 동작시킬 수 있는 방법에 대해서도 간략하게 설명하고 있어, 각 실행 환경에 따라 앱 테스트를 해야 하는 부담을 덜어준다. 3장은 라우트 정의와 사용 방법을 설명하는데, 예를 들면 라우트 식별자와 우선순위 설정, 처리 방법 설정과 구조화를 통한 라우팅 최적화 방법 등을 제시한다. 4장에서는 서버가 전송하는 응답에 대해 HTTP 상태 코드 설정과 서버가 전송하는 데이터 타입, 그리고 다양한 파일 전송 방법을 설명한다. 익스프레스로 사용자 정의 미디어 타입과 HTTP 응답 헤더를 설정하는 방법도 여기에서 자세히 기술한다. 5장과 6장에서는 익스프레스에서 사용할 수 있는 템플릿 언어인 제이드(Jade)와 CSS 코드를 생성하는 스타일러스(Stylus)에 대해 설명한다. 5장은 제이드의 장점과 사용시 주의할 점을 개발자 관점에서 설명하며, 6장에서 설명하는 스타일러스는 개발자들에게 좀 더 편리한 CSS 코드 생성 기법을 제공한다. 제이드는 기존의 HTML 코드에 배반하는 언어가 아닌 HTML 코드를 포용하면서 시간을 절약하면서 HTML 코드의 계층화를 적극 도울 수 있는 템플릿 언어로서, 기존에 배포된 템플릿 언어를 이해하는 데에도 도움이 될 것이다. 7장에서는 익스프레스를 이용해 폼 전송 방법과 쿠키 생성 방법을 학습할 수 있는데, 필요에 따라 서명이 필요한 쿠키를 생성할 때 개발자의 요구에 따라 편의를 제공하는 장점이 있다. 마지막으로 8장은 개발한 앱을 프로덕션 모드에서 동작시키고 벤치 마킹하는 방법을 설명한다. 여기서는 앱 개발의 최종 목적을 상기하고 앱의 성능을 높일 수 있는 방법도 자세히 설명한다. 따라서 상용 목적을 고려한 앱 개발자라면 꼭 챙겨 읽을 것을 권장한다. 이 책은 웹 앱을 처음 접하는 초보자부터 대규모 프로젝트를 구조적이고 효율적으로 구현하려는 개발자까지 어렵지 않게 익스프레스를 접근할 수 있도록 가이드한다. 웹 초보자인 경우, 자바스크립트 객체와 이벤트 처리의 기본 개념을 학습한 후에 이 책을 학습하면 익스프레스에 대한 깊은 지식을 얻을 수 있을 것으로 기대한다. 숙련된 개발자의 경우, 웹 앱을 구조적으로 개발하고, 적은 시간과 노력으로 유연한 유지보수를 할 것이다. ---「옮긴이의 말」 |
|
이 책에서 다루는 내용
* 익스프레스의 핵심 내용과 익스프레스 프레임워크와 앱을 구성하는 요소 이해 * 익스프레스 앱을 위한 제이드 기반 뷰 생성과 제이드 뷰 렌더링 * 익스프레스 앱이 사용할 수 있는 라우트 생성과 핸들러 함수 * 다양한 종류의 서버 응답 제공과 여러 가지 에러 처리 방법 * HTML 폼, 쿠키와 세션을 이용하여 웹 앱의 기능을 동적으로 개발 * HTML 템플릿 언어 제이드 * CSS 전처리기 문법인 스타일러스 언어 문법 * 익스프레스 앱을 제품 출시 준비 단계로 만들기 위한 사용자 정의 절차와 준비 과정 이 책의 대상 독자 이 책은 웹 앱 개발 혹은 전반적인 기술 내용 습득을 위해 익스프레스에 관심이 있는 모든 사람들을 위한 것이다. 이 서적은 초보자가 처음 시작하기에 적합할 수준인 동시에 익스프레스에 익숙하고 좀 더 많은 내용에 갈증을 느끼는 개발자들에게는 훌륭한 청량음료와 같이 자세히 설명한다. 이 책의 구성 1장, 익스프레스란 무엇인가'에서는 익스프레스에 대한 초보자가 이해하기 쉬우면서 기술적으로도 명확하게 설명한 서두 부분과 초보 단계를 막 끝낸 후 견고한 제반 지식 배양을 위한 관련 주제를 다룬다. 2장, 첫 번째 익스프레스 앱 만들기'는 모든 익스프레스 웹 앱의 기초를 형성하는 기본 기능을 포함하는 웹 앱 개발에 대한 실용적인 도입부를 다룬다. 3장, 익스프레스 라우트의 이해'를 통해 익스프레스가 사용하는 라우트를 상세히 설명한다. 4장, 서버가 전송하는 응답'은 익스프레스 앱이 요청에 대해 응답하는 다양한 방법을 설명한다.'5장, 템플릿 언어 제이드'는 제이드 문법과 프로그래밍 기법을 소개한다. 6장, CSS 전처리기 스타일러스는 스타일러스(Stylus) 문법과 프로그래밍 기법을 소개한다. 7장, 폼, 쿠키와 세션은 폼 처리 방법, 쿠키와 세션 생성 방법을 다룬다. 8장, 제품 환경의 익스프레스는 익스프레스 앱을 제품 출시 단계로 끌어올리는 데 필요한 유용한 분야를 다룬다. |