IndexedDB는 사용자의 브라우저에 데이터를 영구적으로 저장할 수 있는 방법 중 하나이다. IndexedDB를 사용하여 네트워크 상태에 상관없이 풍부한 쿼리 기능을 이용할 수 있는 웹 어플리케이션을 만들 수 있기 때문에, 사용자의 웹 어플리케이션은 온라인과 오프라인 환경에서 모두 동작할 수 있다.
많은 양의 구조화된 데이터를 클라이언트에 저장할 수 있다.
Javascript 기반의 객체지향 데이터베이스이다.
-> IndexedDB는 많은 양의 데이터를 저장할 떄 유용하다.
비동기적으로 작동하며, String타입이 아니어도 되고 Javascript가 인식할 수 있는 자료형과 객체를 저장할 수 있다.
-> Local Storage는 적은 양의 데이터를 저장할 때 유용하다.
동기적으로 작동하며, String타입의 Key-Value만 저장할 수 있다.
트랜젝션을 사용하며 Key-Value 데이터베이스이다.
IndexedDB는 비동기 API 이다.
IndexedDB가 권장하는 기본 패턴은 다음과 같다.
1. 데이터베이스를 연다.
2. 객체저장소 ObjectStorage를 생성한다.
3. 트랜젝션을 시작하고, 데이터를 추가하거나 읽어드리는 등의 데이터베이스 작업을 요청한다.
4. DOM이벤트 리스너를사용하여 요청이 완료될때까지 기다린다.
5. 요청 객체에서 찾을 수 있는 결과를 가지고 무언가를 한다.
