목차

목차

베타리더 후기 x 머리말 xii 이 책에 대하여 xiii CHAPTER 1 Hello NestJS 1 1.1 NestJS의 장점 1 1.2 Express가 좋을까, NestJS가 좋을까 2 1.3 NestJS 설치 6 __1.3.1 Node.js 설치 6 / 1.3.2 NestJS 프로젝트 생성 7 1.4 책에서 만들 애플리케이션: 유저 서비스 9 CHAPTER 2 웹 개발 기초 지식 13 2.1 웹 프레임워크 13 2.2 Node.js 16 2.3 이벤트 루프 18 2.4 패키지 의존성 관리 21 __2.4.1 package.json 21 / 2.4.2 package-lock.json 23 / 2.4.3 package.json 파일 분석 23 2.5 타입스크립트 25 __2.5.1 변수 선언 26 / 2.5.2 타입스크립트에서 지원하는 타입 27 __2.5.3 타입 정의하기 29 / 2.5.4 타입 구성하기 30 2.6 데커레이터 32 __2.6.1 데커레이터 합성 34 / 2.6.2 클래스 데커레이터 35 / 2.6.3 메서드 데커레이터 36 __2.6.4 접근자 데커레이터 38 / 2.6.5 속성 데커레이터 39 / 2.6.6 매개변수 데커레이터 40 __2.6.7 데커레이터 요약 42 쉬어 가는 페이지 백엔드 로드맵 43 CHAPTER 3 애플리케이션의 관문: 인터페이스 45 3.1 컨트롤러 45 __3.1.1 라우팅 47 / 3.1.2 와일드 카드 사용 48 / 3.1.3 요청 객체 48 / 3.1.4 응답 49 __3.1.5 헤더 52 / 3.1.6 리디렉션 54 / 3.1.7 라우트 매개변수 55 __3.1.8 하위 도메인 라우팅 56 / 3.1.9 페이로드 다루기 58 3.2 유저 서비스의 인터페이스 59 쉬어 가는 페이지 관점 지향 프로그래밍 64 CHAPTER 4 핵심 도메인 로직을 포함하는 프로바이더 65 4.1 프로바이더 65 4.2 프로바이더 등록과 사용 67 __4.2.1 프로바이더 등록 67 / 4.2.2 속성 기반 주입 67 4.3 유저 서비스에 회원 가입 로직 구현하기 70 __4.3.1 UsersService 프로바이더 생성 70 / 4.3.2 회원 가입 71 __4.3.3 회원 가입 이메일 발송 73 / 4.3.4 이메일 인증 77 __4.3.5 로그인 77 / 4.3.6 유저 정보 조회 78 쉬어 가는 페이지 스코프 79 심화 학습 1 커스텀 프로바이더 82 CHAPTER 5 SW 복잡도를 낮추기 위한 모듈 설계 91 5.1 모듈: 응집성 있는 설계 91 __5.1.1 모듈 다시 내보내기 92 / 5.1.2 전역 모듈 94 5.2 유저 서비스의 모듈 분리 95 __5.2.1 UsersModule 분리 95 / 5.2.2 EmailModule 분리 96 CHAPTER 6 동적 모듈을 활용한 환경 변수 구성 99 6.1 동적 모듈 99 6.2 dotenv를 이용한 Config 설정 99 6.3 Nest에서 제공하는 Config 패키지 102 6.4 유저 서비스에 환경 변수 구성하기 105 __6.4.1 커스텀 Config 파일 작성 105 / 6.4.2 동적 ConfigModule 등록 106 쉬어 가는 페이지 의존성 주입과 제어 반전 110 CHAPTER 7 파이프와 유효성 검사: 요청이 제대로 전달되었는가 113 7.1 파이프 113 7.2 파이프의 내부 구현 이해하기 116 7.3 유효성 검사 파이프 만들기 117 7.4 유저 서비스에 유효성 검사 적용하기 120 __7.4.1 유저 생성 본문의 유효성 검사 120 / 7.4.2 class-transformer 활용 121 __7.4.3 커스텀 유효성 검사기 작성 124 쉬어 가는 페이지 인증 vs 인가 127 CHAPTER 8 영속화: 데이터를 기록하고 다루기 131 8.1 MySQL 데이터베이스 설정 131 8.2 TypeORM으로 데이터베이스 연결 134 8.3 회원 가입을 요청한 유저의 정보 저장하기 138 8.4 트랜잭션 적용 141 __8.4.1 QueryRunner를 사용하는 방법 142 __8.4.2 transaction 함수를 직접 이용하는 방법 143 8.5 마이그레이션 144 쉬어 가는 페이지 저장소 패턴 151 CHAPTER 9 요청 처리 전에 부가 기능을 수행하기 위한 미들웨어 153 9.1 미들웨어 153 9.2 Logger 미들웨어 154 9.3 MiddlewareConsumer 155 9.4 전역으로 적용하기 157 CHAPTER 10 권한 확인을 위한 가드: JWT 인증/인가 159 10.1 가드 159 10.2 가드를 이용한 인가 160 __10.2.1 실행 콘텍스트 160 / 10.2.2 가드 적용 161 10.3 인증 162 __10.3.1 세션 기반 인증 163 / 10.3.2 토큰 기반 인증 164 10.4 JWT 165 __10.4.1 헤더 166 / 10.4.2 페이로드 166 / 10.4.3 시그너처 167 10.5 유저 서비스의 이메일 인증 처리와 JWT 발급 169<