본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr
0425 금
학습 내용 정리
Custom Logger 제작하기
default.logger.ts
Winston 사용하기
수강후기
0425 금요일 수업에서는 NestJS에서의 커스텀 로거(Custom Logger) 와 Winston 로거 통합에 대해 실습하고 학습하는 시간을 가졌습니다. 먼저 ConsoleLogger를 상속하여 기본 로거의 기능을 확장한 DefaultLogger를 만들어 보았고, 특히 warn과 error 로그를 오버라이딩하여 로그가 출력될 때 커스텀 메시지를 함께 보여주는 방식으로 로그 출력을 커스터마이징할 수 있다는 점을 배웠습니다. 이 과정을 통해 NestJS 로깅 시스템의 유연성과 확장성을 실제로 체감할 수 있었습니다.
이어지는 시간에는 실무에서 많이 활용되는 Winston 로거를 NestJS에 통합하는 방법을 배웠습니다. WinstonModule.forRoot()를 통해 로그의 최소 출력 레벨을 debug로 설정하고, 두 개의 주요 트랜스포트(출력 경로)를 구성하였습니다. 하나는 콘솔에 컬러로 로그를 출력하도록 설정했고, 다른 하나는 logs 폴더에 logs.log 파일로 로그를 저장하는 설정이었습니다. 특히 winston.format.combine, colorize, timestamp, printf 등 다양한 포맷터 조합을 통해 로그의 출력 포맷을 자유롭게 제어할 수 있다는 점이 흥미로웠습니다.
이 수업을 통해 NestJS 로깅 시스템을 기본 제공되는 기능으로만 사용하는 것이 아닌, 프로젝트 상황에 맞게 직접 확장하거나 외부 라이브러리를 연동하여 고도화할 수 있다는 점을 알게 되었습니다. 실제 운영 환경에서 로그의 중요성은 아무리 강조해도 지나치지 않기 때문에, 오늘 배운 내용은 향후 프로젝트에 큰 도움이 될 것 같습니다. 특히 File 트랜스포트를 통해 로그를 파일로 저장해두면, 디버깅이나 장애 이력 추적에도 매우 유용하다는 점을 실감했습니다.
이번 수업은 NestJS의 로깅 시스템을 한 단계 더 깊이 이해할 수 있는 시간이었고, 단순한 출력이 아닌, 운영과 유지보수까지 고려한 로깅 설계의 중요성을 배우는 의미 있는 시간이었습니다.
사진



