Cute Hello Kitty 3
본문 바로가기

Backend/NestJS5

NestJS에서 JWT 인증 구현하기 JWT(Json Web Token)는 웹이나 앱에서 API 통신을 할 때 가장 널리 쓰이는 방식 중 하나입니다.NestJS에서는 @nestjs/jwt와 passport-jwt를 통해 JWT 기반 인증을 쉽게 구현할 수 있습니다.설치해야 할 패키지npm install @nestjs/jwt passport-jwt @nestjs/passport auth.module.ts@Module({ imports: [ forwardRef(() => UserModule), TypeOrmModule.forFeature([User]), PassportModule, JwtModule.register({ secret: process.env.JWT_SECRET ?? 'secretKey', s.. 2025. 5. 15.
NestJS + TypeORM: Relation 설정 실수로 인한 user가 null인 문제 해결 NestJS 프로젝트를 하면서 post.user.user_id를 읽으려고 했더니, TypeError: Cannot read properties of undefined라는 오류를 마주했습니다.왜 user가 undefined일까요?이번 글에서는 TypeORM에서 관계 설정 시 했던 실수를 기록하고 해결방법을 적어보겠습니다.[Nest] ERROR [ExceptionsHandler] TypeError: Cannot read properties of undefined (reading 'user_id') at PostService.getPostDetail (src/post/post.service.ts:223:21)위와 같은 에러가 발생했습니다.PostgreSQL 에서는 User 테이블에 user_id 라는 컬.. 2025. 5. 12.
NestJS 백엔드 프로젝트 구조 이해하기 NestJS는 Node.js 환경에서 구조적이고 유지보수가 쉬운 백엔드 애플리케이션을 만들기 위해 설계된 프레임워크입니다.Spring을 사용해본 분이라면 NestJS가 굉장히 익숙하게 느껴질 수 있습니다.저 역시도 이번에 NestJS는 처음 써보지만, Spring 으로 백엔드 개발을 몇 번 해봤기 때문에 익숙하게 접근할 수 있었습니다. NestJS와 Spring의 유사점개념NestJSSpring Framework의존성 주입(DI)@Injectable(), 생성자 주입@Component, @Service, 생성자 주입모듈화@Module()@Configuration, @ComponentScan컨트롤러@Controller(), @Get(), @Post()@RestController, @RequestMa.. 2025. 5. 12.
NestJS 백엔드 프로젝트에 Swagger와 Docker 적용하기 지난 포스팅에서는 NestJS와 PostgreSQL을 기반으로 백엔드 프로젝트를 시작하는 방법을 다뤘습니다.이번 시간에는 API 문서 자동화 도구인 Swagger를 설정하고, Docker + Docker Compose로 개발/운영 환경을 분리하여 NestJS 애플리케이션을 실행하는 방법에 대해 적어보겠습니다.Docker는 처음 다뤄보는 거라 다른 분들 글을 많이 참고해가면서 진행했습니다. 먼저, Swagger 설정부터 알아보겠습니다. 1. Swagger 설치 및 설정NestJS는 @nestjs/swagger 패키지를 통해 API 문서를 자동으로 생성할 수 있습니다.npm install --save @nestjs/swagger swagger-ui-express main.ts에 Swagger 설정 추가// .. 2025. 5. 12.
NestJS로 백엔드 프로젝트 시작하기 (TypeORM, PostgreSQL) Nest.js 란?Java Spring의 구조를 차용한 Node.js 환경의 새로운 프레임워크입니다. 이는 MVC 디자인 패턴(Controller, Service, Entity, Repository 등)을 기본 패턴으로 하므로 역할과 구현(또는 책임)이 명확하게 구분된다는 장점이 있습니다. 따라서, 협업 시 매우 효율적으로 작업할 수 있으며, Typescript를 기본으로 적용하므로 잠재적인 오류 발생 확률을 줄일 수 있습니다. 실제로 저는 Nest 는 이번 기회에 처음 써봤는데, Spring 개발 경험과 Typescript 로 프론트엔드 개발했던 경험이 있어서 그런지 금방 적응 할 수 있었습니다.프로젝트 생성$ nest new project1$ cd project1$ npm run startNode 가.. 2025. 5. 12.