[typescript] Nest.js에서 타입스크립트를 사용한 쿠키 및 세션 처리

Nest.js는 타입스크립트로 구축된 프레임워크로, Node.js 기반의 서버 사이드 응용프로그램을 개발하는 데 사용됩니다. 이 프레임워크는 기본적으로 Express 위에 구축되어 있고, 타입스크립트의 강력한 기능을 살려 효율적이고 확장 가능한 애플리케이션을 개발할 수 있습니다.

이번 포스트에서는 Nest.js에서 타입스크립트를 사용하여 쿠키와 세션을 처리하는 방법에 대해 살펴보겠습니다.

쿠키 다루기

Nest.js에서 쿠키를 다루기 위해서는 먼저 @nestjs/common, @nestjs/core, @nestjs/platform-express 패키지를 설치해야 합니다.

npm install --save @nestjs/common @nestjs/core @nestjs/platform-express

쿠키 설정

쿠키를 설정하기 위해서는 응답 객체를 이용하여 쿠키를 설정해야 합니다. 다음은 쿠키를 설정하는 간단한 예제 코드입니다.

import { Controller, Get, Res } from '@nestjs/common';
import { Response } from 'express';

@Controller()
export class AppController {
  @Get()
  getCookie(@Res() res: Response) {
    res.cookie('cookieName', 'cookieValue');
    return 'Cookie is set';
  }
}

위 코드는 / 경로에 대한 GET 요청이 들어왔을 때 cookieName이라는 쿠키에 cookieValue를 설정합니다.

세션 다루기

Nest.js에서 세션을 다루기 위해서는 추가적인 패키지를 설치해야 합니다. express-session 패키지를 사용하여 세션을 처리할 수 있습니다.

npm install --save express-session

세션 설정

세션을 설정하기 위해서는 세션 미들웨어를 미들웨어 스택에 추가해야 합니다.

import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import * as session from 'express-session';

@Module({
  imports: [],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(session({
      secret: 'my-secret',
      resave: false,
      saveUninitialized: true,
    })).forRoutes('/');
  }
}

위 코드는 / 경로에 대한 요청이 들어왔을 때 세션을 설정하는 예제입니다.

이제 Nest.js에서 타입스크립트를 사용하여 쿠키와 세션을 다루는 기초적인 방법을 살펴보았습니다. 더 많은 기능을 활용하기 위해서는 Nest.js 및 Express의 공식 문서를 참고하시기 바랍니다.

참고 자료