1P by neo 21일전 | ★ favorite | 댓글 1개
  • SQLite Page Explorer

  • SQLite Page Explorer는 redbean으로 개발된 작은 GUI 애플리케이션으로, SQLite 데이터베이스를 SQLite가 보는 방식대로 "페이지별로" 탐색할 수 있게 해주는 도구임

  • 왜 필요한가?

    • SQLite 및 대부분의 데이터베이스는 디스크 블록 크기의 페이지(보통 4KB)에 데이터를 저장하여 읽기와 쓰기를 최대한 빠르게 함
    • 일반적으로 개발자는 "스키마 레벨"에서 데이터베이스와 상호작용하지만, "페이지 레벨"을 살펴보면 다음과 같은 흥미로운 통찰을 얻을 수 있음
      • 인덱스가 실제로 디스크에서 어떻게 보이는지 확인 가능 (기본적으로 별도의 작은 테이블임)
      • 데이터를 더 압축하여 저장함으로써 쿼리와 애플리케이션을 더 빠르게 만들 수 있음
      • 스키마 레벨에서는 보이지 않는 문제점과 비효율성을 발견할 수 있음
      • 대부분의 파일 시스템과 데이터베이스의 기초가 되는 B-트리와 같은 중요한 데이터 구조에 대한 직관을 얻을 수 있음
  • 어디서든 실행 가능

    • redbean, cosmopolitan, αcτµαlly pδrταblε εxεcµταblε 덕분에, Windows, Linux, MacOS, 다양한 BSD, ARM64 및 x64에서 네이티브로 실행되는 단일 6.5 MB 실행 파일임
    • 이 파일은 애플리케이션을 실행하고 데이터베이스 바이너리 형식을 파싱하는 Lua 코드를 포함한 zip 파일임
  • 설치 방법

    • releases에서 sqlite-page-explorer.com 다운로드
    • Unix 계열에서는 chmod +x 실행
    • 데이터베이스 파일을 드래그하거나 콘솔에서 실행: sqlite-page-explorer.com mySqliteDatabase.db
    • 애플리케이션은 브라우저 탭에서 열림
    • 완료 후 콘솔에서 Ctrl-C를 두 번 누름
    • αcτµαlly pδrταblε εxεcµταblεs는 브라우저와 운영 체제의 바이러스 탐지 시스템을 혼란시켜 오탐을 발생시킬 수 있음. 인터넷에서 다운로드한 모든 것에 대해 일반적인 주의를 기울일 것
    • 500 MB 이상의 큰 데이터베이스를 사용할 경우, 모든 페이지를 읽는 최상위 뷰를 로드하는 데 시간이 걸릴 수 있음
  • 빌드 방법

    • files/의 내용을 redbean-3.0.0-cosmos.comzip으로 압축하면 됨. https://cosmo.zip/pub/cosmos/bin/에서 다운로드 가능 (목록에서 "redbean" 클릭)
    • 시스템에 zip이 없으면 해당 사이트에서 다운로드 필요
    • 포함된 zipitup.py 파이썬(3.6+) 스크립트를 실행해도 됨
    • 수정하려면 redbean-3.0.0-cosmos.com -D files를 실행하여 files 하위 디렉토리에서 애플리케이션을 제공할 수 있음. 변경 시마다 zip을 다시 빌드할 필요 없음
  • 걸작은 아님

    • redbean을 시도해보고 Lua를 처음 사용해본 실험의 일환으로, 코드가 다소 어수선할 수 있음
    • Jinja나 bottle.py의 네이티브 템플릿과 같은 템플릿 시스템을 사용하면 많은 문자열 연결과 Write() 문을 줄일 수 있음
    • 마지막 탭이 닫힐 때 콘솔을 자동으로 닫고, 사용자가 확인하지 않는 한 큰 데이터베이스의 경우 페이지 10,000에서 멈추는 기능이 있으면 좋을 것임
    • PR 환영
Hacker News 의견
  • 애니메이션 GIF 스크린샷을 게시한 프로젝트가 매우 흥미로움
  • SQLite 파일 형식 문서를 참고하여 SQLite 파일을 파싱하는 코드를 작성하는 것이 생각보다 쉬움
  • SQLite 내부 작업 경험자로서, 이 프로젝트의 작업이 인상적임
    • Dioxus로 구축된 sqlite-repr도 흥미로운 SQLite 시각화를 제공함
    • 관련 링크: sqlite-repr
  • 프로젝트가 멋지며, 색상 범례를 추가하면 좋겠다는 의견
    • 큰 데이터베이스(3.6GB, 942719 페이지)에서 성능 문제가 발생하며 페이지네이션을 고려할 수 있음
  • 10년 전 보안 도구를 위해 비슷한 작업을 했으며, 이 프로젝트가 MIT 라이선스로 제공되어 좋음
  • SQLite 소스에는 데이터베이스 파일 탐색에 유용한 CLI 도구 showdb가 포함되어 있음
  • 강의나 수업을 듣기 어려운 사람에게 이 프로젝트가 데이터 구조를 효율적으로 시각화하는 좋은 방법임
  • 데이터베이스 학습 중인 사람에게 매우 유용한 도구임
  • SQLite 파일 형식에 대한 설명서와 유용한 다이어그램을 작성한 경험이 있음
  • 도구가 잘 작동함