Prisma 블로그 포스트 번역
미래를 위해 설계됨
2024년 12월, 저희는 Prisma ORM의 미래에 대한 비전을 발표했으며, 이를 달성하기 위해 계획한 단계들을 공유했습니다. 이것은 단순한 아이디어 모음이 아니었습니다. 저희가 Prisma ORM을 어떻게 발전시키고 커뮤니티를 어떻게 지원할 것인지에 대한 명확한 약속이었습니다. 저희는 또한 자체 관리형 Postgres 서비스인 Prisma Postgres를 출시했습니다. 단순성과 성능을 염두에 두고 구축된 Prisma Postgres는 Prisma ORM에서 경험할 수 있는 모든 개발자 경험을 제공하는 쉽게 도입할 수 있는 데이터베이스를 제공하고자 했습니다.
ORM 로드맵과 Prisma Postgres가 출시되면서, 저희는 각 도구의 다음 버전을 구축하기 위한 견고한 기초를 갖추게 되었습니다. 이 두 제품에 대한 반응은 매우 긍정적이었습니다. 저희는 ORM 시장 점유율과 사용량에서 상당한 성장을 보고 있으며, Prisma Postgres의 취미 및 상용 채택도 놀라울 정도로 증가했습니다. Rust에서 벗어나다
6.0.0을 출시했을 때, 우리는 더 나은 성능, 더 많은 유연성, 더 나은 타입 안정성을 약속했습니다. 해야 할 일이 있다는 것을 알았고, 그곳에 도달하기 위해 몇 가지 획기적인 변화를 해야 했습니다. 클라이언트가 Rust로 구축된 부작용은 ORM에 기여할 수 있는 사람들을 제한했다는 것입니다. 강력한 Rust 경험이 없다면 의미 있는 기여를 하기가 훨씬 더 어려웠습니다. 기술적 측면에서, Rust와 JavaScript 런타임 간의 통신 계층은 순수 JavaScript로 작업하는 것보다 훨씬 느리며, 런타임에 대한 추가 종속성을 만듭니다. Deno의 친구들도 이러한 의견을 공유했습니다:
"Prisma가 Rust에서 벗어난다는 소식을 듣고 native addon API를 다루지 않아도 되어 Deno에서 Prisma를 지원하는 것이 훨씬 간단해질 것이라고 생각했습니다. 저희는 모두 정말 기대했습니다!"
Luca Casonato at Deno
Rust 없는 클라이언트로 이동하면 더 빠른 클라이언트 런타임, 더 작은 풋프린트, 더 간단한 배포 스토리가 가능해집니다. 더 이상 런타임별 특이성이나 Cloudflare Workers와 같은 인프라 제공자가 배포된 애플리케이션의 크기를 제한하는 것에 대해 걱정할 필요가 없습니다. 우리는 계속 진행했고 Rust 없는 Prisma Client가 될 것에 대해 계속 반복했습니다. 결과는 어떨까요?
- Vercel Edge 및 Cloudflare Workers를 위한 더 간단한 배포
그리고 이를 증명하는 벤치마크를 가지고 있습니다. 가장 좋은 부분은? 전체 애플리케이션을 다시 작업할 필요가 없습니다. 전환에 필요한 변경 사항은 매우 간단합니다. 저희는 Kent C. Dodds와 같은 친한 친구들뿐만 아니라 커뮤니티의 수십 명의 사용자와 대화했으며, 피드백은 매우 긍정적이었습니다:
"몇 주 전에 업그레이드했는데 모든 것이 얼마나 잘 진행되었는지, 그리고 새로운 Rust 없는 클라이언트로 전환하기가 얼마나 쉬웠는지 보는 것이 좋았습니다."
Kent C. Dodds
node_modules에서 생성된 코드 제거 및 새로운 설정 파일
또한, 저희는 생성된 아티팩트를 처리하는 방식에 대한 피드백을 받아 더 나은 방식으로 개선했습니다. 저희는 이전에 이에 대해 다루었지만, 역사적으로 프로젝트의 node_modules에서 클라이언트를 생성했습니다. 당시에는 생성된 클라이언트가 다른 라이브러리처럼 느껴지도록 하고 싶었기 때문에 이것이 합리적이었습니다. 하지만 시간이 지나면서 이것이 개발자 워크플로우에 상당한 영향을 미친다는 것을 발견했습니다. 클라이언트를 업데이트해야 하는 경우, 타입을 다시 생성하기 전에 앱별 프로세스를 먼저 중지해야 합니다. 대신, 저희는 기본적으로 타입과 Prisma Client를 프로젝트 소스 코드에 생성하므로 기존 개발 및 빌드 도구가 이를 앱의 일부로 봅니다. 이제 모델을 변경하고 prisma generate를 실행하면, 도구와 파일 감시자가 이러한 변경에 반응하고 개발 워크플로우를 계속 실행할 수 있습니다. 전체 설정이 node_modules에 숨겨진 것이 아니라 프로젝트의 일부가 됩니다. 저희는 또한 새로운 Prisma 설정 파일로 동적 프로젝트 구성을 지원하기 위해 추가했습니다. Prisma 설정 파일은 데이터와 Prisma가 해당 데이터와 상호 작용하는 방식을 분리하기 위해 존재합니다. 이전에는 이 프로젝트 구성이 Prisma 스키마 또는 package.json에 분산되어 있었습니다. Prisma 설정 파일은 스키마 위치, 시드 스크립트 또는 데이터베이스 URL을 정의할 수 있는 한 곳으로 이를 해결합니다. JavaScript 또는 TypeScript 파일이므로, dotenv와 같은 도구로 구성을 동적으로 설정할 수 있습니다. 이것은 개발자에게 프로젝트 구성에서 설정되는 내용을 제어할 수 있는 권한을 주며, 현대적인 개발자 도구에서 기대할 수 있는 표준으로 이 부분의 경험을 향상시킵니다.
더 빠르고 적은 타입
하지만 저희가 집중한 것은 이것뿐만이 아닙니다. Prisma ORM의 주요 이점 중 하나는 타입 안정성입니다. 이는 올바른 타입을 제공할 뿐만 아니라 빠르고 효율적인 방식으로 제공하는 것을 의미합니다. 이를 개선하기 위해, 저희는 ArkType의 창시자인 David Blass와 협력하여 타입을 얼마나 잘 생성하고 있는지 평가했습니다. 결과는 읽을 가치가 있지만, 주요 내용은 다음과 같습니다: - Prisma는 스키마를 평가하기 위해 약 98% 적은 타입이 필요합니다
- Prisma는 쿼리 평가를 위해 약 45% 적은 타입이 필요합니다
- Prisma는 전체 타입 검사를 수행할 때 70% 더 빠릅니다
생태계의 다른 ORM과 비교하면, 저희의 생성된 타입은 평가하기가 더 빠를 뿐만 아니라 TypeScript가 사용자에게 유용한 정보를 제공하기 위해 필요한 타입이 더 적습니다. 이것이 왜 중요할까요? 개발자가 저희가 제공하는 타입 안정성이 빠를 뿐만 아니라 오버헤드가 적다는 것을 알고 자신감 있게 애플리케이션을 구축할 수 있기 때문입니다.
모두를 위한 Prisma Postgres
하지만 Prisma는 단순한 ORM 이상입니다. 저희의 관리형 Postgres 데이터베이스는 개발자가 Prisma ORM을 시작할 때 필요한 것을 제공하기 위해 구축되었습니다... 데이터베이스입니다. 저희는 Prisma Postgres를 unikernel microVM으로 구동되는 베어메탈 인프라로 구축했습니다. 이것이 의미하는 바는 모든 것이 빠르고 계속 빠르다는 것입니다. 하지만 저희는 개발자 경험을 염두에 두고, 복잡한 부분을 처리하므로 직접 관리할 필요가 없습니다. 프로비저닝이나 리소스 구성에 대해 걱정할 필요 없이, 저희가 모든 것을 관리하고 Prisma ORM과 기본적으로 통합합니다. ORM에서 익숙한 것과 동일한 훌륭한 DX를 데이터베이스에서도 제공합니다.
Prisma Postgres를 시작하는 것은 터미널에서 단일 명령을 실행하는 것만큼 간단합니다:
데이터베이스가 프로비저닝되고, 준비가 되면 이를 요청할 수 있는 링크를 받게 됩니다. 개발자 워크플로우에서 AI 에이전트를 사용하는 사람들을 위해, 저희는 필요에 따라 데이터베이스를 생성하고 관리하는 데 사용할 수 있는 전용 API와 MCP 서버를 제공합니다.
"Prisma로 작업할 때마다 시작 가이드로 이동하고 설치한 후 데이터베이스를 가져와야 한다는 것을 깨닫습니다. 항상 그 과정에서 길을 잃곤 했는데 이렇게 쉽게 데이터베이스를 만들 수 있다는 것이 정말 놀랍습니다!"
Jason Lengstorf
Prisma Postgres는 여기서 멈추지 않았습니다. 저희는 이제 표준 Postgres 연결 프로토콜을 채택했으므로 더 넓은 생태계의 모든 도구가 데이터베이스와 통신할 수 있습니다. 이는 Cloudflare Hyperdrive, TablePlus, Retool 또는 다른 ORM과 같은 도구도 모두 Prisma Postgres와 함께 사용할 수 있다는 의미입니다.
이 모든 것이 가능한 이유는 Prisma Postgres가 단순히 표준 Postgres이지만 최고의 Postgres 경험을 제공하도록 구축되었기 때문입니다.
다른 변경 사항
이 릴리스에는 저희가 이야기하고 싶은 많은 것들이 있지만, 그렇게 되면 이 포스트가 훨씬 더 길어질 것입니다. 지금까지 읽어주셔서 감사합니다! 저희는 백로그의 문제와 기능 요청을 처리하기 위해 수많은 시간을 보냈으며, 매핑된 열거형, 프로젝트에 필요한 Node 및 TypeScript의 최소 버전 업데이트, 그리고 npx prisma studio를 통한 완전히 새로운 버전의 Prisma Studio와 같은 상위 요청 항목 중 일부를 해결했습니다. 이 릴리스에 포함된 모든 것을 저희 변경 로그에서 찾을 수 있으며, 마이그레이션 가이드도 제공됩니다. 감사합니다
이것은 저희에게 단순한 버전 릴리스가 아닙니다. 이것은 Prisma ORM과 Prisma Postgres의 다음 단계를 위한 기초입니다. 저희는 구축한 도구가 최고의 경험을 제공하기를 원하므로 개발자는 놀라운 애플리케이션을 구축하고 배포하는 데 집중할 수 있습니다. 따라서 저희의 놀라운 커뮤니티와 사전 릴리스 과정 중에 피드백을 제공해주신 모든 분께 감사드립니다. 그리고 지금 Prisma 7을 시도하고 있는 모든 분께: 어떻게 생각하시는지 저희에게 알려주세요!
마이그레이션 가이드 및 추가 리소스는 아래 링크를 확인해주세요. X/Twitter에서 저희를 팔로우하고 Discord에 참여하여 릴리스될 때 최신 업데이트를 받으세요.