스마트폰 앱이나 프로그램 폴더를 뒤지다 보면 확장자가 .db인 파일이 종종 나옵니다. 메모장으로 열면 알아볼 수 없는 글자가 잔뜩 보이고, 정작 안에 어떤 기록이 들어 있는지는 보이지 않습니다.
이런 .db는 대부분 SQLite라는 작은 데이터베이스 파일입니다. 표 형태의 데이터가 여러 개 담겨 있어서, 메모장 같은 텍스트 편집기로는 제대로 읽히지 않습니다. 안을 들여다보려면 표를 꺼내 주는 도구가 필요합니다. 코드 없이 클릭으로 여는 방법과, 파이썬으로 직접 꺼내는 방법을 차례로 정리하겠습니다.
들여다본다는 건 결국 세 가지를 본다는 뜻입니다
.db 안을 본다고 할 때 실제로 확인하게 되는 것은 보통 다음 셋입니다. 이 순서대로 보면 처음 보는 파일도 구조가 잡힙니다.
| 보는 것 | 무엇을 알 수 있나 |
|---|---|
| 테이블 목록 | 이 파일에 어떤 표들이 들어 있는지 |
| 테이블 내용 | 각 표에 실제로 담긴 데이터 행 |
| 스키마(구조) | 각 표가 어떤 칸(컬럼)으로 이루어졌는지 |
아래에서는 이 셋을 GUI 도구에서 한 번, 파이썬에서 한 번씩 직접 꺼내 봅니다.
방법 1. 설치 없이 클릭으로 여는 길
코드가 익숙하지 않다면 SQLite 전용 뷰어를 쓰는 쪽이 빠릅니다. 데스크톱에 설치하는 무료 SQLite 관리 프로그램들이 있고, 웹 브라우저에서 .db 파일을 끌어다 놓으면 표로 보여 주는 무료 온라인 뷰어도 있습니다.
도구마다 화면은 다르지만 사용하는 흐름은 비슷합니다.
- 뷰어를 열고 해당 .db 파일을 불러오거나 창에 끌어다 놓습니다.
- 왼쪽에 표(테이블) 목록이 나타나면 보고 싶은 표를 클릭합니다.
- 오른쪽에 행과 열로 데이터가 펼쳐집니다. 구조 탭을 누르면 컬럼 이름과 자료형도 볼 수 있습니다.
다만 민감한 데이터가 든 파일을 모르는 온라인 사이트에 올리는 것은 권하지 않습니다. 개인정보나 앱 계정 기록이 담긴 .db라면 인터넷 연결 없이 동작하는 데스크톱 뷰어가 안전합니다. 특정 제품을 단정해 권하지는 않겠습니다. 검색창에 "SQLite viewer"를 넣으면 무료 도구가 여럿 나옵니다.
방법 2. 파이썬으로 직접 꺼내기 (설치 불필요)
파이썬에는 SQLite를 다루는 sqlite3 모듈이 기본 내장되어 있습니다. 별도 설치 없이 표준 라이브러리만으로 .db를 열 수 있다는 뜻입니다. 아래 결과는 모두 윈도우 11, 파이썬 3.14.3, 표준 라이브러리 sqlite3에서 실제로 실행한 출력입니다.
먼저 설명을 위해 한글 데이터가 든 샘플 .db를 만들었습니다. members(회원), orders(주문) 두 개의 표를 넣었습니다. 이미 손에 .db 파일이 있다면 이 만드는 과정은 건너뛰고 connect 줄의 파일명만 바꾸면 됩니다.
import sqlite3
con = sqlite3.connect("sample.db")
cur = con.cursor()
1) 어떤 표가 들어 있나. SQLite는 자기 안의 표 목록을 sqlite_master라는 내부 표에 보관합니다. 여기서 type이 table인 것만 골라 이름을 뽑습니다.
for row in cur.execute(
"SELECT name FROM sqlite_master WHERE type='table'"):
print(row[0])
실제 출력은 이렇게 나왔습니다.
members
orders
2) 표 안의 데이터 보기. 표 이름을 알았으니 그 표를 통째로 조회합니다. 별표(*)는 모든 컬럼을 뜻합니다.
for row in cur.execute("SELECT * FROM members"):
print(row)
한글이 그대로 담겨 나옵니다.
(1, '김민수', '서울', '2026-01-15')
(2, '이서연', '부산', '2026-02-03')
(3, '박지훈', '대구', '2026-03-21')
3) 표의 구조 확인. 각 칸이 어떤 이름과 자료형인지 보려면 PRAGMA table_info 명령을 씁니다. 컬럼 순서, 이름, 자료형 등을 한눈에 알려 줍니다.
for row in cur.execute("PRAGMA table_info(members)"):
print(row)
실제 출력입니다. 괄호 안 숫자와 값은 순서대로 컬럼 번호, 이름, 자료형, NOT NULL 여부, 기본값, 기본키 여부입니다.
(0, 'id', 'INTEGER', 0, None, 1)
(1, 'name', 'TEXT', 1, None, 0)
(2, 'city', 'TEXT', 0, None, 0)
(3, 'joined', 'TEXT', 0, None, 0)
마지막 줄의 끝 숫자 1은 id가 기본키라는 뜻이고, name 줄의 1은 빈 값을 허용하지 않는다는 표시입니다. 작업이 끝나면 con.close()로 연결을 닫아 줍니다.
한글이 깨져 보일 때 짚어야 할 곳
위 코드를 윈도우 명령 프롬프트에서 그대로 돌리면 한글이 ��μ�처럼 깨져 나오는 일이 있습니다. 실제로 같은 코드를 한국어 윈도우 콘솔에서 돌렸더니 회원 이름이 모두 깨진 글자로 표시됐습니다.
이때 .db 안의 데이터가 손상된 것이 아니라, 화면에 출력하는 단계의 글자 처리 방식이 한글과 어긋난 것입니다. 파일 안 데이터는 멀쩡합니다. 윈도우에서는 실행 전에 출력 인코딩을 UTF-8로 맞춰 주면 한글이 제대로 보입니다.
set PYTHONIOENCODING=utf-8
python 파일명.py
이 환경 변수를 준 뒤 같은 코드를 다시 돌리자 김민수, 이서연, 박지훈이 그대로 출력됐습니다. 표시만의 문제이므로, 결과를 파일이나 다른 프로그램으로 넘길 때는 영향이 없는 경우가 많습니다. 콘솔 표시 방식은 운영체제와 터미널 설정에 따라 다를 수 있습니다.
자주 묻는 질문
Q. 확장자가 .db인데 SQLite가 아닐 수도 있나요?
있습니다. .db는 여러 프로그램이 자기 데이터 파일에 붙이는 흔한 확장자입니다. SQLite 파일이라면 보통 맨 앞에 SQLite로 시작하는 표식이 들어 있어, SQLite 뷰어로 열리지 않으면 다른 형식일 수 있습니다.
Q. 원본을 망가뜨리지 않고 안전하게 보고 싶습니다.
조회만 한다면 위 SELECT나 PRAGMA는 읽기만 하므로 내용을 바꾸지 않습니다. 그래도 불안하면 .db 파일을 복사해 두고 사본을 여는 것이 마음 편합니다.
Q. 표가 너무 많아 어디부터 볼지 모르겠습니다.
먼저 테이블 목록부터 뽑고, 이름에서 짐작되는 표(예: user, message, log)를 골라 위 2번 방식으로 몇 행만 조회해 보면 구조가 빠르게 잡힙니다.
지금 손에 .db 파일이 있다면, 우선 테이블 목록 한 줄만 조회해 보세요. 어떤 표들이 들어 있는지 이름만 봐도 그 파일이 무엇을 담고 있는지 절반은 보입니다. 거기서부터 궁금한 표를 하나씩 열어 보면 됩니다.
'파일 형식 백과사전' 카테고리의 다른 글
| XML로 받은 데이터를 JSON으로 바꾸고 싶을 때, 표준 라이브러리만으로 해결하기 (0) | 2026.07.13 |
|---|---|
| SVG를 PNG로 변환하는 법, 출력 크기는 어떻게 정해야 할까 (0) | 2026.07.12 |
| PNG를 JPG로 바꾸면 용량이 얼마나 줄까, 두 종류 이미지로 직접 재 봤습니다 (0) | 2026.07.10 |
| Parquet 파일 받았는데 더블클릭해도 안 열립니다, 파이썬과 비전공자용 방법까지 (0) | 2026.07.09 |
| 화질은 지키고 용량만 줄이기, 사진 한 장으로 두 방법을 실측해 봤습니다 (0) | 2026.07.08 |