Node.js/JavaScript

[node.js] 프로젝트 시작 단계의 주요 프레임워크/라이브러리 및 기본 세팅

왈왈디 2023. 3. 22. 22:23
728x90

API 작성 프로젝트 시작 단계에서 필요한 기본 세팅들

 

1. npm 시작

작업 중인 프로젝트 폴더에서 npm init -y 명령어 입력 후 아래 프레임워크/라이브러리 설치

npm init -y를 입력하면 package.json 파일이 설치된다.

npm init -y

2. nodemon global (-g)로 설치하기

npm install -g nodemon

파일 저장하면 자동으로 서버가 재시작되도록 하는 nodemon을 global로 설치하여 모든 프로젝트 진행 시 사용할 수 있도록 한다.

 

package.json 파일의 script에 nodemon으로 쉽게 서버를 시작할 수 있는 명령어를 추가해 두면 편하다.

아래와 같이 추가해두면 npm start 명령어 만으로도 nodemon으로 app.js를 실행할 수 있다.

"scripts":{
	"start": "nodemon app.js"
}

파일 저장 후 바로 서버가 재시작 되지 않는다면, rs 명령어(restart)를 입력하면 재식작 시킬 수 있다.


3. git ignore 설정

git으로 관리하지 않을 파일들 미리 설정

미리 설정하지 않으면 개인 정보가 포함된 파일이 github에 올라가 보안 상 문제가 발생하거나

너무 용량이 큰 파일이 올라가 매우 느려지는 등 여러 문제가 발생할 수 있다.

 

gitignore 파일 생성해주는 사이트: https://www.toptal.com/developers/gitignore

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

- 파일 생성 시 추가되어야 하는 키워드들 (예시)

  • VisualStudioCode
  • Vim
  • WebStorm
  • macOS
  • Linux
  • Windows
  • Zsh
  • Node

4. 기본적인 프레임워크/라이브러리들 설치

설치 명령어는 npm install [프레임워크/라이브러리 이름]

설치하면 package.json 파일의 "dependencies": 에 아래와 같이 추가된다.

 

"dependencies": {
    "cors": "^2.8.5",
    "dotenv": "^16.0.3",
    "express": "^4.18.2",
    "morgan": "^1.10.0",
    "mysql2": "^3.2.0",
    "typeorm": "^0.3.12"

1. express

 - http 메소드별 function 할당 및 여러 기능을 쉽게 하는 server-side Framework

 

2. cors

 - 서로 다른 출처의 http 통신을 막는 SOP(Same Origin Policy) 규약 정책을 넘어서 다른 주소 간에 통신할 수 있도록 해주는 설정

 - 서로 다르두 개의 origin/domain 끼리의 데이터 주고 받기가 가능하게 함

 

3. morgan

 - http 통신 기록하는 logger 패키지

 - 아래 4가지 내부 속성 중 선택하여 로그의 포맷 설정 가능

  1) common

  2) dev

  3) short

  4) tiny

 

4. dotenv

 -  .env 파일을 생성하여 환경 변수들을 정의하는 라이브러리

 - 온라인에 업로드할 경우 보안에 위협이 될 수 있기 때문에 반드시 .gitignore 파일에 추가하여 github에 업로드 되지 않도록 주의 

 

5. mysql

 - 데이터 관리하고 저장할 RDBMS 설치

 - 꼭 mysql일 필요는 없음

 

6. typeorm

 - DB를 관리하는 라이브러리

 - 현재 프로젝트에서는 DB와 API의 link 용도로만 사용함



5. .env.sample 파일 만들기

git hub에 .env 파일 대신 다른 팀원들이 쉽게 알아보고 이해할 수 있도록 하는 .env 파일 작성 template 역할의 .env.sample 파일을 생성하여 github에 업로드한다.

DB_CONNECTION='RDBMS NAME'
DB_HOST='IP address'
DB_USERNAME='Your user name'
DB_PASSWORD='Your password for the RDBMS'
DB_DATABASE='Name of your database'
DB_PORT='Database port number'
DB_LOGGING='True/False'

DATABASE_URL='rdbmsType://username:password@iphost:portNumber/databaseName'

 

728x90