728x90
프리마(Prisma)는 JavaScript 및 TypeScript 애플리케이션에서 데이터베이스와 상호작용하는 강력한 ORM(Object-Relational Mapping) 도구입니다. 프리마를 JavaScript에서 사용하는 기본적인 코드 작성 과정을 아래와 같이 설명할게요.
1. Prisma 설치
먼저 프로젝트에서 Prisma를 설치해야 합니다.
npm install prisma --save-dev
npm install @prisma/client
2. Prisma 초기화
Prisma를 초기화하면 prisma/schema.prisma 파일이 생성됩니다.
npx prisma init
이 명령은 prisma 디렉토리와 함께 기본 구성 파일을 만듭니다. schema.prisma에서 데이터베이스를 설정할 수 있습니다.
예를 들어, SQLite를 사용할 경우:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
model User {
id Int @id @default(autoincrement())
name String
email String @unique
}
3. Prisma Client 생성
스키마 변경사항을 반영하려면 Prisma Client를 생성해야 합니다.
npx prisma generate
4. 마이그레이션 적용
마이그레이션을 통해 데이터베이스에 테이블 구조를 반영합니다.
npx prisma migrate dev --name init
5. Prisma Client 사용
Prisma Client를 사용해 데이터베이스와 상호작용합니다.
예제: index.js
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function main() {
// 새로운 사용자 생성
const newUser = await prisma.user.create({
data: {
name: 'John Doe',
email: 'john.doe@example.com',
},
});
console.log('Created user:', newUser);
// 사용자 목록 가져오기
const allUsers = await prisma.user.findMany();
console.log('All users:', allUsers);
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});
6. Prisma Client 쿼리 사용 예제
1) 데이터 삽입
await prisma.user.create({
data: {
name: 'Alice',
email: 'alice@example.com',
},
});
2) 데이터 조회
const users = await prisma.user.findMany();
console.log(users);
3) 데이터 업데이트
await prisma.user.update({
where: { email: 'alice@example.com' },
data: { name: 'Alice Wonderland' },
});
4) 데이터 삭제
await prisma.user.delete({
where: { email: 'alice@example.com' },
});
이 과정을 통해 JavaScript 애플리케이션에서 Prisma를 효과적으로 사용할 수 있습니다. 필요에 따라 Prisma 스키마와 쿼리를 확장해 보세요!
Q1. Prisma와 TypeScript를 함께 사용할 때 어떤 장점이 있을까요?
Q2. Prisma Client에서 트랜잭션 처리 방식은 어떻게 구현할 수 있을까요?
Q3. Prisma와 함께 사용할 수 있는 다른 데이터베이스는 어떤 것이 있는지 알아보고, 프로젝트에 적합한 데이터베이스를 선택해보세요.
'내일배움 정리 > JS 문법 공부' 카테고리의 다른 글
문자열 메서드 (0) | 2024.12.19 |
---|---|
정규식 테스트 (1) | 2024.12.17 |
(작성중)구조 분해할당 : 여러 변수를 한번에 할당하기 (0) | 2024.12.03 |
화살표함수(작성중) (0) | 2024.12.03 |
형변환, 숫자의 진법변환 (0) | 2024.12.03 |