프로젝트 구조 설명 - Node.js + Express + MongoDB 연락처 API

이 프로젝트는 Express 프레임워크와 MongoDB, Mongoose ODM을 기반으로 한 RESTful API로, 사용자 연락처 정보를 관리하는 기능을 구현합니다.


전체 폴더 구조

myContacts/
├── app.js                      # 애플리케이션 진입점
├── config/
│   └── dbConnect.js           # DB 연결 설정
├── controllers/
│   └── contactController.js   # 요청 처리 비즈니스 로직
├── models/
│   └── contactModel.js        # Mongoose 스키마 및 모델 정의
├── routes/
│   └── contactRoutes.js       # 라우팅 설정
├── .env                       # 환경변수 파일 (MongoDB 연결 문자열 등)
└── package.json               # 프로젝트 의존성 및 설정


✅ 기본적으로 필요한 패키지들

패키지명 설명 설치 명령어
express 웹 서버 프레임워크 npm install express
mongoose MongoDB ODM (MongoDB와 연결 및 모델 정의) npm install mongoose
dotenv 환경변수 .env 파일에서 불러오기 npm install dotenv
express-async-handler 비동기 에러 처리용 미들웨어 npm install express-async-handler

✅ (선택) 개발 편의성 도구

패키지명 설명 설치 명령어
nodemon 코드 변경 시 서버 자동 재시작 (개발용) npm install -D nodemon또는 전역 설치 npm install -g nodemon

설치 순서 예시

npm init -y                      # package.json 생성 (처음 1회만)
npm install express mongoose dotenv express-async-handler
npm install -D nodemon          # 개발용 nodemon 설치

1. app.js

// express 모듈 불러오기
const express = require("express");

// MongoDB 연결 함수 불러오기 (dbConnect.js에서 정의된 함수)
const dbConnect = require("./config/dbConnect");

// express 애플리케이션 생성
const app = express();

// MongoDB 연결 실행
dbConnect();

// 클라이언트 요청에서 JSON 형식의 body 데이터를 파싱하기 위한 미들웨어
app.use(express.json());

// 클라이언트 요청에서 x-www-form-urlencoded 형식의 body 데이터를 파싱하기 위한 미들웨어
app.use(express.urlencoded({ extended: true }));

// '/contacts' 경로로 들어오는 요청을 contactRoutes에서 처리
app.use("/contacts", require("./routes/contactRoutes"));

// 포트 3000번에서 서버 실행
app.listen(3000, () => {
  console.log("서버 실행 중...");
});