핵심 요약
EdgeDB 6.0(Postgres 기반)을 사내 신규 SaaS에 1년. 타입 안전 EdgeQL + 풍부한 객체 모델로 ORM·DTO·마이그레이션 도구를 모두 한 곳에서 해결. 백엔드 코드량 -42%, 그 자리에 스키마/쿼리가 명확히 들어와 신규 개발자 온보딩이 매우 빠름. 단, 생태계는 여전히 작음.
1. 무엇이 다른가
- 객체 그래프 모델 — 1대N, N대M, computed link 1급
- EdgeQL — SQL 대안, 객체 친화
- 마이그레이션 자체가 DB 명령
- RBAC, 트랜잭션, 풀텍스트, JSON, vector 모두 표준
2. 스키마
module default {
type User {
required email: str { constraint exclusive; }
name: str;
multi posts: Post;
}
type Post {
required title: str;
body: str;
required author: User;
created: datetime { default := datetime_current(); }
}
}
3. EdgeQL — 객체 쿼리
SELECT User {
name,
posts: { title, created } ORDER BY .created DESC LIMIT 5
} FILTER .email = <str>$email;
JOIN 없음. 객체 그래프로 자연스럽게 표현. 결과도 중첩 객체.
4. TypeScript 통합
import e from "./dbschema/edgeql-js";
const q = e.select(e.User, u => ({
name: true,
posts: { title: true, created: true },
filter: e.op(u.email, "=", e.str("a@b.c")),
}));
const result = await q.run(client); // 타입 자동
queries.edgeql 파일을 두는 방식도 함께 지원. 컴파일 타임에 타입 생성.
5. 마이그레이션
edgedb migration create
edgedb migrate
대화형으로 변경 요약 보여주고 확인. 자동 백필·관계 변경도 깔끔.
6. 성능
EdgeDB는 결국 Postgres 위. 단일 쿼리 latency는 동등 또는 +5%. 다중 라운드 트립을 객체 쿼리 한 번으로 줄여 실제 응답은 더 빠른 경우가 많다.
7. 함정
- 생태계 작음 — 큐, 캐시, 외부 도구 통합은 직접
- Postgres 확장(pgvector, PostGIS)을 직접 못 씀 — 6.0부터 일부 지원
- SQL 인터페이스(beta)도 있으나 EdgeQL 권장
자주 묻는 질문
Q. Prisma vs EdgeDB? Prisma는 ORM, EdgeDB는 DB 자체. EdgeDB는 ORM이 필요 없고 그 자체가 더 풍부.

댓글 0