소개
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
클래스의 생성자에서 설정할 수 있으며, 다음과 같은 로깅 레벨을 지원합니다.
log
: 일반적인 정보를 로깅하는 레벨debug
: 디버깅 정보를 로깅하는 레벨error
: 에러 정보를 로깅하는 레벨
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
패키지를 활용하여 디버깅 과정을 보다 빠르고 효율적으로 수행할 수 있습니다.
참고문서:
- NestJS 공식 문서: https://docs.nestjs.com/techniques/logger
- VS Code - 디버깅가이드: https://code.visualstudio.com/docs/editor/debugging