로그 남기기
애플리케이션을 운영할 때 보면 에러가 날 때가 많이 있습니다.
그럴 때 어디 부분이 문제인지 빠르고 정확하게 파악하기 위해서는 어떠한 곳에서
에러가 어떻게 나고 있는지 보기 위해서 로그 를 보는게 중요합니다. 그래서 이번 시간에는 로그에 대해서 알 아보겠습니다
로그의 종류
Log - 중요한 정보의 범용 로깅
Warning - 치명적이거나 파괴적이지 않은 처리되지 않은 문제
Error - 치명적이거나 파괴적인 처리되지 않은 문제
Debug - 오류 발생시 로직을 디버그하는 데 도움이되는 유용한 정보입니다. -개발자 용-
Verbose - 응용 프로그램의 동작에 대한 통찰력을 제공하는 정보입니다. -운영자 용-
로그 레벨은 각자가 정해서 남긴다.
원래 로그 넣는 것은
하나하나 개발하면서 넣는게 맞지만 현재는 개발을 다하고 난 후 에 로그를 넣고 있습니다.
그 이유는 한번에 많은 개념이 섞여서 배우면 힘들기에 다른 것들 먼저 배우고 Logging 부분을 배우기 위해서 입니다
로그를 처리 하기 위해서 사용하는 모듈은...
expressjs를 사용할 때는 Winston이란 모듈을 주로 사용합니다.
하지만 nestjs에는 이미 built-in된 logger 클래스가 있기에 그걸 사용하겠습니다.
설정 및 마무리
설정 (Configuration)이란?
소스 코드안에서 어떠한 코드들은 개발 환경이나 운영 환경에 이 러한 환경에 따라서 다르게 코드를 넣어줘야 할 때가 있으며,
남들에게 노출 되지 않아야 하는 코드들도 있습니다. 이러한 코드 들을 위해서 설정 파일을 따로 만들어서 보관해주겠습니다.
설정 파일은...
runtime 도중에 바뀌는 것이 아닌 애플리케이션이 시작할 때 로 드가 되어서 그 값들을 정의하여 줍니다.
그리고 설정 파일은 여 러가지 파일 형식을 사용할 수 있습니다.
예로는 XML, JSON, YAML, Environmant Variables 같이 많은 형식을 이용할 수 있습니다.
Codebase VS Enviroment Variables(환경 변수)
설정을 할 떄 여러가지 형식으로 할 수 있다고 했습니다.
그곳에서 XML, JSON, YAML 같은 경우는 Codebase에 해당하며 그리고 다른 방법은 환경 변수로 할 수 있습니다.
주로 이 둘을 나 눠서 하는 이유는 비밀 번호와 API Key 같은 남들에게 노출 되면 안되는 정보들을 주로 환경 변수를 이용해서 처리해줍니다
설정하기 위해서 필요한 모듈
윈도우에서는 win-node-env 를 설치해야 합니다.
(왜냐면 윈도우에서는 기본적으로 환경변수를 지원하지 않기 때문 입니다.)
npm install -g win-node-env
그리고 윈도우와 맥 모두에서는 config라는 모듈을 설치받아야 합니다.
Config 모듈을 이용한 설정 파일 생성
1. 루트 디렉토리에 config 라는 폴더를 만든 후에 그 폴더 안에 JSON이나 YAML 형식의 파일을 생성합니다. config/default.yaml
2. config 폴더 안에 default.yml, development.yml, 그리고 production.yml 파일을 생성하겠습니다.
Config 폴더 안에 저장된 것들을 사용하는 방법
1. 어느 파일에서든지 config 모듈을 import 해서 사용하면 됩니다.
import * as config from 'config';
2. 그리고 config.get('server') => 이렇게 하면 { port: 3000 } 이렇 게 나옵니다.
설정과 환경 변수 코드에 적용하기
'모카 스터디 > Nest' 카테고리의 다른 글
NestJS 개요 및 객체지향 디자인 패턴 (0) | 2023.08.01 |
---|---|
NestJS를 위한 express 핵심 원리 (0) | 2023.08.01 |
Nest JS JWT/Passport 인증/인가 [John Ahn] (0) | 2023.07.30 |
Nest JS TypeORM 연동 [John Ahn] (0) | 2023.07.30 |
Nest JS DTO 및 Pipe [John Ahn] (0) | 2023.07.30 |