한빛미디어 [나는 리뷰어다] 활동을 위해서 책을 제공받아 작성된 서평입니다.


한 권으로 끝내는 Node & Express

Web Development with Node & Express


  • 저자 - 이선 브라운 (지은이)
  • 옮김 - 한선용 (옮긴이)
  • ISBN : 9791162244227
  • 가격 : 28,000원
  • 2021-05-01
  • 한빛미디어


목차

CHAPTER 1 익스프레스 소개

  • 1.1 자바스크립트의 혁명
  • 1.2 익스프레스 소개
  • 1.3 서버 사이드 애플리케이션과 클라이언트 사이드 애플리케이션
  • 1.4 익스프레스의 간단한 역사
  • 1.5 노드: 새로운 웹 서버
  • 1.6 노드 생태계
  • 1.7 라이선스
  • 1.8 마치며


CHAPTER 2 노드 시작하기

  • 2.1 노드 설치
  • 2.2 터미널 사용하기
  • 2.3 에디터
  • 2.4 npm
  • 2.5 노드로 만드는 단순한 웹 서버
  • 2.6 익스프레스로 출발


CHAPTER 3 익스프레스로 시간 절약

  • 3.1 스캐폴딩
  • 3.2 메도라크 여행사 웹사이트
  • 3.3 초기 단계
  • 3.4 마치며


CHAPTER 4 모범 사례와 버전 관리

  • 4.1 파일과 디렉터리 구조
  • 4.2 모범 사례
  • 4.3 버전 관리
  • 4.4 책에서 깃을 사용하는 방법
  • 4.5 npm 패키지
  • 4.6 프로젝트 메타데이터
  • 4.7 노드 모듈
  • 4.8 마치며


CHAPTER 5 품질보증

  • 5.1 QA 계획
  • 5.2 QA에 가치가 있을까?
  • 5.3 로직과 표현
  • 5.4 테스트 타입
  • 5.5 QA 테크닉 개요
  • 5.6 제스트 설치와 설정
  • 5.7 단위 테스트
  • 5.8 통합 테스트
  • 5.9 린트
  • 5.10 지속적 통합
  • 5.11 마치며


CHAPTER 6 요청과 응답 객체

  • 6.1 URL의 각 부분
  • 6.2 HTTP 요청 메서드
  • 6.3 요청 헤더
  • 6.4 응답 헤더
  • 6.5 인터넷 미디어 타입
  • 6.6 요청 바디
  • 6.7 요청 객체
  • 6.8 응답 객체
  • 6.9 더 많은 정보
  • 6.10 간단한 예제
  • 6.11 마치며


CHAPTER 7 핸들바를 이용한 템플릿

  • 7.1 절대 규칙은 이것 하나뿐
  • 7.2 템플릿 엔진 선택
  • 7.3 퍼그: 독특한 접근법
  • 7.4 핸들바 기초
  • 7.5 마치며


CHAPTER 8 폼 처리

  • 8.1 클라이언트 데이터를 서버에 전송하기
  • 8.2 HTML 폼
  • 8.3 인코딩
  • 8.4 폼을 처리하는 다른 방법
  • 8.5 익스프레스를 이용한 폼 처리
  • 8.6 fetch API를 이용한 폼 데이터 전송
  • 8.7 파일 업로드
  • 8.8 파일 업로드 UI 개선
  • 8.9 마치며


CHAPTER 9 쿠키와 세션

  • 9.1 자격 증명 위임
  • 9.2 익스프레스와 쿠키
  • 9.3 쿠키 실험
  • 9.4 세션
  • 9.5 세션을 통한 플래시 메시지 구현
  • 9.6 세션 활용법
  • 9.7 마치며


CHAPTER 10 미들웨어

  • 10.1 미들웨어 원칙
  • 10.2 미들웨어 예제
  • 10.3 널리 쓰이는 미들웨어
  • 10.4 서드파티 미들웨어
  • 10.5 마치며


CHAPTER 11 이메일 전송

  • 11.1 SMTP, MSA, MTA
  • 11.2 이메일 수신
  • 11.3 이메일 헤더
  • 11.4 이메일 형식
  • 11.5 HTML 이메일
  • 11.6 노드메일러
  • 11.7 대량으로 전송할 때 생각해볼 것
  • 11.8 HTML 이메일 전송
  • 11.9 마치며


CHAPTER 12 실무 환경

  • 12.1 실행 환경
  • 12.2 환경별 설정
  • 12.3 노드 프로세스 실행
  • 12.4 웹사이트 확장
  • 12.5 웹사이트 모니터링
  • 12.6 스트레스 테스트
  • 12.7 마치며


CHAPTER 13 지속성

  • 13.1 파일시스템 지속성
  • 13.2 클라우드 지속성
  • 13.3 데이터베이스 지속성
  • 13.4 세션 스토리지를 위한 데이터베이스
  • 13.5 마치며


CHAPTER 14 라우팅

  • 14.1 라우트와 SEO
  • 14.2 서브도메인
  • 14.3 라우트 핸들러는 미들웨어입니다
  • 14.4 라우트 경로와 정규 표현식
  • 14.5 라우트 매개변수
  • 14.6 라우트 구성
  • 14.7 모듈에서 라우트 선언
  • 14.8 핸들러의 논리적 그룹
  • 14.9 뷰 자동 렌더링
  • 14.10 마치며


CHAPTER 15 REST API와 JSON

  • 15.1 JSON과 XML
  • 15.2 API
  • 15.3 API 오류 보고
  • 15.4 교차 출처 리소스 공유(CORS)
  • 15.5 테스트
  • 15.6 익스프레스를 통한 API 제공
  • 15.7 마치며


CHAPTER 16 단일 페이지 애플리케이션

  • 16.1 웹 애플리케이션 개발의 짧은 역사
  • 16.2 SPA 프레임워크
  • 16.3 리액트 앱 만들기
  • 16.4 리액트 기본
  • 16.5 마치며


CHAPTER 17 정적 콘텐츠

  • 17.1 성능 고려 사항
  • 17.2 콘텐츠 전송 네트워크
  • 17.3 CDN을 고려한 설계
  • 17.4 정적 자원 캐싱
  • 17.5 정적 콘텐츠 수정
  • 17.6 마치며


CHAPTER 18 보안

  • 18.1 HTTPS
  • 18.2 CSRF
  • 18.3 인증
  • 18.4 마치며


CHAPTER 19 서드파티 API와 통합

  • 19.1 소셜 미디어
  • 19.2 지오코딩
  • 19.3 날씨 데이터
  • 19.4 마치며


CHAPTER 20 디버깅

  • 20.1 디버깅의 첫 번째 원칙
  • 20.2 REPL과 콘솔 활용
  • 20.3 노드의 내장 디버거
  • 20.4 노드 인스펙터 클라이언트
  • 20.5 비동기 함수 디버깅
  • 20.6 익스프레스 디버깅
  • 20.7 마치며


CHAPTER 21 사이트 오픈

  • 21.1 도메인 등록과 호스팅
  • 21.2 마치며


CHAPTER 22 유지 보수

  • 22.1 유지 보수의 원칙
  • 22.2 코드 재사용과 리팩터링
  • 22.3 마치며


CHAPTER 23 추가 자료

  • 23.1 온라인 문서
  • 23.2 정기 간행물
  • 23.3 스택 오버플로
  • 23.4 익스프레스에 기여하기
  • 23.5 마치며


APPENDIX A 폼 처리

  • A.1 익스프레스를 이용한 폼 처리
  • A.2 파일 업로드


APPENDIX B 쿠키와 세션

  • B.1 세션을 통한 플래시 메시지 구현


APPENDIX C 미들웨어

  • C.1 미들웨어 연결하기


APPENDIX D 이메일 전송

  • D.1 노드메일러
  • D.2 HTML 이메일 전송


APPENDIX E 지속성

  • E.1 데이터베이스 레이어 추상화
  • E.2 몽구스로 데이터베이스에 연결
  • E.3 초기 데이터 저장
  • E.4 데이터 가져오기
  • E.5 데이터 추가
  • E.6 PostgreSQL에 데이터 추가하기
  • E.7 세션 스토리지를 위한 데이터베이스


APPENDIX F 라우팅

  • F.1 서브도메인
  • F.2 라우트 핸들러는 미들웨어입니다
  • F.3 라우트 매개변수
  • F.4 모듈에서 라우트 선언


APPENDIX G REST API와 JSON

  • G.1 익스프레스를 통한 API 제공


APPENDIX H 단일 페이지 애플리케이션

  • H.1 리액트 앱 만들기
  • H.2 리액트 기본


APPENDIX I 서드파티 AP와 통합

  • I.1 데이터 지오코딩하기
  • I.2 날씨 데이터


책소개

진화한 자바스크립트와 노드, 익스프레스 완벽 가이드 자바스크립트 개발 스택의 핵심인 노드와 익스프레스로 동적 웹 애플리케이션을 만들어보자. 웹사이트 개발 과정을 살펴보며 익스프레스 기본 사항을 설명한다. 서버 사이드 렌더링부터 단일 페이지 애플리케이션(SPA) 사용에 적합한 API 개발까지 웹 개발의 모든 것을 다룬다. 자바스크립트에 익숙한 프런트엔드와 백엔드 엔지니어를 위해 다중 페이지와 하이브리드 웹 앱을 익스프레스로 구현하는 모범 사례도 함께 제공한다.

노드와 익스프레스로 구현하는 가장 모던한 웹 애플리케이션 모던한 웹 애플리케이션을 만들기 위해선 노드와 익스프레스를 빼고 이야기할 수 없습니다. 두 핵심 기술의 다양하고 유용한 도구를 활용하면 기존보다 훨씬 더 좋은 코드와 구성을 갖춘 애플리케이션을 구축할 수 있습니다. 이 책은 노드와 익스프레스로 예제를 직접 구현해보면서 웹사이트를 만드는 가장 좋은 방법을 알아봅니다. 웹사이트 구현에 필요한 템플릿인 핸들바와 미들웨어, 인증과 권한 부여, 서드파티 연결부터 유지 보수 계획을 수립하는 법까지 웹 개발 타임라인에 필요한 순으로 개념을 익힐 수 있도록 구성했습니다. 예제를 따라 하다보면 어느샌가 본인만의 웹사이트를 구현할 수 있는 수준까지 실력이 업그레이드되어 있을 겁니다.


img


img


주요 내용

  • 동적 데이터 렌더링을 위한 템플릿 시스템 만들기
  • 요청/응답 객체, 미들웨어, URL 라우팅 알아보기
  • 실무 환경과 유사한 환경에서 테스트하기
  • 몽고DB와 PostgreSQL에서 지속성 관리하기
  • REST API로 다른 프로그램에 자원 제공하기
  • 인증, 권한 부여, HTTPS로 안전한 앱 구축하기
  • 소셜 미디어, 위치 정보 연결하기
  • 앱 출시와 유지 보수 계획 수립하기
  • 중요한 디버깅 기술 배우기


후기

다양한 방법으로 직접 웹서버를 만들어보면서 구조를 알아가는 방식이 좋았다. 뷰, 레이아웃 그리고 핸들바에 대한 개념을 여러 튜토리얼을 통해서 학습할 수 있었고 기존에 이해가 안가던 부분의 개념을 익힐 수 있었다. 기존에 어떤 방식으로 사용되는지 헷갈렸던 개념들이 직접 예제를 통해 실행해보고, 여러 방식으로 응용해보니 더 깊이 와닿는 것 같다. 프론트엔드의 재미, 백엔드의 재미 각각 재미요소가 다양한 것 같다. 백엔드에 대해서 공부하고 싶었는데 미루고 미루다가 이번에 명분이 생겨서 공부하게 되었는데 재밌는 것 같다. 명분이었던 한빛미디어 서평단을 통해 노드와 익스프레스 책을 읽게되어 자연스럽게 공부를 하게되어서 좋았다. 확실히 기능을 캡슐화하면 프로젝트의 전체적인 디자인과 유지보수성이 개선되고 테스트도 쉬워진다는 것을 알게되었고, 테스트 코드의 중요성 또한 깨달았다. 그리고 요청 헤더 같은 경우도 페이지를 방문할 때 서버에 URL만 보내는 것만이 아닌것이 아니라 어떤 언어로 되어 있으면 좋겠다는 정보를 서버에 보낸다는 것을 처음 알게되었다.

후기보다 더 자세한 설명과 코드는node & express에 기재되어있다.


더 자세한 정보는 한빛출판네트워크에서 확인할 수 있다.