- Published on
NestJS 프로젝트 초기 설정하기
- Authors
- Name
NestJS에서 초기에 설정해야 하는 목록

NestJS 프로젝트를 처음 시작하면 프레임워크 답게 개발 편의를 위해 Node 개발을 위한 여러 도구들이 미리 설정되어 생성된다. 초기에 설정해야 하는 목록은 아래와 같다.
- tsconifg.json
- npm vs yarn vs pnpm 패키지 관리자 선택하기
- .eslintrc.js
- .prettierrc
- nest-cli.json
하나씩 각각의 설정들에 대해 알아보자.
tsconfig.json
tsconfig.json은 Typescript를 사용할 때 세세한 설정들을 할 수 있게 해주는 설정 파일이다.
npm vs yarn vs pnpm
node에는 node_modules를 관리해주는 패키지 관리자가 있는데 초기에 npm 하나만 있었지만 현재는 yarn과 그 이후에 나온 pnpm까지 3개 중 1개를 선택해야 하는 시대가 왔다.
.eslintrc.js
eslintrc.js는 ESLint의 설정 파일로 여러 언어를 지원하는데 여기에서는 Javascript/Typescript 코드를 정적으로 분석하여 문제를 빠르게 찾아 사전에 오류 등을 막을 수 있게 해주는 개발 도구로 사용할 수 있다. 그 외에도 세부적인 설정을 통해 코드 컨벤션 등을 강제하도록 할 수 있다.
vscode에서 extension에 추가하면 바로 사용이 가능하다.
사용 시에 tsconfig.json에서 Type check 설정과 동기화 해놓는게 좋다. 컴파일하기 전에 ESLint에서 알려주기 때문이다.
.prettierrc
.perttierrc는 Prettier의 설정 파일로 Prettier는 code formatter 도구다. Javascript 외에도 여러 언어들을 지원하고 있다. 간단한 설정만으로 프로젝트의 코드 스타일을 통일시킬 수 있다. vscode에서 extension을 설치하면 바로 사용이 가능하다
몇 가지 옵션들을 보자.
Print Width
줄 바꿈할 길이를 지정한다.
printWidth: <int>
Tab Width
들여쓰기 당 공백 수를 지정한다.
tabWidth: <int>
Tab
공백 대신 탭을 사용하여 줄을 들여쓴다.
useTabs: <bool>
Quotes
큰 따옴표 대신 작은 따옴표를 사용한다.
singleQuote: <bool>
Bracket Spacing
개체 리터럴에서 대괄호 사이의 공백을 지정한다.
- true : { foo: bar }
- false : {foo: bar}
bracketSpacing: <bool>
nest-cli.json
monorepo 구조로 프로젝트를 구성할 경우 설정해야 하는 파일로 여기에서는 다루지 않을 것이다.
번외
프로젝트의 node 버전 제한하기
.npmrc와 package.json에 설정을 하는 것으로 프로젝트에 사용되는 node 버전을 제한할 수 있다.
.npmrc
engine-strict=true
package.json
"engines": {
"node": "^18.0.0"
}
