Hacker News 의견
  • pgmock 소개

    • 한 개발자가 몇 달 동안 Postgres의 인메모리 버전을 개발함.
    • 이 버전은 기존 데이터베이스와 기능적으로 동등함.
    • 외부 프로세스나 프록시가 필요 없으며, WASM을 실행할 수 있는 플랫폼(Node.js, 브라우저 등)에서 작동함.
    • JavaScript 객체를 생성하는 것처럼 간단하게 새 데이터베이스와 모의 데이터를 생성할 수 있음.
    • pglite와는 다르게, pgmock은 원본 Postgres를 내부에 포함한 x86 에뮬레이터를 실행함. pglite는 Postgres 포크를 직접 WASM으로 컴파일하여 더 빠르고 가벼우나, 단일 사용자 모드와 몇몇 확장 기능만 지원하여 일반 Postgres 클라이언트로 연결할 수 없음.
    • 이론적으로는 어떤 Docker 이미지도 WebAssembly 플랫폼에서 실행 가능하게 수정할 수 있음.
  • RAM 디스크에서 Postgres 실행에 대한 질문

    • Postgres를 RAM 디스크에서 실행하는 것과 비교하여, 브라우저/Node 환경에서 실행 가능하고 테스트에 의해 생성/업데이트/파괴될 수 있는 이점에 대해 설명해달라는 요청.
  • 실제 서버 대신 인메모리 서버 사용 경험 공유

    • 과거에 다양한 (맞춤형) 가짜 인메모리 서버를 테스트에 사용했으나, 현재는 Testcontainers를 사용하여 실제 서비스를 실행함.
  • 프로젝트의 지적 재산권에 대한 질문

    • 제목에서 "내가 직장에서 만들었다"는 표현이 지적 재산권이 고용주에게 속하는 것을 의미하는지, 그리고 직장의 자원을 사용했다면 오픈소스로 공개하는 것이 허용되는지에 대한 의문 제기.
  • 개발 환경 복제에 대한 조언

    • 생산 데이터를 덤프하고, 민감한 데이터를 제거하고, 로그 테이블 같은 불필요한 테이블을 줄여서 개발 복사본을 만들 것을 권장. 이를 개발, QA, E2E 등에 복제함으로써 E2E 테스트에 필요한 확장, 트리거, 함수, 뷰, 인덱스, 데이터를 확보할 수 있음.
  • pgmock 개발 배경과 CI 통합에 대한 질문

    • 이 프로젝트를 개발하게 된 동기와 Docker 컨테이너에서 Postgres를 실행하는 것이 너무 느렸는지에 대한 질문.
    • pgmock을 통합하기 전후의 CI 설정과 E2E 테스트 흐름에 대한 설명 요청.
    • 이 솔루션으로의 이전이 어려웠는지에 대한 질문.
  • H2 데이터베이스와의 비교 질문

    • Postgres 호환 모드에서 H2 데이터베이스와 pgmock을 비교하는 질문.
  • pgmem 사용 경험 공유

    • pgmem을 사용하여 비슷한 목적으로 지난 몇 년간 작업한 경험 공유.
  • ORM 지원에 대한 질문

    • Sequelize, Prisma, Drizzle 같은 ORM을 테스트에 사용할 수 있는지에 대한 질문.
  • Prisma 클라이언트와의 사용 가능성에 대한 질문

    • Prisma 클라이언트와 함께 사용할 수 있는 방법에 대한 질문.