본문 바로가기

강의

Node.js + Express (설정 정리)

728x90

 

1. 프로젝트 초기화

프로젝트 디렉토리 생성하고, 해당 디렉토리에서 다음 명령어를 싱행하여 Node.js 프로젝트를 초기화 한다.

$ npm init -y

 

 

이 명령은 기본 값으로 `package.json ` 파일을 생성하고, 이 파일은 프로젝트의 메타 데이터와 의존성을 관리한다.

 

{
  "name": "experssjs",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node server.js",
    "dev": "nodemon server.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.18.2",
    "hbs": "^4.2.0"
  },
  "devDependencies": {
    "nodemon": "^3.1.0"
  }
}

 

 

2. Express 및 기타 의존성 설치

Exppess.js는 Node.js를 위한 빠르고, 간결하며, 유연한 웹 프레임워크이다. Express와 함께 사용할 `hbs`(Handlebars 템플릿 엔진)를 설치

$ npm install express hbs

 

3. Axios 설치

`axios`는 Promise 기반의 HTTP 클라이언트로, 브라우저와 Node.js에서 사용할 수 있으며, API 호출 등에 유용하다.

$ npm install axios

 

 

4. Audit 문제점 해결

시간이 지남에 따라 프로젝트의 의존성에서 보안 취약점이 발견 될수 있다. `npm audit` 명령을 실행하여 ㅁ이러한 문제를 확인하고, 필요한 경우 `npm audit fix --force`를 사용하여 자동으로 수정할수 있다.

단 `--force` 옵션은 호환성 문제를 일으킬수 있으니 주의해야 한다.

$ npm audit
$ npm audit fix --force

 

5. Nodemon 설치

`nodemon`은 개발 중 파일 변경을 감지하고 자동으로 Node.js 애플리케이션을 재시작하는 도구이며 로컬 개발 환경에 매우 유용한다.

 

$ npm install nodemon
## 전역
$ npm install -g nodemon
## 프로젝트 개발 의존성으로 로컬 설치
$ npm install --save-dev nodemon

 

6. 개발 스크립트 설정

`pavkage.json` 파일에 개발 스크립트를 추가하여 `nodemon`을 사용해 애플리케이션을 싱핼하수 있다.

"scripts": {
    "start": "node server.js",
    "dev": "nodemon server.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

 

이제 `npm rus dev` 명령으로 개발 모드에서 애플리케이션을 싱행할수 있다. 이 명령은 `nodemon`을 사용하여 파일 변경시 자동으로 서버를 재시작 한다.

$ npm run dev

 

7. 쿠키 파서

`cookie-parser`미드웨어는 요청된 쿠키를 파싱하여 `req.cookies`에 쉽게 접근할 수 있게 해준다.

$ npm install cookie-parser

 

 

8. 필수 라이브러리 및 프레임워크 설치
첫 번째 명령은 다음과 같은 필수 라이브러리와 프레임워크를 설치하는 것입니다. 이들은 웹 애플리케이션 개발에 있어서 기본적인 구성 요소를 제공한다.

$ npm install dotenv
$ npm install express
$ npm install nodemon
$ npm install body-parser
$ npm install cookie-parser
$ npm install cors
$ npm install mongoose
$ npm install passport
$ npm install passport-local
$ npm install passport-google-oauth20


dotenv: 환경 변수를 .env 파일에서 로드하여 사용할 수 있게 해준다.
express: Node.js를 위한 빠르고, 개방적이며, 최소한의 웹 프레임워크이다.
nodemon: 개발 중 파일 변경을 감지하고 자동으로 서버를 재시작해주는 유틸리티이다.
body-parser: 들어오는 요청의 본문을 파싱하는 미들웨어이다.
cookie-parser: 요청된 쿠키를 파싱하여 사용하기 쉽게 해주는 미들웨어이다.
cors: 교차 출처 리소스 공유(CORS) 문제를 해결하기 위한 미들웨어이다.
mongoose: MongoDB를 위한 객체 데이터 모델링(ODM) 라이브러리이다.
passport: 사용자 인증을 위한 미들웨어이다.
passport-local: 사용자명과 비밀번호를 사용하는 인증 방식을 위한 Passport 전략이다.
passport-google-oauth20: Google OAuth 2.0을 사용하는 인증 방식을 위한 Passport 전략이다.

 

 

9. 서버 사이드 렌더링을 위한 템플릿 엔진 설치
두 번째 명령은 서버 사이드 렌더링을 지원하는 템플릿 엔진인 ejs를 설치하는 것이다.

$ npm install ejs


ejs: JavaScript를 사용하여 템플릿을 생성하는 간단한 템플릿 언어이다.

 

 

10. 세션 관리 라이브러리 설치
세 번째 명령은 세션 관리를 위한 express-session을 설치하는 것이다.

$ npm install express-session


express-session: 세션 관리를 위한 미들웨어로, 사용자 식별 및 상태 저장을 위해 사용된다.
이러한 설치 명령들을 통해 웹 애플리케이션 개발에 필요한 주요 기능들을 지원하는 다양한 라이브러리와 프레임워크를 프로젝트에 추가할 수 있다.

11. bcryptjs 설치
비밀번호 해싱을 위한 라이브러리로, 사용자 비밀번호의 안전한 저장과 검증을 위해 사용된다. 이 라이브러리를 사용하면 해시 알고리즘을 이용하여 사용자의 비밀번호를 암호화하고, 저장된 해시와 비교하여 사용자의 로그인 요청을 검증할 수 있다.

$ npm install bcryptjs

 

12. win-node-env 설치

 Windows 환경에서 Node.js 개발을 용이하게 하는 도구로, Windows에서 UNIX 및 Linux 스타일의 환경 변수 설정을 지원한다. 이 도구를 전역으로 설치하면, 스크립트 내에서 환경 변수를 설정하고 사용하는 과정을 Windows에서도 문제없이 수행할 수 있다.

$ npm install -g win-node-env

 

13. config 설치

애플리케이션 설정을 관리하는 라이브러리로, 개발, 테스트, 프로덕션 등 다양한 환경에서의 설정을 구분하여 관리할 수 있다. 이를 통해 애플리케이션의 설정을 효율적으로 관리하고, 환경에 따라 적절한 설정을 적용할 수 있다.

$ npm install config

  

14. js-yaml 설치

YAML 파일을 파싱하고 생성하는 라이브러리로, 설정 파일, 데이터 저장 등 다양한 용도로 사용된다. JSON 대비 더 읽기 쉽고 편리한 형식을 제공하기 때문에, 애플리케이션의 설정 파일 등을 YAML 형식으로 작성하고 관리할 때 유용하게 사용할 수 있다.

$ npm install js-yaml

 

15. nodemailer 설치
Node.js에서 이메일 발송을 간편하게 할 수 있는 모듈. SMTP를 통해 다양한 메일 서버와 연동 가능하며, HTML 이메일, 첨부 파일 전송 등을 지원한다.

$ npm install nodemailer

 

16.passport-kakao 설치
Kakao 로그인을 Node.js 앱에 쉽게 추가할 수 있는 Passport 인증 전략. 사용자는 카카오 계정으로 웹사이트에 로그인할 수 있고, 카카오 사용자 프로필 정보를 활용할 수 있다.

$ npm install passport-kakao

 

17. multer 설치

 Node.js에서 멀티파트(form-data) 파일 업로드를 쉽게 처리하는 미들웨어. Express와 같은 프레임워크와 함께 사용되어 파일 저장 위치, 이름 등을 커스터마이즈할 수 있다.

$ npm install multer

 

18.archiver는 Node.js에서 파일을 ZIP이나 TAR 형식으로 압축하고 아카이브를 생성할 수 있는 모듈이다. 파일들을 쉽게 압축해 관리할 수 있게 해준다.

 

$ npm install archiver

 

19. 타입스크립트설치

$ npm install typescript --save-dev