15P by neo 1달전 | favorite | 댓글 3개
  • 브라우저에서 직접 실행되는 Postgres 샌드박스로, AI 지원을 제공
  • 무제한의 Postgres 데이터베이스를 즉시 생성 가능(곧 S3에도 배포 가능해짐)
  • 각 데이터베이스는 대형 언어 모델(LLM)과 페어링되어 다양한 흥미로운 사용 사례를 제공함:
    • CSV 파일 드래그 앤 드롭으로 테이블 생성
    • 보고서 생성 및 내보내기
    • 차트 생성
    • 데이터베이스 다이어그램 작성
  • 모든 작업은 브라우저 내에서 로컬로 수행됨

사용 데모

  • CSV 파일을 빠르게 쿼리하고 시각화하고 싶을 때
  • ChatGPT를 사용해 SQL을 작성하고 실제 데이터베이스에서 실행해 보고 싶을 때
  • 새로운 프로젝트를 계획하고 데이터베이스 설계를 AI에게 맡기고 싶을 때

작동 방식

  • 모든 쿼리는 브라우저 내에서 실행됨
  • PGlite 덕분에 가능해짐. Postgres의 WASM 버전으로, 브라우저에서 직접 실행 가능함

개발 동기

  1. AI 기반 개발: Postgres와 AI의 상호작용을 재구상함
  2. Postgres 샌드박싱: 브라우저에서 빠르고 일회성으로 실행 가능
  3. 저렴한 데이터베이스: 저렴한 비용으로 많은 데이터베이스를 제공할 수 있는 잠재력

기능 및 작동 방식

AI 어시스턴트

  • PGlite와 GPT-4o를 페어링하여 데이터베이스에 대한 완전한 권한을 부여함.
  • AI가 여러 작업을 연속적으로 수행할 수 있어 더 인간적인 느낌을 줌.

CSV 가져오기 및 내보내기

  • CSV 파일을 드래그 앤 드롭하여 자동으로 테이블 생성.
  • AI가 CSV의 헤더와 샘플 행을 분석하여 데이터 유형을 결정함.
  • SQL 오류가 발생하면 AI가 자체적으로 수정 시도.

차트

  • "chart"라는 단어를 메시지에 추가하면 AI가 적절한 쿼리를 실행하고 차트를 생성함.
  • Chart.js를 사용하여 차트를 렌더링함.

ER 다이어그램 및 마이그레이션

  • AI가 CREATEALTER 문을 생성하여 실제 데이터베이스에서 ER 다이어그램을 생성함.
  • 브라우저 호환 버전의 postgres-meta를 사용하여 PGlite 테이블을 JavaScript로 로드하고 스키마 시각화 도구를 사용하여 렌더링함.

시맨틱 검색 및 RAG

  • pgvector 확장을 사용하여 브라우저 내에서 벡터 검색을 지원함.
  • Transformers.js를 사용하여 텍스트 임베딩을 생성하고 PGlite에 저장 및 쿼리함.

배포

  • PGlite 데이터베이스를 S3에 배포하여 저렴한 비용으로 다양한 사용 사례를 지원할 계획.

PGlite 심층 분석

PGlite란?

  • PGlite는 Postgres의 WASM 빌드로, 브라우저, Node.js, Bun에서 실행 가능함.
  • 유닛 테스트, 로컬 개발, 원격 개발 등에 이상적임.

데이터 지속성

  • Node에서는 네이티브 파일 시스템, 브라우저에서는 IndexedDB와 OPFS를 지원함.

확장 지원

  • pgvectorlive 같은 유용한 확장을 지원함.

기술 개요

  • Postgres의 단일 사용자 모드를 기반으로 하여 WASM에서 실행 가능하게 함.
  • 다양한 Postgres 기능을 WASM에 맞게 수정함.

곧 출시 예정

  • 데이터베이스를 S3에 배포하고 인터넷에서 접근 가능하게 할 예정.
  • 더 많은 파일 형식 지원, 데이터베이스 공유, 데이터베이스 내보내기 기능 추가 예정.

오픈 소스

  • 모든 작업은 오픈 소스로 제공됨:
    • PGlite (Apache 2.0)
    • pg-gateway (MIT)
    • postgres-new (Apache 2.0)
    • transformers.js

GN⁺의 정리

  • postgres.new는 브라우저에서 실행되는 Postgres 샌드박스로, AI 지원을 통해 데이터베이스 작업을 간편하게 수행할 수 있음.
  • PGlite를 사용하여 빠르고 저렴한 데이터베이스 생성이 가능하며, 다양한 AI 기반 기능을 제공함.
  • 데이터 시각화, ER 다이어그램 생성, 시맨틱 검색 등 다양한 기능을 통해 개발자들에게 유용한 도구가 될 수 있음.
  • 유사한 기능을 제공하는 다른 프로젝트로는 Supabase, ElectricSQL 등이 있음.

supabase였네요

Hacker News 의견
  • postgres.new를 사용해 3개의 데이터베이스를 생성해본 경험 공유

    • 고객 주문 데이터베이스, 이슈 추적 시스템, 가족 관계 모델을 성공적으로 생성함
    • 가족 관계 모델에서 사촌과 삼촌을 포함한 복잡한 관계도 잘 처리함
    • 상호 관계(예: 형제 관계)가 일부 누락되었으나, 데이터 검토 요청 후 수정됨
    • 매우 유용한 도구로 평가함
  • AI의 한계를 보여주는 기술 데모로 평가함

    • 유효하지 않은 SQL을 생성하여 오류 발생
    • 생성된 SQL이 단절된 테이블 세트를 생성함
    • 모든 코드를 검토해야 하는 필요성 언급
    • 새로운 시스템은 종종 추상적이거나 스마트한 요소가 필요하지만, 이 시스템은 단순한 시스템만 생성함
    • 직접 코드를 작성하는 것이 더 쉬움
    • 조직 내에서 LLM 병합 요청을 금지함, 코드가 최적화되지 않고 버그가 많았음
    • 현재 LLM 디자인으로는 극복하기 어려움
  • "New database" 버튼 클릭 시 아무런 변화가 없음

    • Github에 로그인하지 않았지만, AI 기능을 사용하지 않으려는 의도였음
    • chatGPT가 필수라는 점에 실망함
    • 로컬 우선 접근 방식을 AI로 제한하는 것에 불만
  • 매우 인상적임

  • AI 기능 없이 사용할 수 있으면 좋겠다는 의견

    • WASM 빌드가 Postgres를 임베디드 DB로 사용할 수 있게 하는지 질문
  • 이 도구가 데이터베이스 설계에 큰 도움이 된다고 평가

    • 기존 데이터베이스 스키마를 다이어그램으로 그릴 수 있는지 질문
    • Supabase 마이그레이션 스타일이나 Flyway 같은 도구로 개발된 스키마를 다이어그램으로 표현하는 기능이 기업 환경에서 큰 도움이 됨
  • AI/LLM과 기존 워크플로우 결합에 대해 회의적이었으나, 이 경우는 괜찮다고 평가

    • LLM이 데이터베이스에 삽입할 데이터를 생성하는 데 유용함
    • 모바일에서 사용하지 못하는 이유를 이해하지만, 모바일 사용자에게 요약 정보를 제공해달라는 요청
  • Supabase 엔지니어로서 Electric 팀과 함께 이 도구를 개발하는 것이 재미있었다고 언급

    • 기술적 장애물을 극복하는 과정이 있었음
    • 피드백을 반영하여 계속 개선할 예정
  • 노트북이나 데스크탑에서 postgres.new를 사용하라는 안내

    • Webkit/Safari를 사용하는 데 문제가 없다고 언급