피드로 돌아가기
I built a 13-database ORM for Node.js because Prisma doesn't support Oracle
Dev.toDev.to
Database

Prisma의 Oracle 미지원 해결을 위한 13종 DB 대응 경량 ORM 설계

I built a 13-database ORM for Node.js because Prisma doesn't support Oracle

MADANI2026년 4월 19일3advanced

Context

정부 규제에 따른 Oracle DB 사용 필수 환경에서 Prisma의 지원 DB 부족으로 인한 아키텍처 제약 발생. 30MB 규모의 Engine Binary와 대규모 Codegen Client로 인한 배포 무거움 및 확장성 한계 직면.

Technical Solution

  • Hibernate 영감을 받은 추상화 레이어 설계를 통한 13종 Database Dialect 통합 지원
  • WASM Binary 제거 및 Dialect당 약 200라인의 경량 구현체 채택으로 런타임 오버헤드 최소화
  • EntitySchema 기반의 Plain Object 구조를 도입하여 100K라인 규모의 Codegen 프로세스 제거
  • Prisma API와 호환되는 Bridge 레이어 설계를 통해 기존 코드 수정 최소화 및 마이그레이션 경로 제공
  • Cross-dialect Replication 메커니즘 구현을 통한 SQLite(Dev)에서 PostgreSQL(Prod) 및 MongoDB(Analytics)로의 데이터 동기화 체계 구축
  • CDC(Change Data Capture) 기반의 @mostajs/replicator를 통한 인프라 의존성 없는 실시간 복제 환경 조성

- legacy DB 지원 여부에 따른 ORM 선정 및 추상화 레이어 설계 검토 - Codegen 방식의 Client가 프로젝트 규모에 따라 빌드 속도 및 번들 크기에 미치는 영향 분석 - 개발-운영-분석 환경의 DB가 다를 경우 Cross-dialect Replication 도입 가능성 타진

원문 읽기