자바스크립트 환경에서의 NestJS 애플리케이션의 로깅과 디버깅 방법

소개

NestJS는 자바스크립트와 TypeScript를 위한 프레임워크로, 서버 사이드 애플리케이션을 개발하기 위한 강력한 도구입니다. 애플리케이션 개발 중에 로깅과 디버깅은 매우 중요한 부분입니다. 이 글에서는 자바스크립트 환경에서 NestJS 애플리케이션의 로깅과 디버깅 방법에 대해 알아보겠습니다.

로깅(Logging)

로깅은 애플리케이션에서 발생하는 이벤트와 상태 정보를 기록하는 과정입니다. NestJS는 다양한 로깅 기능을 제공하여 애플리케이션의 실행 상태를 추적하고 분석할 수 있습니다.

Logger 클래스

NestJS에서는 기본적으로 Logger 클래스를 사용하여 로깅을 처리합니다. Logger 클래스는 간편하게 사용할 수 있는 메서드와 로깅 레벨을 설정할 수 있는 기능을 제공합니다.

import { Logger } from '@nestjs/common';

const logger = new Logger('App');

logger.log('This is a log message');
logger.debug('This is a debug message');
logger.error('This is an error message');

로깅 레벨 설정

NestJS에서는 로깅 레벨을 설정하여 출력되는 로그의 상세도를 조정할 수 있습니다. 로깅 레벨은 Logger 클래스의 생성자에서 설정할 수 있으며, 다음과 같은 로깅 레벨을 지원합니다.

const logger = new Logger('App', { level: 'debug' });

디버깅(Debugging)

디버깅은 애플리케이션에서 발생하는 버그를 찾아내고 수정하는 과정입니다. NestJS는 다양한 디버깅 기능을 제공하여 개발자가 애플리케이션을 효율적으로 디버깅할 수 있도록 도와줍니다.

VS Code 디버거

NestJS는 Visual Studio Code에서 디버깅을 지원합니다. 프로젝트를 Visual Studio Code에서 열고 launch.json 파일을 구성하면, 해당 프로젝트의 코드를 디버깅할 수 있습니다. 디버그 모드에서 코드 실행 중에 중단점을 설정하고 변수 값을 확인할 수 있습니다.

디버깅 모듈

NestJS는 @nestjs/debug 패키지를 통해 디버깅을 위한 유틸리티 함수를 제공합니다. 이 패키지를 사용하면 애플리케이션의 실행 중에 발생하는 이벤트와 상태를 자세히 추적할 수 있습니다.

import { setGlobalPrefix } from '@nestjs/common';
import { enableDebugLogs } from '@nestjs/config';

setGlobalPrefix('api');
enableDebugLogs();

결론

NestJS는 로깅과 디버깅에 필요한 다양한 기능을 제공하여 개발자가 애플리케이션을 개발하고 유지보수하는 데 도움을 줍니다. Logger 클래스를 사용하여 로그를 기록하고, VS Code 디버거를 통해 코드를 디버깅할 수 있습니다. 또한 @nestjs/debug 패키지를 활용하여 디버깅 과정을 보다 빠르고 효율적으로 수행할 수 있습니다.


참고문서: