
무슨 일이 있었나요
editsqlite.com이라는 웹 도구가 공개됐어요. 브라우저에서 SQLite 데이터베이스 파일을 열고 바로 고칠 수 있어요. 프로그램을 깔 필요 없이 사이트에 들어가서 .db나 .sqlite 파일을 열면 테이블을 보고 데이터를 수정할 수 있는 방식이에요. 기능이 정확히 어디까지인지는 사이트에서 직접 확인해 보세요.
“그게 뭐 대단한가?” 싶을 수 있는데요, SQLite 파일은 생각보다 우리 주변에 정말 많거든요. 안드로이드의 Room과 iOS의 Core Data가 내부적으로 SQLite를 쓰고, 크롬 브라우저의 방문 기록도 SQLite 파일로 저장돼요. 사이드 프로젝트에서 로컬 개발용 DB로 SQLite를 쓰는 경우도 흔하고요. 그런데 막상 이 파일 하나 열어보려면 DB Browser for SQLite 같은 데스크톱 앱을 깔거나 터미널에서 sqlite3 명령어를 써야 했어요. 회사 노트북에 프로그램 설치가 막혀 있으면 그것조차 번거롭죠.
브라우저에서 SQLite가 어떻게 돌아갈까?
핵심은 WebAssembly(WASM)예요. 이게 뭐냐면, C나 Rust 같은 언어로 만든 프로그램을 브라우저에서 네이티브에 가까운 속도로 돌릴 수 있게 해주는 바이너리 포맷이에요. SQLite는 원래 C로 작성된 라이브러리라서, WASM으로 컴파일하면 진짜 SQLite 엔진이 통째로 브라우저 안에 들어가요. 흉내만 낸 가짜가 아니라 같은 소스에서 나온 엔진이니까 SQL 문법이나 동작이 데스크톱과 똑같다는 게 큰 장점이에요.
이 방식 자체는 새롭지 않아요. 2010년대 초부터 쓰인 sql.js라는 프로젝트가 대표적이고, 2022년 SQLite 3.40부터는 SQLite 팀이 공식 WASM 빌드를 직접 배포하고 있어요.
이런 종류의 도구는 보통 이렇게 동작해요.
1. 사용자가 파일을 고르면 브라우저의 File API로 파일 내용을 메모리로 읽어요.
2. WASM으로 돌아가는 SQLite 엔진이 그 바이트 덩어리를 데이터베이스로 열어요.
3. 화면에서 셀을 고치면 내부적으로 UPDATE 쿼리가 실행돼요.
4. 다 고치면 수정된 DB를 파일로 다시 내려받거나, 브라우저가 지원하면 원본 파일에 바로 덮어써요.
4번이 재밌는 부분이에요. 웹 페이지는 보안 때문에 내 컴퓨터의 파일을 마음대로 덮어쓸 수 없거든요. 크롬 계열 브라우저는 File System Access API로 사용자가 허락하면 원본 파일에 쓸 수 있지만, 브라우저마다 지원 범위가 달라서 ‘수정본 다운로드’ 방식이 더 일반적이에요. 그리고 DB 전체를 메모리에 올리는 방식이라면 수 GB짜리 파일은 버거울 수 있다는 점도 알아두세요.
비슷한 도구들과 비교하면
SQLite 편집 도구는 이미 많아요. DB Browser for SQLite는 오래된 오픈소스 데스크톱 앱이고, DBeaver나 TablePlus 같은 범용 DB 클라이언트도 SQLite를 지원해요. VS Code 확장으로 SQLite 뷰어를 쓰는 분도 많고, SQLite 데이터를 웹으로 탐색하고 공개하는 Datasette 같은 도구도 있어요.
브라우저 기반 도구의 차별점은 설치가 필요 없다는 것과 누구나 쉽게 쓸 수 있다는 것이에요. 링크 하나면 어떤 OS에서든 열 수 있으니까 기획자나 QA 담당자에게 “이 DB 파일 좀 확인해 주세요” 하고 넘기기 편하죠. 반대로 대용량 파일 처리, 스키마 마이그레이션 관리, 여러 DB 동시 연결 같은 무거운 작업은 여전히 데스크톱 도구가 나아요.
한국 개발자에게 주는 시사점
첫째, 보안부터 확인하세요. 브라우저 도구를 쓸 때 제일 중요한 건 “내 파일이 서버로 올라가는지, 브라우저 안에서만 처리되는지”예요. WASM 방식이라면 원칙적으로는 로컬에서만 처리할 수 있지만, 서비스마다 구현이 다를 수 있어요. 개발자 도구의 네트워크 탭을 열어서 파일이 업로드되는지 직접 확인하는 습관을 들이세요. 고객 개인정보가 들어 있는 운영 DB 사본은 어떤 외부 사이트에도 올리지 않는 게 원칙이고요.
둘째, 이 기술 자체를 배워둘 만해요. SQLite와 WASM 조합은 오프라인 우선(local-first) 웹 앱의 핵심 재료예요. OPFS(Origin Private File System, 브라우저가 사이트마다 따로 마련해 주는 전용 저장 공간)와 합치면 새로고침해도 데이터가 남는 로컬 DB를 웹 앱에 넣을 수 있거든요. 사내 어드민 도구나 데이터 뷰어를 서버 없이 정적 호스팅만으로 만드는 데도 활용할 수 있어요.
셋째, 모바일 개발자라면 디버깅할 때 편해요. 에뮬레이터에서 앱 DB 파일을 꺼내 바로 들여다보는 과정이 훨씬 가벼워지거든요.
마무리
한줄 정리: WebAssembly 덕분에 진짜 SQLite 엔진이 브라우저 안에서 돌아가고, 이제 DB 파일 하나 보려고 프로그램을 깔 필요가 없어지고 있어요.
여러분은 SQLite 파일을 열 때 주로 어떤 도구를 쓰시나요? 업무 데이터를 브라우저 기반 도구에 올리는 건 어디까지 괜찮다고 생각하세요?
🔗 출처: Hacker News