DB/indexedDB
IndexedDB
뜨뜨레뜨
2022. 5. 26. 19:12
IndexedDB
- Web Browser Storage이다.
- Transaction Database를 사용하며, Key : Value 로 데이터를 관리한다.
- Transaction Model을 따르며, 모든 변경은 Transaction 안에서 일어난다.
- Transaction내에서 오류가 생긴다면 모든 변경사항을 폐기하고, 이전 상태로 돌아간다.
- same-origin policy를 따른다. ( http 와 https 는 다른 indexedDB를 이용한다.)
IndexedDB 구조
- Database > Object Store > Object 의 구조를 갖는다.
- Object 를 Object Store로 그룹화한다.
- Object Store를 DataBase로 그룹화한다.
IndexedDB 구조(출처 : 생활코딩)
IndexedDB 요소
- Database
- Database를 구축한다.
- 브라우저는 N개의 Database를 가질 수 있다.
- Database는 N개의 Object Store를 가질 수 있다.
- 버전은 숫자 리터럴을 사용한다.
- indexedDB.open('DataBase식별자', 버전) ;
- Object Store
- 데이터를 저장하는 공간이다.
- 고유한 이름을 갖는다.
- N개의 레코드를 가질 수 있다.
- 레코드는 Key에 따라 오름차순으로 정렬된다.
- createObjectStore('ObjStore식별자', { keyPath: 'KeyPath식별자' , autoIncrement : true } ) ;
- keyPath 와 autoIncrement 를 설정하면 in-line key를 사용한다.
- keyPath 와 autoIncrement 를 생략하면 out-line key를 사용한다.
- Transaction
- IndexedDB의 모든 API 작업은 transaction contect 내에서 이루어진다.
- transaction 외부에서 indexedDB API를 호출하면 에러가 발생한다.
- transaction 내부에서 작업이 실패하면 해당 작업 전의 상태로 돌아간다.
- transaction('ObjectStore', '모드' , '옵션');
- ObjectStore : 문자열/배열
즉, 여러 오브젝트 저장소에 액세스 하는 경우 배열로 작성할 수 있다.
- 모드 : 액세스 유형을 선택한다. 기본값은 'readonly' 이다.
readonly : 읽기
readwrite : 수정
- 옵션 : 성능 및 전력에 영향을 미치는 옵션이다. 기본 값은 'default'이다.
default : 기본 값
strict : (데이터 손실 위험) 데이터 손실 위험을 줄인다
relaxed : (속도 성능) 캐시 또는 빠르게 변경되는 레코드와 같은 임시 데이터
- Curser
- Index
'DB/indexedDB' Related Articles