익스프레스 프레임워크로 하는 노드 웹 앱 프로그래밍(acorn+PACKT)
템플릿 언어로 코드 생성의 자동화와 구조화가 간편한
『익스프레스 프레임워크로 하는 노드 웹 앱 프로그래밍』은 익스프레스 프레임워크를 사용해 웹 앱을 개발하려는 이들을 위한 포괄적인 지침서이며, 익스프레스를 처음 설치한 후 기본 내용을 이해하는 데 도움이 된다. 가장 기본적인 내용에서부터 좀 더 심화된 주제가 담긴 도입 부분을 지속적으로 학습하면, 제품 출시 단계의 익스프레스 앱을 개발하는 충분한 지식과 기술을 터득할 수 있다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
웹 앱을 구현할 때 익스프레스(Express) 프레임워크를 이용하면 구조적이면서 유지 보수를 하는 동안 시간과 노력을 줄일 수 있는 막강한 장점이 있으며, 이 프레임워크의 장점은 제이드와 스타일러스의 사용을 통해 더욱 확대된다. 그 밖에 자칫 복잡하게 쓰는 HTML 폼, 쿠키, 세션 관리는 익스프레스 프레임워크를 통해 간편하게 제어할 수 있다. 한편, 익스프레스 프레임워크를 이용한 기능의 구현은 개발자의 요구사항을 세심히 배려하고 있으며, 제품 출시를 위한 단계와 벤치마킹 테스트까지 고려하는 등 매우 정교한 프레임워크다.
★ 이 책에서 다루는 내용 ★
■ 익스프레스의 핵심 내용과 익스프레스 프레임워크와 앱을 구성하는 요소 이해
■ 익스프레스 앱을 위한 제이드 기반 뷰 생성과 제이드 뷰 렌더링
■ 익스프레스 앱이 사용할 수 있는 라우트 생성과 핸들러 함수
■ 다양한 종류의 서버 응답 제공과 여러 가지 에러 처리 방법
■ HTML 폼, 쿠키와 세션을 이용하여 웹 앱의 기능을 동적으로 개발
■ HTML 템플릿 언어 제이드
■ CSS 전처리기 문법인 스타일러스 언어 문법
■ 익스프레스 앱을 제품 출시 준비 단계로 만들기 위한 사용자 정의 절차와 준비 과정
★ 이 책의 대상 독자 ★
이 책은 웹 앱 개발 혹은 전반적인 기술 내용 습득을 위해 익스프레스에 관심이 있는 모든 사람들을 위한 것이다. 이 서적은 초보자가 처음 시작하기에 적합할 수준인 동시에 익스프레스에 익숙하고 좀 더 많은 내용에 갈증을 느끼는 개발자들에게는 훌륭한 청량음료와 같이 자세히 설명한다.
★ 이 책의 구성 ★
'1장, 익스프레스란 무엇인가'에서는 익스프레스에 대한 초보자가 이해하기 쉬우면서 기술적으로도 명확하게 설명한 서두 부분과 초보 단계를 막 끝낸 후 견고한 제반 지식 배양을 위한 관련 주제를 다룬다.
'2장, 첫 번째 익스프레스 앱 만들기'는 모든 익스프레스 웹 앱의 기초를 형성하는 기본 기능을 포함하는 웹 앱 개발에 대한 실용적인 도입부를 다룬다.
'3장, 익스프레스 라우트의 이해'를 통해 익스프레스가 사용하는 라우트를 상세히 설명한다.
'4장, 서버가 전송하는 응답'은 익스프레스 앱이 요청에 대해 응답하는 다양한 방법을 설명한다.
'5장, 템플릿 언어 제이드'는 제이드 문법과 프로그래밍 기법을 소개한다.
'6장, CSS 전처리기 스타일러스'는 스타일러스(Stylus) 문법과 프로그래밍 기법을 소개한다.
'7장, 폼, 쿠키와 세션'은 폼 처리 방법, 쿠키와 세션 생성 방법을 다룬다.
'8장, 프로덕션 환경의 익스프레스'는 익스프레스 앱을 제품 출시 단계로 끌어올리는 데 필요한 유용한 분야를 다룬다.
★ 저자 서문 ★
이 책은 전 세계 수천 명의 노드 개발자들이 사용하는 유명한 웹 프레임워크인 익스프레스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장은 개발한 앱을 프로덕션 모드에서 동작시키고 벤치 마킹하는 방법을 설명한다. 여기서는 앱 개발의 최종 목적을 상기하고 앱의 성능을 높일 수 있는 방법도 자세히 설명한다. 따라서 상용 목적을 고려한 앱 개발자라면 꼭 챙겨 읽을 것을 권장한다.
이 책은 웹 앱을 처음 접하는 초보자부터 대규모 프로젝트를 구조적이고 효율적으로 구현하려는 개발자까지 어렵지 않게 익스프레스를 접근할 수 있도록 가이드한다. 웹 초보자인 경우, 자바스크립트 객체와 이벤트 처리의 기본 개념을 학습한 후에 이 책을 학습하면 익스프레스에 대한 깊은 지식을 얻을 수 있을 것으로 기대한다. 숙련된 개발자의 경우, 웹 앱을 구조적으로 개발하고, 적은 시간과 노력으로 유연한 유지보수를 할 것이다.
목차
목차
___익스프레스란 무엇인가
______익스프레스에 관한 이야기
___익스프레스 설치
___익스프레스를 구성하는 컴포넌트
______애플리케이션 객체
______요청 객체
______응답 객체
___익스프레스에서 사용하는 개념
______비동기 자바스크립트
______노드 모듈
______익스프레스 앱은 전부 노드 모듈
______미들웨어
______요청 흐름
______HTTP/HTTPS를 위한 노드 API
___요약
2 첫 번째 익스프레스 앱 만들기
___익스프레스 앱의 시작
______익스프레스 매니페스트 파일
______가장 기본적인 익스프레스 앱
_________익스프레스 앱의 시작과 정지
_________앱의 출력 내용 분석
______뷰 코드를 적용한 익스프레스 앱
______익스프레스 앱에 있는 공용 폴더
___익스프레스 앱의 자동 생성
___미들웨어로 익스프레스 기능 확장하기
___노드 모듈로 익스프레스 기능 확장하기
___익스프레스 앱에 전달되는 요청을 기록
___설정 파일 사용
___애플리케이션 옵션값의 설정과 획득
___각 개발 환경에서 동작하는 익스프레스
___요약
3 익스프레스 라우트의 이해
___라우트란 무엇인가?
______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
___리버스 프록시
______신뢰 프록시 옵션
___요약
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

