[typescript] 타입스크립트와 MongoDB 연동 시 데이터 유효성 검사 방법

타입스크립트(TypeScript)는 데이터의 유효성을 검사하고 안정적인 코드를 유지하는 데 도움이 되는 강력한 정적 타입 시스템을 제공합니다. MongoDB는 유연한 JSON 기반 문서 데이터베이스로서, 데이터의 구조를 명확하게 정의하는 과정이 없습니다. 이러한 MongoDB와 타입스크립트를 연동할 때 데이터 유효성을 검사하는 방법을 알아보겠습니다.

1. Mongoose 사용

Mongoose는 MongoDB와 함께 사용되는 Node.js의 라이브러리로, 스키마를 정의하고 데이터를 유효성 검사할 수 있는 기능을 제공합니다. 타입스크립트와 함께 Mongoose를 사용하면, 타입을 지정하여 데이터 모델을 정의하고 유효성을 검사할 수 있습니다.

아래는 Mongoose를 사용하여 유저 모델을 정의하고 유효성을 검사하는 예제입니다.

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

interface User extends Document {
  username: string;
  email: string;
  age: number;
}

const UserSchema: Schema = new Schema({
  username: { type: String, required: true },
  email: { type: String, required: true },
  age: { type: Number, required: true, min: 18 },
});

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

2. Class-validator와 Class-transformer 사용

Class-validator와 Class-transformer는 타입스크립트를 위한 두 가지 라이브러리로, 데코레이터를 사용하여 데이터 유효성을 간편하게 검사할 수 있습니다.

아래는 Class-validator와 Class-transformer를 사용하여 유저 모델을 정의하고 유효성을 검사하는 예제입니다.

import { IsString, IsEmail, Min } from 'class-validator';
import { plainToClass, Type } from 'class-transformer';

class User {
  @IsString()
  username: string;

  @IsEmail()
  email: string;

  @Type(() => Number)
  @Min(18)
  age: number;
}

const userData = {
  username: 'exampleuser',
  email: 'example@example.com',
  age: 20,
};

const userObject = plainToClass(User, userData);

요약

타입스크립트와 MongoDB를 연동하면서 데이터 유효성을 검사하는 방법으로는 Mongoose를 사용하거나 Class-validator와 Class-transformer를 활용하는 방법이 있습니다. 각각의 방법은 데이터 모델을 정의하고 유효성을 검사하는 데 유용하며, 프로젝트의 요구사항에 맞게 선택하여 사용할 수 있습니다.