개발 관련 책 읽기/NestJS로 배우는 백엔드 프로그래밍(5)
-
7장, 8장 - 파이프, 영속화
✅ 아래 내용들에 대해서 알아보자 - 파이프 - 영속화 파이프 파이프는 요청이 라우터 핸들러로 전달되기 전에 요청 객체를 변환할 수 있는 기회를 제공한다. 파이프는 보통 2가지 목적으로 사용한다 변환: 입력 데이터를 원하는 형식으로 변환, ex) /users/user/1내의 경로 매개변수 문자열 '1'을 number로 변환 유효성 검사: 입력 데이터가 사용자가 정한 기준에 유효하지 않은 경우 예외 처리 @nest/common 패캐지에 여러 내장 파이프가 존재한다 ValidationPipe ParseIntPipe ParseBoolPipe ParseArrayPipe ParseUUIDPipe DefaultValuePipe ParseIntPipe 예시 async findOne( @Param('id', new ..
2023.04.06 -
5, 6장 - 모듈/동적 모듈
✅ 아래 내용들에 대해서 알아보자 - 모듈 - 동적 모듈 - dotenv 직접 사용해 보자 - @nestjs/config 직접 사용해 보자 모듈 모듈은 여러 컴포넌트를 조합하여 좀 더 큰 작업을 수행할 수 있게 하는 단위를 말한다. 예를 들어 주문, 유저, 채팅 모듈 등.. Nest에서는 애플리케이션이 실행되기 위해 하나의 루트 모듈이 존재하고 이 루트 모듈은 다른 모듈들로 구성된다. 이렇게 모듈을 나누는 이유는 모듈 내의 응집도를 높이고 모듈 간의 결합도를 나눠 추후 MSA 아키텍처 분리할 수 있다는 장점이 있다. @Module 데커레이터를 사용하여 Modulemetadata를 인수로 받는다. 모듈은 순환 종속성(참조)이 발생할 수 있기 프로바이더처럼 주입해서 사용할 수 없다. @Module({ imp..
2023.04.05 -
4장 - 프로바이더
✅ 아래 내용들에 대해서 알아보자 - 프로바이더 - 프로바이더 등록과 사용 프로바이더 비즈니스 로직을 수행하는 역할을 한다. 프로바이더는 서비스, 저장소, 팩터리, 헬퍼 등 여러 가지 형태로 구현이 가능하다. 프로바이더는 @Injectable() 데커레이터를 사용하는데 @Injectable을 클래스 위에 지정하면, 해당 클래스는 NextJS가 어플리케이션 실행 할 때 로드되며, NextJs의 DI 컨테이너에서 사용가능한 하나의 Provider로 등록된다. 따라서, 어떤 클래스에서든 UserService를 DI 받아 사용가능하고, 별도의 스코프를 지정해주지 않으면 싱글톤으로 생성된다.(스프링과 유사하다) import { Injectable } from '@nestjs/common'; @Injectable..
2023.04.04 -
3장 - Hello NestJS
✅ 아래 내용들에 대해서 알아보자 - 컨트롤러 - - 컨트롤러 사용자 요청과 응답을 가공하고 처리하는 역할을 한다. 아래의 사용자와 관련된 컨트롤러 예제 소스를 참고하자. import { Body, Controller, Get, Param, Post, Query } from '@nestjs/common'; import { CreateUserDto } from './dto/CreateUserDto'; import { VerifyEmailDto } from './dto/VerifyEmailDto'; import { UserLoginDto } from './dto/UserLoginDto'; import { UserInfo } from './entity/UserInfo'; @Controller('user') ..
2023.04.04 -
1장 - Hello NestJS
✅ 아래 내용들에 대해서 알아보자 - NestJS - Node.JS - 패키지 의존성 관리 NestJS NestJS는 Node.js에 기반을 둔 웹 API 프레임워크로서 Express 또는 Fastify 프레임워크를 래핑 하여 동작한다. Express 또는 Fastify는 모두 Node.js를 쉽게 사용하기 위해 만들어진 프레임워크이다. NestJS는 기본 설치 시 Express를 사용하는데 속도면에서 Fastify가 Express보다 2배 더 빠르다. 하지만 Express를 사용하는 이유는 Express가 널리 사용되고 있고 수많은 미들웨어가 NesgJS와 호환되기 때문이다. NestJS는 DB, ORM, 설정, 유효성 검사 등 Node.js에 비해 많은 기본 기능을 제공하고 필요한 라이브러리를 쉽게..
2023.04.03