-
#TIL_Prisma에 대하여!.!TIL (Today I Learned) 2023. 12. 8. 00:23
# Prisma란?
Prisma는 데이터베이스를 다루기 위한 현대적이고 강력크한 ORM(Object-Relational Mapping) 및 데이터베이스 도구 입니다. Prisma는 TypeScript 및 JavaScript에서 사용할 수 있으며, 다양한 데이터베이스 시스템과 통합할 수 있는 ORM 솔루션을 제공합니다.
원래는 `Prisma Client`라고 불렸으며, Prisma 클라이언트는 Prisma에서 자동으로 생성되는 데이터베이스에 대한 타입 안정성이 있는 쿼리를 작성할 수 있는 도구입니다.
# Prisma 사용량이 많은 이유
Prisma의 성공적인 투자와 발전은 개발자 커뮤니티와 기업들에게 많은 신뢰를 얻고 있는 것으로 보입니다. Typescript와의 강력한 통합, 타입 안정성, 코드 생성 등의 특징은 Prisma를 매력적인 선택으로 만들어주고 있습니다.
1. 지속적인 업데이트
Prisma의 짧은 업데이트 주기는 새로운 기능과 버그 픽스를 빠르게 제공한다는 점에서 프로젝트를 유지보수하고 발전시키는 데 도움이 됩니다. 최신 기술과 트렌드에 대한 대응성을 갖추며, 사용자들이 최신 기능을 적용하여 개발할 수 있도록 도와줍니다.
2. 공식문서의 가독성
Prisma의 공식 문서는 기술을 빠르게 이해하고 적용할 수 있도록 잘 작성되어 있어, 백엔드 분야에 처음 도전하는 사용자에게 적합합니다. 비록 TypeORM보다 늦게 출시되었지만, 활발한 커뮤니티 토론과 풍부한 학습 자료는 Prisma를 학습하는 데 큰 도움을 줍니다.
3. 타입의 안전성
Prisma는 TypeScript를 적극적으로 활용하여 type-safety를 제공합니다. 이는 개발자가 코드를 작성할 때 런타임 에러를 방지하고 안정성을 확보할 수 있게 도와줍니다. TypeORM은 'anyORM'이라는 별명을 가지고 있어, TypeScript를 활용하는 사용자에게는 Prisma의 타입 안정성이 더욱 매력적으로 느껴집니다.
# Prisma의 주요 특징
1. TypeScript 지원
Prisma는 TypeScript와 완벽하게 통합되어 강력한 타입 지원을 제공합니다. 개발자는 타입 안정성을 활용하여 런타임 오류를 방지하고 효율적으로 코드를 작성할 수 있습니다.
2. 코드 생성 및 자동 완성
Prisma는 데이터베이스 스키마를 기반으로 코드를 자동으로 생성합니다. 이를 통해 개발자는 쿼리 및 모델에 대한 코드를 직접 작성할 필요 없이 자동 완성을 통해 간편하게 쿼리를 작성할 수 있습니다.
3. 데이터베이스 독립적
Prisma는 다양한 데이터베이스 시스템을 지원합니다. 현재는 MySQL, PostgreSQL, SQLite를 비롯한 여러 데이터베이스를 지원하고 있습니다.
4. 마이그레이션 및 스키마 관리
Prisma는 데이터베이스의 스키마 변경 및 마이그레이션을 관리하는데 도움을 줍니다. 개발자는 명령어를 사용하여 데이터베이스 스키마를 간편하게 변경할 수 있습니다.
5. GraphQL 지원
Prisma는 GraphQL을 지원하여 GraphQL API를 쉽게 개발할 수 있습니다. Prisma Client를 사용하여 GraphQL 스키마와 쿼리를 자동으로 생성할 수 있습니다.
6. 성능 최적화
Prisma는 데이터베이스 쿼리를 자동으로 최적화하고 캐싱을 활용하여 빠른 응답 시간을 제공합니다.
# Prisma가 ORM API 대신 Raw Query를 선택한 이유
1. 백엔드 개발자와의 원활한 소통
백엔드가 Go 언어를 사용하고 있다면 일반적인 SQL 문법을 사용하는 Raw Query는 백엔드 개발자와의 소통을 원활하게 만들 수 있습니다. Prisma ORM API는 특정 언어와 스택에 종속되는 경우가 있어, 다른 언어를 사용하는 팀원들과의 협업이 어려울 수 있습니다.
2. 기존 쿼리 코드 이식성
기존의 쿼리 코드를 재사용하거나 참고할 수 있도록 하는 이유는 기존에 동작하던 로직을 그대로 가져오면서도 새로운 개발을 진행하기 위함입니다. Raw Query를 사용하면 기존 쿼리 코드를 쉽게 이식할 수 있으며, 유지보수 및 확장이 간편해집니다.
3. 기술 종속성 완화
프로젝트에서 Prisma를 공통 스택으로 사용하지 않는 경우, 개발자들이 새로운 ORM을 익히고 사용하는 데에 시간이 소요될 수 있습니다. Raw Query를 사용하면 특정 ORM에 대한 종속성을 완화하고, 팀 내에서 다양한 기술 스택을 사용하는 경우에도 유연하게 대처할 수 있습니다.
4. 프로젝트의 종속성 최소화
개발자가 프로젝트에 적응하기까지의 학습 곡선을 최소화하기 위한 선택으로 Raw Query를 사용했을 것으로 보입니다.특히 프로젝트에 적용되는 기술이 일관되지 않은 경우, 새로운 기술을 도입할 때 발생하는 리스크를 최소화할 수 있습니다.
*** Prisma 공식사이트
*** Prisma 이슈
'TIL (Today I Learned)' 카테고리의 다른 글
#Sequelize 2탄: 더 깊이 들어가는 Sequelize 사용 방법 (0) 2023.12.14 #TIL(error)_ERROR: NodeJS address already in use // Window 해결 방법 (0) 2023.12.11 #TIL_ EC2를 이용해서 프로젝트 배포하기(1편 EC2 생성하기) (1) 2023.12.04 #TIL(error)_잔잔바리 실수로 인해 겪었던 부끄러운 error (0) 2023.12.01 #TIL(error)_REST API와 Postman 오류에 대하여 (0) 2023.11.29