Postgres.new 소개
- 브라우저에서 직접 실행되는 Postgres 샌드박스로, AI 지원을 제공
- 무제한의 Postgres 데이터베이스를 즉시 생성 가능(곧 S3에도 배포 가능해짐)
- 각 데이터베이스는 대형 언어 모델(LLM)과 페어링되어 다양한 흥미로운 사용 사례를 제공함:
- CSV 파일 드래그 앤 드롭으로 테이블 생성
- 보고서 생성 및 내보내기
- 차트 생성
- 데이터베이스 다이어그램 작성
- 모든 작업은 브라우저 내에서 로컬로 수행됨
사용 데모
- CSV 파일을 빠르게 쿼리하고 시각화하고 싶을 때
- ChatGPT를 사용해 SQL을 작성하고 실제 데이터베이스에서 실행해 보고 싶을 때
- 새로운 프로젝트를 계획하고 데이터베이스 설계를 AI에게 맡기고 싶을 때
작동 방식
- 모든 쿼리는 브라우저 내에서 실행됨
- PGlite 덕분에 가능해짐. Postgres의 WASM 버전으로, 브라우저에서 직접 실행 가능함
개발 동기
- AI 기반 개발: Postgres와 AI의 상호작용을 재구상함
- Postgres 샌드박싱: 브라우저에서 빠르고 일회성으로 실행 가능
- 저렴한 데이터베이스: 저렴한 비용으로 많은 데이터베이스를 제공할 수 있는 잠재력
기능 및 작동 방식
AI 어시스턴트
- PGlite와 GPT-4o를 페어링하여 데이터베이스에 대한 완전한 권한을 부여함.
- AI가 여러 작업을 연속적으로 수행할 수 있어 더 인간적인 느낌을 줌.
CSV 가져오기 및 내보내기
- CSV 파일을 드래그 앤 드롭하여 자동으로 테이블 생성.
- AI가 CSV의 헤더와 샘플 행을 분석하여 데이터 유형을 결정함.
- SQL 오류가 발생하면 AI가 자체적으로 수정 시도.
차트
- "chart"라는 단어를 메시지에 추가하면 AI가 적절한 쿼리를 실행하고 차트를 생성함.
- Chart.js를 사용하여 차트를 렌더링함.
ER 다이어그램 및 마이그레이션
- AI가
CREATE
및ALTER
문을 생성하여 실제 데이터베이스에서 ER 다이어그램을 생성함. - 브라우저 호환 버전의 postgres-meta를 사용하여 PGlite 테이블을 JavaScript로 로드하고 스키마 시각화 도구를 사용하여 렌더링함.
시맨틱 검색 및 RAG
- pgvector 확장을 사용하여 브라우저 내에서 벡터 검색을 지원함.
- Transformers.js를 사용하여 텍스트 임베딩을 생성하고 PGlite에 저장 및 쿼리함.
배포
- PGlite 데이터베이스를 S3에 배포하여 저렴한 비용으로 다양한 사용 사례를 지원할 계획.
PGlite 심층 분석
PGlite란?
- PGlite는 Postgres의 WASM 빌드로, 브라우저, Node.js, Bun에서 실행 가능함.
- ElectricSQL에서 개발하였으며, 유닛 테스트, 로컬 개발, 원격 개발 등에 이상적임.
데이터 지속성
- Node에서는 네이티브 파일 시스템, 브라우저에서는 IndexedDB와 OPFS를 지원함.
확장 지원
pgvector
와live
같은 유용한 확장을 지원함.
기술 개요
- 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 등이 있음.
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를 사용하는 데 문제가 없다고 언급
원문
출처 / GeekNews
더 읽어보기: 관련 오픈소스 프로젝트들
-
PGlite (Apache 2.0): A WASM build of Postgres.
-
pg-gateway (MIT): Postgres wire protocol for the server-side.
-
postgres-new (Apache 2.0): The frontend for postgres.new.
-
transformers.js: Run Transformers directly in your browser
알려드립니다
이 글은 국내외 IT 소식들을 공유하는 GeekNews의 운영자이신 xguru님께 허락을 받아 GeekNews에 게제된 AI 관련된 소식을 공유한 것입니다.
출처의 GeekNews 링크를 방문하시면 이 글과 관련한 추가적인 의견들을 보시거나 공유하실 수 있습니다!
아래쪽에 좋아요를 눌러주시면 새로운 소식을 정리하고 공유하는데 힘이 됩니다~