[typescript] 타입스크립트로 MongoDB를 조작하는 Node.js 서버 개발 사례

이 블로그 포스트에서는 Node.jsMongoDB를 사용하여 타입스크립트로 서버를 개발하는 방법에 대해 살펴볼 것입니다.

1. MongoDB 설치

먼저, MongoDB를 설치하고 로컬 환경에서 실행합니다. MongoDB 공식 웹사이트에서 제공하는 설치 가이드를 따라 진행합니다.

# MongoDB 설치
$ brew install mongodb
# MongoDB 실행
$ brew services start mongodb

2. Node.js 프로젝트 설정

다음으로, Node.js 프로젝트를 생성하고 타입스크립트를 사용할 것이므로 필요한 패키지를 설치합니다.

# Node.js 프로젝트 생성
$ mkdir my-node-project
$ cd my-node-project
$ npm init -y
# 타입스크립트 및 관련 패키지 설치
$ npm install typescript ts-node @types/node mongoose

3. 타입스크립트 설정

타입스크립트를 사용하기 위해 프로젝트 루트에 tsconfig.json 파일을 생성하고 필요한 설정을 추가합니다.

{
  "compilerOptions": {
    "target": "ESNext",
    "module": "CommonJS",
    "strict": true,
    "esModuleInterop": true
  }
}

4. MongoDB 연결

mongoose 라이브러리를 사용하여 Node.js 애플리케이션과 MongoDB를 연결합니다.

import mongoose from 'mongoose';

const DB_URL = 'mongodb://localhost:27017/my-database';

mongoose.connect(DB_URL, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

5. 모델 정의

MongoDB에서 사용할 데이터 모델을 타입스크립트로 정의합니다.

import { Schema, model, Document } from 'mongoose';

interface IUser extends Document {
  name: string;
  email: string;
}

const UserSchema = new Schema<IUser>({
  name: { type: String, required: true },
  email: { type: String, required: true },
});

const User = model<IUser>('User', UserSchema);

export default User;

6. 라우팅 및 컨트롤러

마지막으로, Express를 사용하여 라우팅 및 컨트롤러를 구현합니다.

import express from 'express';
import User from './models/User';

const app = express();

app.get('/users', async (req, res) => {
  const users = await User.find();
  res.json(users);
});

app.post('/users', async (req, res) => {
  const { name, email } = req.body;
  const newUser = new User({ name, email });
  await newUser.save();
  res.status(201).json(newUser);
});

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

마무리

이제 타입스크립트와 MongoDB를 사용하여 Node.js 서버를 개발하는 방법에 대해 간략하게 알아보았습니다. 물론 실제 프로젝트에서는 보다 복잡한 구현이 필요할 수 있으며, 자세한 내용은 공식 문서를 참고하시기 바랍니다.

Happy coding!