[typescript] Mongoose를 사용하여 타입스크립트와 MongoDB 연동하기

타입스크립트(TypeScript)로 MongoDB와 연동하려면 Mongoose를 사용하는 것이 좋습니다. Mongoose는 MongoDB와 상호작용하기 위한 객체 모델링 도구로서, 타입스크립트와 함께 사용할 수 있는 의존성 주입 라이브러리입니다. 이 포스트에서는 Mongoose를 사용하여 타입스크립트와 MongoDB를 어떻게 연동할 수 있는지 알아보겠습니다.

환경 설정

먼저 타입스크립트 프로젝트를 설정하고, 필요한 패키지를 설치해야 합니다.

# 새로운 타입스크립트 프로젝트 생성
mkdir mongoose-demo
cd mongoose-demo
npm init -y
npm install mongoose @types/mongoose

# 타입스크립트 컴파일러 설치
npm install -g typescript
tsc --init

Mongoose 모델 정의

타입스크립트와 Mongoose를 함께 사용하려면, Mongoose 모델을 정의할 때 스키마(Schema)와 모델(Model)을 타입으로 정의해야 합니다.

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

interface IUser {
  username: string;
  email: string;
  createdAt: Date;
}

interface IUserModel extends IUser, Document {}

const UserSchema: Schema = new Schema({
  username: { type: String, required: true },
  email: { type: String, required: true },
  createdAt: { type: Date, default: Date.now }
});

const UserModel = mongoose.model<IUserModel>('User', UserSchema);

export { UserModel, IUser };

위의 예제에서, IUser는 사용자의 스키마를 정의한 인터페이스입니다. IUserModelIUser와 Mongoose의 Document 인터페이스를 확장한 것으로, Mongoose 모델의 타입을 정의합니다. UserSchema는 사용자 스키마를 정의하고, UserModel은 Mongoose 모델을 정의합니다.

연결 설정

Mongoose와 MongoDB를 연결하려면, 연결 URI와 옵션을 사용하여 mongoose.connect 메서드를 사용해야 합니다.

import mongoose from 'mongoose';

const MONGODB_URI: string = 'mongodb://localhost:27017/myDatabase';

mongoose
  .connect(MONGODB_URI, {
    useNewUrlParser: true,
    useUnifiedTopology: true
  })
  .then(() => {
    console.log('Connected to MongoDB');
  })
  .catch((error) => {
    console.error('Error connecting to MongoDB: ', error);
  });

위의 코드에서, MONGODB_URI는 MongoDB 서버의 URI입니다. mongoose.connect 메서드를 사용하여 MongoDB와 연결하고, 연결이 성공하면 콘솔에 “Connected to MongoDB”를 출력합니다. 연결에 실패하면 에러를 콘솔에 출력합니다.

요약

이제 우리는 타입스크립트 프로젝트를 설정하고, Mongoose를 사용하여 타입스크립트와 MongoDB를 연동하는 방법을 배웠습니다. Mongoose를 사용하면 타입스크립트로 MongoDB를 쉽게 다룰 수 있으며, 강력한 객체 모델링 기능을 활용할 수 있습니다.

더 많은 정보를 원하시면 Mongoose 공식 문서를 확인해 보세요!