# PGlite – 임베디드형 Postgres

> Clean Markdown view of GeekNews topic #24838. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24838](https://news.hada.io/topic?id=24838)
- GeekNews Markdown: [https://news.hada.io/topic/24838.md](https://news.hada.io/topic/24838.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-12-05T09:43:08+09:00
- Updated: 2025-12-05T09:43:08+09:00
- Original source: [pglite.dev](https://pglite.dev/)
- Points: 20
- Comments: 2

## Summary

브라우저 안에서 **Postgres**를 그대로 실행할 수 있다면, 데이터베이스 아키텍처는 어떻게 달라질까요? **PGlite**는 WASM 기반으로 동작하는 임베디드형 Postgres로, 서버 없이도 로컬 환경에서 완전한 데이터베이스를 구동할 수 있게 합니다. 3MB 미만의 경량 빌드에 실시간 쿼리와 동기화 기능까지 포함되어, 클라이언트 중심의 반응형 앱 개발 흐름을 한층 가볍게 만듭니다. Supabase의 *database.build*와 결합하면, AI를 통해 데이터베이스를 생성·배포하는 새로운 개발 경험도 열립니다.

## Topic Body

- **PGlite**는 **WASM 환경에서 완전한 Postgres 데이터베이스를 로컬로 실행**할 수 있는 경량 솔루션  
- 압축 시 **3MB 미만의 크기**로, 브라우저나 클라이언트 환경에서도 손쉽게 구동 가능  
- **데이터 로딩, 동기화, 실시간 쿼리** 기능이 내장되어 반응형 데이터 처리 가능  
- **pgvector**를 포함한 **동적 확장 로딩 기능**을 지원해 다양한 확장 모듈을 활용할 수 있음  
- **Supabase 기반의 database.build**를 통해 AI로 Postgres 데이터베이스를 생성·배포할 수 있어, 웹 기반 데이터베이스 개발의 유연성을 높임  
  
---  
### 개요  
- PGlite는 **WASM(WebAssembly)** 환경에서 실행되는 **임베디드 Postgres 데이터베이스**  
  - 로컬 환경에서 완전한 Postgres 인스턴스를 구동할 수 있음  
  - 반응형 데이터 처리와 실시간 동기화를 지원  
  
### 주요 특징  
- **경량성**: Gzip 압축 기준 **3MB 미만**의 완전한 Postgres 빌드 제공  
  - 브라우저나 경량 클라이언트 환경에서도 실행 가능  
- **확장성**: **동적 확장 로딩 메커니즘**을 통해 다양한 Postgres 확장 기능을 추가 가능  
  - **pgvector** 확장을 기본 지원  
- **반응성**: **데이터 로딩, 동기화, 실시간 쿼리**를 위한 내장 기능 포함  
  - 실시간 데이터 업데이트 및 반응형 애플리케이션 구축에 적합  
  
### 체험 및 활용  
- **database.build** 플랫폼에서 PGlite 기반 Postgres 데이터베이스를 생성 및 게시 가능  
  - **Supabase**가 구축한 AI 기반 도구로, 사용자가 직접 데이터베이스를 생성할 수 있음  
- 브라우저 내에서 **PGlite Postgres 인스턴스**를 직접 실행 가능  
  - **pgvector** 포함  
  - 추가 확장은 **playground(REPL)** 환경에서 실험 가능  
  
### 의의  
- PGlite는 **Postgres의 기능을 브라우저 수준으로 확장**해, 클라이언트 중심 데이터베이스 실행을 가능하게 함  
- **경량성과 확장성, 반응성**을 결합해 차세대 웹 애플리케이션 개발에 적합한 데이터베이스 솔루션으로 주목됨

## Comments



### Comment 47542

- Author: qqq7300
- Created: 2025-12-10T18:56:15+09:00
- Points: 1

이 기사를 보고 제 프로젝트에 PGlite를 실험적으로 도입해봤습니다. 확실히 간단한 테스팅으로는 정말 빠르고 좋더라구요. 앞으로도 기대가 됩니다.

### Comment 47234

- Author: neo
- Created: 2025-12-05T09:43:08+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=46146133) 
- 나는 **PGlite** 팀에서 일하고 있음. 다시 HN에 소개되어 기쁨  
  최근 주간 다운로드 수가 300만을 넘었고 곧 400만에 도달할 예정임 — [npm 패키지 페이지](https://www.npmjs.com/package/@electric-sql/pglite) 참고  
  원래는 웹앱에 임베드하기 위해 만들었지만, 지금은 **개발 도구**와 **CLI 환경**에서의 사용이 폭발적으로 늘고 있음. Google Firebase와 Prisma도 각각의 CLI에 PGlite를 내장해 서버 제품을 에뮬레이션하고 있음
  - 흥미로움. 그런데 왜 **WASM 전용**으로 만든 것인지 궁금함. 보통은 라이브러리화 후 WASM으로 옮기는 게 순서일 것 같은데, 내가 뭔가 놓친 부분이 있는 듯함
  - 멋진 작업에 감사함. 혹시 **http-vfs read-only** 시나리오를 지원할 계획이 있는지 궁금함  
    DuckDB나 sql.js-httpvfs처럼 원격 URL에서 range request로 블록을 읽는 방식 말임  
    우리 연구실에서도 [이런 프로젝트](https://news.ycombinator.com/item?id=45774571)를 진행 중인데, http-vfs 생태계는 아직 **프로토타입 수준**이라 최적화된 라이브러리가 거의 없음  
    PostgreSQL의 디스크 접근 패턴이 SQLite보다 http-vfs에 더 적합한지도 궁금함
  - **Flutter용 라이브러리** 계획이 있는지 묻고 싶음
  - PGlite가 메모리 모드에서 일반 Postgres보다 빠른지 궁금함  
    만약 그렇다면 네트워크 프로토콜을 지원해서 JS 외 언어의 CI 환경에서도 쓸 수 있으면 정말 멋질 것 같음
  - 정말 멋져 보임. 구체적으로 어떤 **사용 사례**에서 이걸 쓰면 좋은지 알고 싶음  
    목표가 SQLite나 DuckDB의 대체재가 되는 것인지 궁금함

- 나는 **비 JavaScript 런타임**에서 PGlite를 쓰고 싶음  
  예를 들어 Go CLI에 WASM 런타임으로 임베드해서 SQLite 대체로 쓰는 식임  
  [이슈 #89](https://github.com/electric-sql/pglite/issues/89)를 보면 Rust용 서드파티 바인딩이 있는 것 같은데, 공식적으로 다른 언어 바인딩을 지원할 계획이 있는지 궁금함
  - 맞음, **PGlite + Go** 조합은 정말 좋을 것 같음

- PGlite는 정말 훌륭함. 나는 브라우저 내 PostgreSQL 서버로 개발용으로 사용 중임  
  서버가 PG 프로토콜을 구현하고, 클라이언트가 연결하면 쿼리를 브라우저로 전달해 내부에서 PGlite가 실행됨  
  결과적으로 **브라우저 안에서 완전한 PG 서버**가 동작함 — [dbfor.dev](https://dbfor.dev)

- 이 프로젝트는 매우 흥미로움. Postgres의 단점 중 하나가 항상 서버를 세팅해야 한다는 점인데, 이게 그 문제를 해결함  
  혹시 **네이티브 라이브러리**로 컴파일할 방법이 있는지 궁금함. 일부 코드는 재사용 가능할 것 같음
  - 나는 실험적으로 React Native용으로 컴파일해봤음. iOS와 Android에서 Postgres가 돌아감 — [PR 링크](https://github.com/electric-sql/pglite/pull/774)
  - 네이티브 라이브러리는 현재 **로드맵에 포함**되어 있음
  - 정말 공감함. SQL이나 동작을 바꾸지 않고 **임베디드에서 네트워크 모드로 전환**할 수 있다면 너무 멋질 것 같음

- PGlite와 SQLite의 **차이점**이 궁금함  
  나는 주로 임베디드 환경과 브라우저 클라이언트 쪽에서 SQLite를 써왔음  
  SQLite는 단순함이 장점인데, PGlite는 다양한 확장 기능이 흥미로움. 두 DB의 핵심적인 차이가 무엇인지 알고 싶음
  - 내 생각엔 주요 사용처는 **테스트/CI 환경**임  
    SQLite로 빠르게 테스트를 돌릴 수 있지만, 실제 인프라가 PostgreSQL이라면 그 가치가 제한적임

- 단위 테스트에서는 여전히 **TestContainers**로 Docker 기반 Postgres를 돌리고 있음  
  하지만 이런 대안 덕분에 [py-pglite](https://github.com/wey-gu/py-pglite) 같은 Python용 테스트 도구도 가능해졌음  
  그래도 나는 [pgserver](https://github.com/orm011/pgserver)처럼 **진짜 Postgres를 pip 패키지로 가볍게 돌릴 수 있는** 쪽이 더 신뢰감 있음  
  내 의견은 어디까지나 단위 테스트 관점임
  - 두 접근 방식의 **트레이드오프**가 어떤지 궁금함. 이런 경험담은 항상 도움이 됨

- 우리 팀은 새 내부 서비스를 만들면서 테스트 환경에 PGlite를 도입했음  
  테스트 시에는 PGlite를, 실제 실행 시에는 Postgres 인스턴스를 쓰도록 **래퍼를 구성**했는데 아주 성공적이었음  
  특히 `.clone()` 기능으로 DB 체크포인트를 만들어 테스트마다 초기 상태로 되돌릴 수 있음  
  50개의 테스트 스위트를 병렬로 돌리는 것도 아주 쉬워짐

- 테스트용으로 사용 중인데, **인메모리 SQLite와 풀 Postgres 인스턴스의 중간 지점** 같은 느낌임  
  오랫동안 이런 걸 찾고 있었는데, 테스트 속도가 빨라져 만족스러움. 지금까지는 제약도 거의 없음

- Doltgres라는 **단일 실행 파일 형태의 Postgres**도 있음  
  Deno처럼 단일 `.exe` 파일을 다운로드해 실행하면 바로 Postgres가 동작함 — [Doltgres 설치 문서](https://docs.doltgres.com/introduction/installation)
