개발/Database

[Database] ORM과 Prisma

xuwon 2024. 11. 25. 13:59
ORM (Object-Relational Mapping)

객체 지향 프로그래밍 언어의 객체를 관계형 데이터베이스의 테이블과 매핑하는 기술

즉, 프로그래밍 언어에서 데이터베이스 작업을 SQL 쿼리를 직접 작성하지 않고
객체를 통해 간접적으로 수행할 수 있게 도와주는 도구나 기법.

 

대표적인 ORM 도구

Hibernate(Java), SQLAlchemy(Python), Entity Framework(.NET), TypeORM(Javascript/TypeScript)

 

데이터베이스

데이터를 체계적으로 저장하고 관리하는 시스템

여러 사용자가 데이터를 효율적으로 저장, 수정, 삭제, 검색할 수 있도록 설계된 시스템
주로 DBMS를 통해 접근한다.

 

데이터베이스 종류

- 관계형 데이터베이스 (RDBMS, ex. MySQL, PostgreSQL)
- 비관계형 데이터베이스 (NoSQL, ex. MongoDB, Redis)

 

데이터베이스 주요 기능

- 데이터 저장
- 데이터 검색 및 관리
- 데이터 무결성 유지
- 다중 사용자 지원

 

ORM의 장점


1. 생산성 향상

SQL 쿼리를 작성할 필요 없이 객체를 통해 데이터를 다룰 수 있으므로,
 더 적은 코드로 데이터베이스 작업을 처리할 수 있다.

2. 유지보수 용이성

데이터베이스와의 의존성이 줄어들어 코드 변경이 더 간단하며,
데이터베이스를 변경하거나 마이그레이션할 때도 최소한의 수정으로 작업 가능

3. 데이터베이스 독립성

ORM 도구는 다양한 데이터베이스와 호환되므로, 데이터베이스를 교체하거나 추가해도 코드 수정을 최소화할 수 있다.

4. 자동화 기능

스키마 생성, 데이터 마이그레이션 등 반복적인 데이터베이스 작업을 자동으로 처리해 준다.

 

ORM은 데이터베이스와 객체 지향 언어 간의 구조적 차이를 효과적으로 해소하여

개발 생산성을 높이고, 유지보수성을 향상시키는 데 중요한 역할을 한다.

 


 

Prisma

현대적인 ORM 도구
TypeScript 및 JavaScript를 사용하여 데이터베이스와 상호작용할 수 있도록 도움.

Prisma는 데이터베이스 스키마를 기반으로 자동으로 타입이 정의된 데이터베이스 클라이언트를 생성하여,
개발자가 SQL을 직접 작성하지 않고도 안전하고 효율적으로 데이터 작업을 수행할 수 있도록 해준다.

 

Prisma 구성 요소

Prisma Client

자동으로 생성되는 타입 안정성 데이터베이스 클라이언트

Prisma Migrate

데이터베이스 스키마를 관리하기 위한 마이그레이션 도구

Prisma Studio

데이터베이스를 시각적으로 탐색하고 편집할 수 있는 웹 기반 GUI 도구

 

Prisma의 장점

1. 타입 안정성

데이터베이스 스키마를 기반으로 TypeScript 타입을 자동 생성.
이를 통해 개발 중 타입 에러를 방지하고, 데이터베이스 작업의 안정성을 향상시킬 수 있다.

2. 생산성 향상

Prisma Client는 직관적인 API를 제공하여 복잡한 SQL 쿼리를 작성하지 않고도 간단하게 데이터베이스 작업을 수행할 수 있다.
마이그레이션 및 데이터 모델링 또한 도구로 자동화할 수 있어 개발 시간 절약

3. 효율적인 데이터베이스 관리

Prisma Migrate를 사용하면 데이터베이스 스키마의 버전을 관리하고, 스키마 변경 사항을 데이터베이스에 쉽게 반영 가능.

4. 다중 데이터베이스 지원

MySQL, PostgreSQL, SQLite 등 여러 데이터베이스를 지원한다.

5. 통합과 확장성

Prisma는 Next.js, GraphQL 등과 자연스럽게 통합되며, 백엔드와 프론트엔드 간의 데이터 작업 간소화

 

 

'개발 > Database' 카테고리의 다른 글

[Database] 3-Tier 아키텍처  (0) 2024.11.25