Node.js

🎉Start Node.js

Tony Min 2023. 2. 24. 16:29

node.js

프로젝트 세팅

 

Step 1. 프로그램 설치

NVM (Node Version Manager)

https://github.com/nvm-sh/nvm

nvm은 노드 버전 매니저로 어려 버전의 node.js를 편리하게 관리할 수 있습니다.

모든 POSIX-compliant shell에서 작동하고 Unix, macOS, Windows WSL 모든 운영체제에서 이용이 가능합니다.

명령어를 통해 node.js 버전을 global 혹은 local로 설정하여 적용할 수 있으므로 프로젝트 별 node.js 버전을 관리하기 쉽게 해줍니다.

OS별 설치 방법과 세팅은 위 페이지를 통해 확인하면 됩니다.

 

VScode (Visual Studio code)

많은 이들의 사랑을 받고 있는 Vscode.

다양한 프로그래밍 언어를 지원하고 있고 개인적으로 체감이 너무 좋은 IDE.

Extension을 통해서 다양한 기능을 제공하고, Github의 Copilot을 사용하고 계신다면 가장 접근하기 좋은 IDE 입니다.

 

Git

Git - Downloads

Git은 분산형 버전 관리 시스템입니다. Git을 사용하면 프로젝트의 이전 버전을 쉽게 복원하거나 다른 개발자들과 협업할 수 있습니다. Git을 설치하려면 https://git-scm.com/downloads에서 다운로드할 수 있습니다.

 

Step 2. 프로젝트 생성

create project folder

프로젝트 폴더를 생성해주고 해당 디렉토리로 이동합니다.

 

git init

프로젝트를 git으로 관리하려면 git init 명령어를 사용하여 git 저장소를 초기화해야 합니다. 이 명령은 현재 디렉토리에 .git 폴더를 만듭니다. 이제 git을 사용하여 프로젝트를 관리할 수 있습니다.

git init

 

.gitignore 파일 생성

프로젝트를 git으로 관리하게 된다면 gitignore 파일을 생성하여 git에서 관리되면 안되는 파일을 설정할 수 있습니다.

예를 들어 node_modules 디렉토리는 용량이 크고 로컬 개발환경에서만 필요한 파일이기 때문에 gitignore 파일에 추가하여 관리하지 않도록 설정할 수 있습니다.

 

.gitignore 파일에 node_modules 추가

node_modules 디렉토리는 용량이 크고 로컬 개발환경에서만 필요한 파일이므로 gitignore 파일에 추가하여 git에서 관리되지 않도록 설정합니다.

# .gitignore 파일에 추가
node_modules/

 

npm init

해당 디렉토리에서 npm init 커맨드를 입력하거나 Vscode를 열어 터미널 창에서 npm init을 입력합니다.

 

package.json 파일 수정

npm init 명령어를 실행하면 package.json 파일이 생성됩니다. 이 파일에서 프로젝트의 정보와 의존성 패키지 정보를 확인할 수 있습니다. 필요한 패키지를 설치하고 package.json 파일에 의존성 정보를 추가하여 관리합니다.

예를 들어, express 패키지를 설치하고 package.json 파일의 dependencies 항목에 추가하면 다른 개발자들이 해당 프로젝트를 클론하고 npm install을 실행하여 express 패키지를 설치할 수 있습니다.

 

필요한 패키지 설치

package.json 파일을 만들고 필요한 의존성을 추가한 후에는 npm install 명령을 사용하여 이를 설치할 수 있습니다. 이 명령은 package.json 파일에 나열된 모든 의존성을 설치합니다.

 

package-lock.json 파일 생성

npm install 명령을 실행하면 package-lock.json 파일이 생성됩니다. 이 파일은 package.json 파일의 의존성을 정확하게 설치한 버전 정보를 포함합니다. 이 파일은 프로젝트의 의존성 버전을 일치시키는 데 도움이 됩니다.

 

프로젝트 진입점 설정

프로젝트 진입점은 프로젝트를 실행할 때 실행되는 파일입니다. 기본적으로 진입점은 index.js입니다. 그러나 package.json 파일의 main 속성을 수정하여 다른 파일로 변경할 수 있습니다.

 

npm start 스크립트 추가

package.json 파일의 scripts 항목에 start 스크립트를 추가하여 서버를 시작할 수 있습니다.

"scripts": {
  "start": "node index.js"
},

이제 npm start 명령어를 사용하여 서버를 시작할 수 있습니다.

npm start

 

서버 생성

Node.js에서 서버를 만들기 위해서는 http 모듈을 사용할 수 있습니다. 그러나 직접 사용하기에는 약간 불편합니다.

대신에 Express.js와 같은 프레임워크를 사용하여 더 편리하고 쉬운 API로 서버를 만들 수 있습니다.

Express 서버를 만들기 위해서는 npm install express 명령을 사용하여 설치한 다음, 엔트리 포인트로 잡은 index.js 파일을 만들어 서버를 정의합니다.

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Server listening on port 3000');
});

이 코드에서는 새 Express 앱을 만들고 루트 경로에 대한 라우트를 정의하고 3000 포트에서 서버를 시작합니다.

 

+@) Typescript 세팅

Typescript는 JavaScript의 상위 집합 언어로, 더 강력한 타입 검사 및 객체 지향 프로그래밍 지원을 제공합니다. Typescript를 사용하여 Node.js 프로젝트를 구축하려면 다음 명령을 사용하여 Typescript를 설치해야 합니다.

npm install typescript --save-dev

설치가 완료되면 tsconfig.json 파일을 만들어야 합니다. 이 파일은 Typescript 컴파일러가 코드를 어떻게 컴파일할지 지정합니다. 이 파일을 만들려면 다음 명령을 실행합니다.

npx tsc --init

이 명령을 실행하면 tsconfig.json 파일이 생성됩니다. 이제 Typescript를 사용하여 Node.js 프로젝트를 구축할 수 있습니다.

아래는 tsconfig.json 파일의 예시 코드입니다.

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "outDir": "./dist",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

  • compilerOptions: TypeScript 컴파일러에 대한 옵션을 설정합니다. 이 부분에서는 다음과 같은 설정이 이루어집니다.
    • target: 컴파일된 JavaScript 코드가 어떤 버전의 ECMAScript를 지원할 것인지를 설정합니다. 위 코드에서는 ECMAScript 6를 지원하도록 설정되어 있습니다.
    • module: 컴파일된 JavaScript 코드가 어떤 모듈 시스템을 사용할 것인지를 설정합니다. 위 코드에서는 CommonJS를 사용하도록 설정되어 있습니다.
    • outDir: 컴파일된 JavaScript 코드가 저장될 디렉토리를 설정합니다. 위 코드에서는 ./dist로 설정되어 있습니다.
    • strict: TypeScript 컴파일러에서 엄격한 타입 검사를 수행할 것인지를 설정합니다. 위 코드에서는 true로 설정되어 있습니다.
    • esModuleInterop: CommonJS 모듈에서 import 구문을 사용할 수 있도록 설정합니다. 위 코드에서는 true로 설정되어 있습니다.
    • skipLibCheck: 컴파일러가 .d.ts 파일에 대한 타입 검사를 수행하지 않도록 설정합니다.
  • include: 컴파일러가 컴파일할 파일을 지정합니다. 위 코드에서는 src 디렉토리 내의 모든 파일을 대상으로 컴파일하도록 설정되어 있습니다.
  • exclude: 컴파일러에서 제외할 파일을 지정합니다. 위 코드에서는 node_modules 디렉토리와 .spec.ts 파일을 제외하도록 설정되어 있습니다.

타입스크립트를 적용하고 싶으면 index.js 파일을 index.ts 파일로 변경하면됩니다.

결론

지금까지 프로그램 설치, 프로젝트 폴더 생성, package.json 파일 초기화, 의존성 설치, 프로젝트 진입점 설정 및 Express.js를 사용하여 서버를 만드는 등 Node.js 프로젝트를 설정하는 필요한 단계를 모두 다루었습니다. 이어지는 포스트에는 Setting up routes, Creating Views, Connecting to DB를 통해 프로젝트를 자세하게 빌드하는 방법을 설명하겠습니다.