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 |
---|