8P by neo 18일전 | favorite | 댓글 1개
  • Pongo는 JSONB 지원을 활용하여 PostgreSQL을 문서 데이터베이스로 취급
    • JSONB는 JSON 데이터를 이진 형식으로 저장하여 성능과 저장 효율성을 향상
  • PostgreSQL JSONB의 이진 형식은 데이터가 미리 파싱되어 빠른 읽기 및 쓰기 작업을 가능하게 함
    • JSONB는 GIN 및 GiST 인덱스와 같은 고급 인덱싱 옵션을 지원하여 검색 속도를 향상
    • JSONB는 반구조화된 데이터를 저장하면서 PostgreSQL의 강력한 쿼리 기능을 사용할 수 있음
  • Pongo는 ORM인가?
    • 아님. 문서 데이터의 특성을 효과적으로 처리하는 데 중점
    • Node.js ORM은 JSONB를 처리할 수 있지만, 고급 쿼리에서는 JSONPath 또는 JSONB 함수를 사용해야 함
    • Pongo는 이를 대신 처리해줌
  • 프로덕션 준비가 되었는가?
  • 현재 사용하기에 안전하지만 MongoDB와 100% 호환되지는 않음
  • Pongo는 새로운 프로젝트로, 일부 기능이 누락될 수 있음
  • 커뮤니티 프로젝트로, 문제를 발견하면 GH 이슈나 Pull Request를 통해 지원 확장 또는 테스트 커버리지를 추가 권장

GN⁺의 정리

  • Pongo는 PostgreSQL을 문서 데이터베이스로 사용하여 MongoDB API를 PostgreSQL 쿼리로 변환하는 도구
  • JSONB의 이점을 활용하여 성능과 저장 효율성을 향상
  • 고급 쿼리와 인덱싱을 지원하여 유연성과 일관성을 제공
  • Pongo는 ORM이 아니며, 문서 데이터의 특성을 효과적으로 처리하는 데 중점
  • 새로운 프로젝트로, 일부 기능이 누락될 수 있으나 커뮤니티의 기여를 통해 확장 가능
Hacker News 의견
  • Pongo를 NoSQL 섹션에 추가했음
  • 하이브리드 모델이 최적의 선택임. 핵심 필드는 일반 컬럼으로, 동적 데이터 구조는 JSONB로 유지함
  • 기술적으로 멋지지만 README에 "왜" 섹션이 필요함. Mongo API를 사용하고 싶어서인지, 아니면 기존 프로젝트의 코드를 복사하고 싶은 것인지 궁금함
    • 다른 프로젝트의 쿼리를 재사용하는 것이라면, AI가 꽤 잘 해냄
  • Mongo에서 Postgres로 프로젝트를 마이그레이션할 때 비슷한 접근 방식을 사용했음. 성능이 많이 향상되었음
    • 미래 프로젝트에서는 Mongo와의 유사성을 모두 제거할 계획임
  • Pongo가 Mongoose와 호환되는지 궁금함. 대부분의 Mongo 사용자가 Mongoose를 사용하고 있기 때문에, 이를 지원하면 더 많은 사용자가 생길 것임
  • 2023년 11월에 Pongo에 대한 농담 트윗을 했었음. 재미있는 우연이지만, 미래를 예측할 수 있다고 생각할 것임
  • JSONB 컬럼을 많이 사용함. 특정 애플리케이션에 적합하지만, 쿼리 복잡성을 증가시키고 관계형 접근 방식에서 얻을 수 있는 쿼리 성능 향상 방법을 잃게 됨
    • JSONB는 유용하지만, 관계형 데이터베이스의 장점을 포기하지 말아야 함
  • FerretDB와 비교하면 어떤지 궁금함
  • MongoDB는 Postgres의 serializable isolation과 동등한 기능을 몇 년 전부터 지원해왔음. "강력한 일관성 혜택"이 무엇을 의미하는지 모르겠음
  • Oracle 데이터베이스는 몇 년 전부터 MongoDB 호환 API를 제공해왔음