IndexedDB란 무엇인가?
IndexedDB는 HTML5에서 새롭게 도입된 개념으로, 사용자의 브라우저 내부에 데이터를 저장할 수 있도록 해주는 기술입니다. 기존의 로컬 스토리지(localStorage)보다 훨씬 강력한 성능을 제공하며, 대량의 데이터를 저장해야 하는 웹 애플리케이션에 적합합니다. IndexedDB를 활용하면 애플리케이션이 더욱 효율적으로 실행되고, 페이지 로딩 속도 또한 눈에 띄게 빨라집니다.
Web SQL은 더 이상 사용하지 마세요
W3C(월드 와이드 웹 컨소시엄)는 Web SQL 데이터베이스가 공식적으로 폐기(deprecated)된 사양이라고 발표했습니다. 따라서 웹 개발자는 더 이상 이 기술을 새 프로젝트에 사용해서는 안 됩니다. IndexedDB는 Web SQL 데이터베이스를 대체하는 표준 기술로, 기존의 구식 기술들보다 훨씬 효과적이며 현재 모든 주요 브라우저에서 지원됩니다.
IndexedDB의 주요 특징
- 키-값(key-value) 쌍 형태로 데이터를 저장합니다.
- 테이블 간 관계를 다루는 관계형 데이터베이스(RDBMS)가 아닙니다.
- IndexedDB API는 대부분 비동기(asynchronous) 방식으로 동작하여 UI 블로킹 없이 처리됩니다.
- SQL과 같은 구조화된 질의 언어를 사용하지 않습니다.
- 동일 출처(same origin) 정책에 따라 같은 도메인에서만 저장된 데이터에 접근할 수 있습니다.
추가로 알아두면 좋은 점
IndexedDB는 트랜잭션(transaction) 기반으로 동작하기 때문에 데이터 일관성이 보장되며, 인덱스(index)를 생성해 대량의 객체 데이터 중에서도 빠르게 원하는 값을 검색할 수 있습니다. 오프라인 상태에서도 동작해야 하는 PWA(프로그레시브 웹 앱)나 대용량 클라이언트 사이드 데이터를 다루는 서비스에서 특히 유용하게 활용됩니다.