본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr
0424 목
학습 내용 정리
[Class 01]Part 25. Logging
Ch 1. 로깅
NestJS 기본 Logger 사용하기
수강후기
오늘 강의에서는 NestJS에서 제공하는 기본 Logger를 활용해 애플리케이션에서 발생하는 다양한 수준의 로그를 효율적으로 관리하는 방법을 익혔다. 로그는 발생한 상황의 중요도에 따라 FATAL, ERROR, WARN, LOG, DEBUG, VERBOSE의 여섯 가지 레벨로 나뉘어 있으며, 이를 활용해 시스템 상태를 명확히 파악하고 문제 발생 시 빠르게 대응할 수 있다는 점이 매우 유익하게 느껴졌다.
실습에서는 @Cron 데코레이터를 이용하여 5초 간격으로 각 레벨의 로그를 출력하는 기능을 구현했다. 직접 코드를 실행하며 터미널에서 로그의 출력 방식을 확인할 수 있어 이해가 더욱 잘 되었다. 특히 FATAL이나 ERROR 로그는 서비스의 중대한 장애를 즉각적으로 인지할 수 있도록 하며, WARN, LOG 레벨은 운영 환경에서 일반적인 정보 제공이나 주의사항 전달의 용도로 적합했다. 반면 DEBUG와 VERBOSE는 개발 단계에서만 활성화하여 상세한 디버깅 정보를 제공하되 운영 환경의 성능 저하를 방지하도록 제한적으로 사용할 필요가 있음을 알게 되었다.
추가적으로, 애플리케이션의 진입점인 main.ts 파일에서 애플리케이션 전체 로그의 레벨을 설정할 수 있다는 점을 학습했다. 예를 들어, 다음과 같은 설정을 통해 로그 레벨을 특정할 수 있었다:
async function bootstrap() {
const app = await NestFactory.create(AppModule, {
logger: ['verbose'], // verbose 이상의 모든 로그 레벨 출력 (verbose보다 높은 위험도를 포함)
});
}
이 설정을 통해 verbose 레벨 이상의 위험도(FATAL, ERROR, WARN, LOG, DEBUG 포함) 로그를 선택적으로 출력할 수 있어, 개발 단계와 운영 환경에 따라 적합한 로깅 전략을 선택할 수 있었다. 로그 레벨 설정을 통해 애플리케이션의 성능과 운영 효율성을 관리하는 방법까지 익힐 수 있었던 실습이었다.
오늘 수업은 개발자 입장에서 반드시 갖추어야 할 효율적인 로깅 방법과 전략에 대해 체계적으로 접근할 수 있도록 도움을 준 좋은 시간이 되었다. 앞으로 실무에서 로깅을 적극적으로 활용해 장애 대응 능력과 서비스 운영의 효율성을 높여나가겠다는 다짐을 하게 되었다.
이제 다음 시간은 custom logger인데 기대가 된다
사진



