본문 바로가기
Programming & Platform/prisma

Prisma 소개, Mongoose와 차이, ORM

by 코드스니펫 2023. 12. 4.
반응형

Prisma 소개, Mongoose와 차이, ORM

 

prisma logo

 

JavaScript와 TypeScript 개발자들을 위한 Prisma는 뛰어난 ORM 기능으로 객체와 데이터베이스를 손쉽게 연결합니다. 다양한 관계형 데이터베이스를 지원하며, MongoDB까지 포함한 다양한 선택의 폭이 돋보입니다.

 

Mongoose와 비교하여 Prisma는 TypeScript 호환성과 다양성을 자랑하며, 코드의 간결함과 가독성을 고려한 모델 정의 방식은 프로젝트를 더욱 효율적으로 만들어줍니다. 쉽게 접근할 수 있는 예시 코드로, Prisma의 매력적인 세계를 경험해보세요! ✨"

 

 

1. Prisma란?

 

💡 Prisma: ORM의 빛나는 세계

Node.js 환경에서는 데이터베이스와 JavaScript 객체를 연결하는 여러 ORM이 있습니다. 그 중에서도 TypeScript에서도 사용 가능하고 학습이 쉬운 Prisma가 눈에 띕니다. Prisma는 Object Relational Mapping(ORM)으로, JavaScript 객체와 데이터베이스의 관계를 아름답게 연결해주는 도구입니다.

 

 

 

💻 다양한 데이터베이스와의 인연

Prisma는 다양한 관계형 데이터베이스(RDB)를 지원합니다. MySQL, Oracle, MariaDB, PostgreSQL 등 여러 데이터베이스를 활용할 수 있어 프로젝트에 유연성을 부여합니다. 또한, TypeScript에서도 사용 가능하여 개발자들에게 편의성을 제공합니다.

 

 

Prisma와 Mongoos의 차이

 

🔄 Prisma와 Mongoose의 기본 차이

Mongoose는 Object Document Mapping(ODM)으로, JavaScript 객체를 MongoDB의 Document와 연결합니다. 반면 Prisma는 ORM으로, JavaScript 객체와 RDB의 테이블 간의 관계를 매핑합니다.

 

 

🌐 다양한 데이터베이스 지원

Mongoose는 주로 MongoDB를 지원하지만, Prisma는 RDBMS에 해당하는 다양한 데이터베이스를 활용할 수 있습니다. 이는 프로젝트의 데이터베이스 선택에서 자유로움을 의미합니다. 더불어 Prisma는 미세하지만 MongoDB도 지원한다는 점에서 다양성을 제공합니다.

 

 

 

📋 모델과 스키마: 테이블과 컬렉션의 비교

Mongoose에서는 Schema를 사용해 Collection에 대한 속성을 설정합니다. Prisma에서는 Model을 활용하여 Table의 속성을 설정합니다. MongoDB의 Collection과 MySQL의 Table은 비슷한 역할을 하며, Prisma는 이를 적절히 다루어줍니다.

 

 

예시 코드로 살펴보기

 

Prisma 예시 코드

// Prisma 모델 정의
model User {
  id    Int      @id @default(autoincrement())
  name  String
  email String   @unique
  posts Post[]
}

model Post {
  id    Int      @id @default(autoincrement())
  title String
  content String
  userId Int
  user   User     @relation(fields: [userId], references: [id])
}

 

 

Mongoose 예시 코드

// Mongoose 스키마 정의
const userSchema = new mongoose.Schema({
  name: String,
  email: { type: String, unique: true },
  posts: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Post' }]
});

const postSchema = new mongoose.Schema({
  title: String,
  content: String,
  userId: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }
});

 

 

이러한 예시 코드를 통해 Prisma와 Mongoose의 모델 정의 방식의 차이를 명확히 이해할 수 있습니다. Prisma는 TypeScript와의 호환성이 뛰어나며, 다양한 데이터베이스 지원으로 프로젝트에 유연성을 부여합니다.

 

▼ 아래 글도 읽어보세요! ▼

 

 

JavaScript 배열 메소드 filter() 쉽게 배우기 - 예시 코드 제공

JavaScript 배열 메소드 filter() 쉽게 배우기 - 예시 코드 제공 JavaScript에서 배열을 조작하고 원하는 조건을 충족하는 요소만 추출하는 데 사용하는 강력한 배열 메소드 중 하나가 filter()입니다. 이

lemonlog.tistory.com

 

 

JavaScript 배열 메소드 forEach() 쉽게 배우기 - 예시 코드 제공

JavaScript 배열 메소드 forEach() 쉽게 배우기- 예시 코드 제공 JavaScript는 다양한 배열 메소드를 제공하여 배열의 요소를 조작하고 처리할 수 있게 해줍니다. 이번 글에서는 그 중에서도 forEach() 메소

lemonlog.tistory.com