mongoose/typegoose vs prisma

less than 1 minute read

typescript로 몽고디비 사용할 때 뭐가 더 좋을까?

조금 해 보고 금방 결정

선언 비교

typegoose

export class FileSchema extends TimeStamps {
  @prop({ type: () => String, required: true })
  public accountId!: string
  @prop({ type: () => String, required: true })
  public path!: string
  @prop({ type: () => String, required: true })
  public name!: string

}

prisma

model FileModel {
  id      String @id @default(auto()) @map("_id") @db.ObjectId
  accountId String

  path String
  name String
}

mongoose

는 고려 대상도 아니다. 선언이 너무 길다.

장단점

typegoose

result가 type으로 매핑이 된다?

prisma

도 된다. node가 duck typing이 되니까 그냥 interface만들어놓고 변환해버리면 된다.
?될것같다.
typegoose도 별반 다르지 않을 듯 하고

선택

prisma

  1. 요즘 대세라 레퍼런스가 많다

  2. 선언이 간단하다

typegoose, mongoose 쓰는건 시간낭비인 것 같다.
prisma에서 쿼리성능이슈가 조금 있다는 것 같은데 오픈소스도 돈 싸움이라 돈이 몰리는 쪽이 결국 성능도 더 좋아진다.
그리고 몽고디비는 구조상 그 쿼리이슈 상관없을 것 같다.

Categories:

Updated: