📌 문제
모바일 데이터베이스와 SQLite에 대해 설명하시오.
✅ 답안
1. 개념 (Definition)
1.1 모바일 데이터베이스 (Mobile Database)
모바일 데이터베이스는 모바일 디바이스(스마트폰, 태블릿 등) 상에서 동작하는 **경량화된 데이터베이스 시스템(DBMS: Database Management System)**으로, 무선 네트워크 환경에서도 데이터의 저장, 검색, 수정, 삭제 등의 작업이 가능하도록 설계된 데이터베이스이다.
- 장소나 시간에 구애받지 않고 데이터 접근 가능
- 네트워크 연결이 불안정한 상황에서도 데이터 처리 가능
1.2 SQLite
SQLite는 **오픈소스 기반의 경량화된 관계형 데이터베이스(RDB: Relational Database)**로, 서버 없이 로컬 파일 형태로 동작하는 **내장형 데이터베이스(Embedded DBMS)**이다.
- “Zero Configuration”: 설치 및 설정 불필요
- 안드로이드(Android), iOS, 브라우저 등 다양한 환경에서 사용
2. 역할 & 목적
| 항목 | 설명 |
|---|
| 모바일 DB | 모바일 앱이 로컬 저장소에 데이터 저장 및 검색 가능하게 함 |
| SQLite | 로컬 데이터 저장을 위한 기본 내장 DB로 사용, 모바일 앱의 성능 및 오프라인 지원 강화 |
3. 구조 및 구성요소
3.1 모바일 데이터베이스 구조
[Mobile Application]
↕
[Mobile DB Engine (예: SQLite)]
↕
[Local Storage (File System, Flash Memory)]
↕
[동기화 모듈 (Optional)] ↔ [Cloud DB or Central Server]
3.2 SQLite 구조
- SQLite Engine: SQL 파싱, 실행, 트랜잭션 처리
- B-Tree Storage: 데이터를 페이지 단위로 저장
- Virtual Machine (VM): SQL 명령을 실행하는 추상 기계
- Database File:
.sqlite 확장자로 저장되는 단일 파일
4. 동작 원리
- SQLite는 SQL 명령을 직접 파싱하고, 결과를 로컬 파일에 저장한다.
- 모바일 앱은 **SQL API(Java, Swift 등)**를 통해 SQLite DB와 연동
- 트랜잭션, 쿼리, 인덱싱 등 관계형 DB의 기본 기능 제공
- 데이터는 하나의 파일로 관리되며, 디스크 I/O를 최소화함
5. 특징
| 항목 | 모바일 DB | SQLite |
|---|
| 저장 위치 | 로컬 스토리지 (Flash 등) | 단일 파일 |
| 서버 필요 여부 | 경우에 따라 | 필요 없음 (서버리스) |
| 동작 환경 | 오프라인/온라인 모두 | 오프라인 최적 |
| 데이터 모델 | 관계형/비관계형 모두 가능 | 관계형 (RDBMS) |
| 개발 난이도 | 중간~높음 (동기화 포함 시) | 낮음 (내장 API 제공) |
| 사용 언어 | Java, Swift, Kotlin 등 | C, Java, Swift 등 |
6. 장단점
6.1 모바일 데이터베이스
| 장점 | 단점 |
|---|
| 네트워크 불안정 시에도 데이터 사용 가능 | 동기화 처리 복잡 |
| 로컬 처리로 속도 빠름 | 보안 취약 가능성 |
| 모바일 앱에 최적화된 구조 | 제한된 저장 공간 |
6.2 SQLite
| 장점 | 단점 |
|---|
| 가볍고 빠름, 서버 불필요 | 동시 사용자 다중 처리 미약 |
| 오픈소스, 설치 불필요 | 복잡한 데이터 처리에 부적합 |
| 트랜잭션 및 ACID 보장 | 분산 환경 미지원 |
7. 핵심 용어 정리
| 용어 | 설명 |
|---|
| Embedded DB | 앱 내에 탑재되어 별도 설치가 필요 없는 데이터베이스 |
| ACID | Atomicity, Consistency, Isolation, Durability – 트랜잭션 특성 |
| 동기화(Synchronization) | 로컬 DB와 서버 DB 간 데이터 정합성 유지 |
| SQL (Structured Query Language) | 관계형 데이터베이스를 제어하는 표준 언어 |
8. 비교: SQLite vs 모바일 NoSQL (예: Realm, Firebase)
| 항목 | SQLite | Realm / Firebase |
|---|
| DB 유형 | 관계형(RDBMS) | 비관계형(NoSQL) |
| 쿼리 방식 | SQL | 메서드 기반 (객체지향) |
| 데이터 구조 | 테이블 | 객체, 문서 |
| 사용 목적 | 정형 데이터 | 실시간 동기화, 반정형 데이터 |
9. 어린이 버전 요약
"SQLite는 핸드폰 속 조그만 컴퓨터에 저장장을 만드는 거예요. 인터넷이 없어도 일기 쓰듯 앱에 정보를 저장하고 꺼낼 수 있지요!"
✅ 결론
- 모바일 데이터베이스는 오프라인 환경, 빠른 응답속도, 네트워크 독립성을 위해 필수적이며, 앱의 핵심 기능을 수행함.
- SQLite는 가장 널리 사용되는 경량 관계형 모바일 DB로, 서버가 필요 없고 파일 하나로 모든 데이터를 관리하여 성능, 안정성, 간편성 측면에서 매우 유리하다.
- 모바일 환경에서의 데이터 저장 솔루션 설계 시, 용도에 맞게 SQLite 또는 다른 NoSQL 기반 모바일 DB를 선택하는 것