베타리더 후기 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<