새 프로젝트 폴더를 생성

터미널 창에 npm init 명령어를 입력해 npm을 초기화

Server 개발에 필요한 모듈/라이브러리 설치
npm i express mongoose body-parser cors jsonwebtoken bcryptjs nodemon
express
- Node.js에서 서버와 API를 구축할 수 있는 웹 애플리케이션 프레임워크
mongoose
- MongoDB와 Node.js 간의 데이터 모델링을 돕는 ODM(Object Data Modeling) 라이브러리
dotenv
- 애플리케이션 설정 값을 .env 파일에서 환경 변수로 불러와 보안과 설정 관리
body-parser
- 요청(Request) 본문을 파싱하여 req.body로 사용할 수 있게 하는 미들웨어
cors
- 다른 출처 간 요청을 허용해주는 미들웨어로, 보안과 접근을 설정
jsonwebtoken
- 사용자 인증 및 보안에 사용되는 JSON Web Token을 생성하고 검증하는 라이브러리
bcryptjs
- 비밀번호를 해싱하여 보안성을 높이는 라이브러리로, 사용자 인증에서 사용
nodemon
- 코드 변경 시 자동으로 서버를 재시작해 변경 사항을 반영해주는 개발 도구
프로젝트 초기 설정
-
App.js 파일 생성

-
설치한 모듈/라이브러리 사용 설정

const express = require('express');
- Express 모듈을 불러와 웹 서버를 구축할 수 있도록 준비
const mongoose = require('mongoose');
- Mongoose 모듈을 불러와 MongoDB와의 데이터베이스 연결을 쉽게 할 수 있도록 설정
const bodyParser = require('body-parser');
- body-parser 모듈을 불러와 요청 본문(body)을 파싱할 수 있는 기능을 제공
const cors = require('cors');
- CORS 모듈을 불러와 다른 도메인에서의 요청을 허용할 수 있도록 설정
const app = express();
- Express 애플리케이션 객체를 생성하여 서버로 활용하도록 설정
require('dotenv').config;
- dotenv를 불러와 .env 파일의 환경 변수를 설정할 수 있도록 설정
app.use(cors());
- CORS 설정을 전역으로 활성화하여 모든 도메인에서의 요청을 허용(app.use(cors())로 수정하는 것이 더 일반적입니다).
app.use(bodyParser.urlencoded({ extended: false }));
- URL 인코딩된 데이터(HTML 폼 형식)를 파싱하여 req.body에서 사용할 수 있도록 설정
app.use(bodyParser.json());
- JSON 형식의 요청 본문을 파싱하여 req.body에서 사용할 수 있도록 설정
DB연결 설정
const mongoURI = process.env.LOCAL_DB_ADDRESS;
.env 파일에 저장된 LOCAL_DB_ADDRESS 환경 변수 값을 가져와 mongoURI에 할당합니다. 이 값은 MongoDB의 연결 주소입니다.
mongoose
.connect(mongoURI, { useNewUrlParser: true })
- Mongoose를 사용해 MongoDB에 연결
- { useNewUrlParser: true } 옵션은 새로운 MongoDB URL 파서 사용을 지정
app.listen(process.env.PORT || 5000, () => {
console.log('Server ON');
});
- process.env.PORT에 지정된 포트(지정되지 않았을 경우 5000번)에서 요청을 수신 대기
- 서버가 정상적으로 시작되면 "Server ON"이라는 메시지를 콘솔에 출력
nodemon 설정
npm start
- 서버 구동 성공
