Tech Blog of Pinomaker
article thumbnail
NestJs Event 처리(@nestjs/event-emitter)
B.E/Nest JS 2024. 4. 11. 17:52

NestJS에서는 Spring boot의 Events의 기능과 마찬가지로 이벤트를 발행하고 구독하는 기능을 @nestjs/event-emiiter를 이용하여 기본적으로 제공한다. 해당 기능을 이용하면 여러가지 기능을 로직에서 분리하여 개발할 수 있다는 장점이 있다. 오늘은 Nestjs에서 이벤트를 발행하고 구독하는 기능을 정리하고자한다! 00. 들어가기 전(프로젝트 셋팅) 해당 포스팅을 위해 새로운 프로젝트를 생성한다. 아래의 명령어를 이용하면 패키지 관리자로 npm, yarn, pnpm을 선택하라고 나올텐데 필자는 pnpm을 사용한다. npx nest new [project name] Project가 생성되면 아래와 같이 나오면 성공이다. 01. Event-Emiiter 설정 먼저 @nestjs/eve..

article thumbnail
NestJS V10 마이그레이션 + SWC
B.E/Nest JS 2023. 10. 11. 21:56

NestJS V10에서는 SWC를 사용하여 컴파일을 공식 지원합니다. 그 이외에도 다양한 변화가 있지만 그 변화는 아래의 글에 정리했으니 참고 해주세요. Nestjs V10의 변화점 올해 NestJS에서 V10을 발표했다. 나는 좀 뒤늦게 알게 되었지만 처음 공부할 때가 V8에서 V9 막 넘어갈 때였는 데, 확실하게 업데이트가 빠른 프레임워크인 것 같다. NestJS V10에서 발표한 가장 큰 내 pinomaker.com 오늘은 NestJS를 V10으로 마이그레이션 한 후에 SWC를 적용하는 과정까지를 포스팅 합니다. 1. NestJS Project 생성하기. 먼저 Nest Cli를 이용하여 NestJS 프로젝트를 생성합니다. npx nest new [project name] Package Manager..

article thumbnail
Nestjs V10의 변화점
B.E/Nest JS 2023. 10. 11. 21:20

올해 NestJS에서 V10을 발표했다. 나는 좀 뒤늦게 알게 되었지만 처음 공부할 때가 V8에서 V9 막 넘어갈 때였는 데, 확실하게 업데이트가 빠른 프레임워크인 것 같다. NestJS V10에서 발표한 가장 큰 내용은 SWC, Redis 와드카드 구독 CacheModule 분리, node 12 이하에서 지원 중지 등이 있다. 오늘은 간단하게 NestJS V10에 대한 특징을 간단하게 정리하고자한다. 1. SWC SWC, Speedy Web Compiler는 컴파일과 번들링 모두에 사용할 수 있는 확장 가능한 Rust 기반의 플랫폼이다. 기존의 Babel의 대체재라고 생각하면 이해하기 편하다. Nest Cli와 SWC를 같이 사용하게 되면 개발 프로세스 속도를 간단하게 대폭 상승 시킬 수 있다. SWC..

article thumbnail
Nestjs Swagger(1) - Swagger 설정
B.E/Nest JS 2023. 10. 9. 01:14

API Documentation & Design Tools for Teams | Swagger Loved by all • Big & Small Thousands of teams worldwide trust Swagger to deliver better products, faster. swagger.io Swagger는 API를 쉽게 문서화를 시킬 수 있는 라이브러리 입니다. Swagger를 사용하면 코드레벨에서 API 문서를 작성하고 동기화할 수 있어 어렵지 않게 API를 실시간으로 관리할 수 있다는 장점이 있으며, API를 사용해야하는 유저들은 Swagger에서 테스트를 할 수 있다는 장점이 있습니다. 오늘은 Nestjs에서 Swagger를 사용하는 방법에 대해 알아봅니다. 0. 의존성 모듈 설치 먼저..

[Nest JS] 파이프(Pipe)
B.E/Nest JS 2022. 11. 14. 13:47

Pipe 요청이 라우터 핸들러로 전달되기 전에 요청 객체를 변환할 수 있는 기회를 제공한다. 파이프는 주로 변환과 유효성 검사를 위하여 사용 된다. 변환(Transformatiion) : 입력 데이터를 원하는 형식으로 변환 유효성 검사(Validation) : 입력 데이터를 사용자가 정한 기준에 유효하지 않은 경우 예외 처리 @nest/common Module에는 내장 파이프가 마련 되어 있다. ValidationPipe ParseIntPipe ParseBoolPipe ParseArrayPipe ParseUUIDPipe DefaultValuePipe 그 중 ParseIntPipe, ParseBoolPipe, ParseArrayPipe, ParseUUIDPipe는 전달된 인자의 타입을 검사하는 용도로 사용..

[Nest JS] 전화번호부 API 개발하기(2) - DTO, PIPE, Module
B.E/Nest JS 2022. 8. 24. 11:25

전 게시글에서 Controller와 Service를 이용해서 API를 개발 했는 데, 이번에는 DTO, PIPE와 Module에 대해서 알아보자 DTO Dto란 Data Trasfer Object의 약자로, 계층간 데이터를 교환하기 위해 사용하는 로직을 가지지 않는 데이터 객체다. Client(Brower)에서 Controller로, Service로 계속 계층을 이동할 때는 DTO를 사용한다. 전화번호를 생성할 때 계층간 이동에 사용할 DTO를 생성해보자. [/src/phonebook/dto/phonebook.req.dto] export class CreatePhoneBookDTO{ name : string phone : string } DTO를 생성하는 방법은 간단하다. 계층 간 이동에 필요한 필드를 ..

[Nest JS] 전화번호부 API 개발하기(1)
B.E/Nest JS 2022. 8. 24. 10:51

Nest JS를 이용해서 전화번호 API를 개발하자. 전화번호부를 생성하거나, 목록 조회, 단일 조회를 할 수 있고, 수정, 삭제, 이미지, JWT까지 시간이 되면 작성할 예정이다. Entity 생성 먼저 Entity를 생성하자. Entity는 하나의 객체라고 생각하면 되고, 해당 프로젝트에선 전화번호라고 생각하자. [phonebook.entity.ts] export class Phonebook { idx: number name: string phone: string } Service 생성 아래의 명령어로 쉽게 Service를 생성할 수 있다. nest g s 목록 조회, 단일 조회, 생성 즉 비즈니스 로직을 처리할 Service를 생성하자. 아직 DB 연결을 하지 않기에, 가상 저장소인 배열을 만들어서..

[Nest JS] 구조에 대해서 알아보자.
B.E/Nest JS 2022. 8. 24. 10:05

Nest JS Project를 생성하면 아래의 구조를 가지게 된다. Main.ts Main.ts는 AppModule를 추출해서, 3000번 포트에 실행 시키는 역할을 하며, 함수 이름은 변경해도 되지만, 파일 명은 변경해서는 안 된다. import { NestFactory } from '@nestjs/core' import { AppModule } from './app.module' async function bootstrap() { const app = await NestFactory.create(AppModule) await app.listen(3000) } bootstrap() AppModule.ts AppModule에서는 우리가 만드는 Service, Controller나 추가로 생성한 Modul..

[Nest JS] Nest JS 시작하기.
B.E/Nest JS 2022. 8. 19. 14:03

Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reac docs.nestjs.com NestJS NestJS는 Node.JS 기반의 웹 API Framework로 Express 혹은 Fastify Frame..