[typescript] 타입스크립트와 MongoDB 연동 시 확장성 있는 코드 작성 방법
타입스크립트는 JavaScript에 타입을 추가한 것으로, MongoDB와의 연동을 위해 사용될 때 확장성 있는 코드를 작성할 수 있습니다. 이번 포스트에서는 타입스크립트와 MongoDB를 연동하여 확장성 있는 코드를 작성하는 방법을 살펴보겠습니다.
목차
설치 및 설정
먼저 프로젝트에 필요한 의존성을 설치합니다. 타입스크립트와 MongoDB를 사용하기 위해 다음과 같은 패키지를 설치해야 합니다.
npm install typescript mongoose
이제 tsconfig.json
파일을 생성하여 타입스크립트 설정을 해줍니다.
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"outDir": "./dist",
"strict": true
}
}
모델 정의
타입스크립트에서 MongoDB와 연동하기 위해서는 모델을 정의해야 합니다. 아래는 예시 모델입니다.
import mongoose, { Document, Schema } from 'mongoose';
interface IUser extends Document {
name: string;
email: string;
age?: number;
}
const UserSchema: Schema = new Schema({
name: { type: String, required: true },
email: { type: String, required: true },
age: { type: Number }
});
const User = mongoose.model<IUser>('User', UserSchema);
export default User;
CRUD 작업
모델이 정의되면 CRUD(Create, Read, Update, Delete) 작업을 수행할 수 있습니다.
Create
const createUser = async (name: string, email: string, age?: number): Promise<IUser> => {
const user = new User({ name, email, age });
return await user.save();
};
Read
const findUserByName = async (name: string): Promise<IUser | null> => {
return await User.findOne({ name });
};
Update
const updateUserEmail = async (name: string, newEmail: string): Promise<IUser | null> => {
return await User.findOneAndUpdate({ name }, { email: newEmail }, { new: true });
};
Delete
const deleteUser = async (name: string): Promise<boolean> => {
const result = await User.deleteOne({ name });
return result.deletedCount === 1;
};
결론
타입스크립트와 MongoDB를 연동하여 확장성 있는 코드를 작성하는 방법에 대해 알아보았습니다. 모델을 정의하고 CRUD 작업을 통해 데이터를 관리할 수 있습니다. 이를 통해 안정적이고 확장성 있는 애플리케이션을 개발할 수 있습니다.