상세 컨텐츠

본문 제목

localstorage는 그만 indexedDB 시작!

Dev Type

by ai developer 2024. 1. 5. 17:20

본문

 

localStorage는 오래 됐습니다!

 

 

엄청나게 오래된 것은 아니지만 2009년 쯤에 시작했고 디자인이 별로라 여러 가지 문제점들을 안고 있습니다.

 

첫번째로 문자열로만 저장할 수 있어서 다른 유형으로 저장하려면 포맷 변경을 항상 해야 하고 검색 시에도 그로 인해 검색 시에도 불편함이 많습니다.

 

두번째는 느리다는 것인데 데이터를 저장하고 검색하는 것이 느리기 때문에 빈번한 트랜젝션이 필요한 경우 유저 경험을 상당히 추락시킬 수 있습니다.

 

세번째는 작은 저장공간에 있습니다. 최대 용량이 5MB로서 너무 작습니다.

 

네번째는 직렬화 문제인데 데이터를 저장할 때 문자열로 항상 직렬화 해야 하고 사용할 때 역직렬화 해야 하는 문제로 여러 오류나 버그를 야기할 수 있습니다.

 

대안으로서 WebSQL이 있습니다. 이것에 대해 살펴보면,

 

 

WebSQL은 간단한 웹에서 간단하게 데이터베이스를 구현하기 위해 만들어졌는데 상당한 지원을 받았지만 결국은 다시 하락하고 있습니다.

 

WebSQL은 왜 하락하고 있는가?

 

가장 중요한 것은 WebSQL은 단일 공급업체에서 구현했기 때문에 다른 메인 브라우저 공급업체인 Mozila, Microsoft의 지원 부족과 W3C 표준화가 없어 상용 서비스에서 개발자들이 채택하지 않게 됩니다.

 

또한 IndexedDB와의 경쟁도 있는데 IndexedDB는 WebSQL과 달리 표준 크로스 브라우저 솔루션으로 설계되었기에 비교가 될 수 밖에 없었습니다.

 

마지막으로 여러 개발자들과 보안 전문가들은 WebSQL의 안전성에 대해 우려를 표명하고 있습니다. 권한 제어가 부족하고 SQL 스타일 취약점을 포함한 다양한 측면들이 존재하기 때문입니다.

 

쿠키는 또 어떤가?

쿠키는 말할 것도 없이 오래 됐습니다. 1994년에 만들어졌고 localStorage와 비교해서도 많은 문제를 가집니다.

 

크기가 도메인당 4KB로 제한되고 연결된 모든 도메인에 대한 모든 HTTP 요청과 함께 전송되어 불필요한 오버헤드가 발생하고 대역폭 사용량을 증가시킬 수 있습니다. 보안적으로는 XSS에 취약해 도메인에 대한 모든 요청에 자동으로 포함되어 악성 스크립트의 표적이 되기 쉽습니다.

 

IndexedDB를 사용해야 하는 이유!

 

 

 

IndexedDB는 localStorage와 달리 비동기식으로 작동해 차단 작업을 방지하며 더 나은 성능을 보장합니다.

또한 브라우저나 OS 및 사용 가능한 저장소에 따라 다르지만 localStorage 5MB 한도에 비해 훨씬 큰 저장소를 할당받을 수 있습니다.

 

그리고 데이터 유형을 강제를 줄이고 구조적으로 복제 알고리즘을 채택해 데이터 무결성을 보장해 신뢰성이 높고 구조화된 데이터로 저장 및 검색에 유리합니다.

 

하지만 사용 방법은 쉽지 않습니다. 그렇기에 우리는 라이브러리를 사용합니다.

용량이 작고 많은 것을 지원하진 않지만 퀵하게 사용하기 좋은 db64 라이브러리

 

GitHub - julienetie/db64: Practical IndexedDB API

Practical IndexedDB API. Contribute to julienetie/db64 development by creating an account on GitHub.

github.com

버전 관리나 커서가 필요하다면 모든 사례를 잘 다룬 포괄적인 라이브러리인 idb 라이브러리도 있습니다.

 

결론

속도 이점과 비차단 기능, 여러 타입을 안정적이고 신뢰도 있게 저장할 수 있는 IndexedDB를 사용하세요!

300x250

관련글 더보기

댓글 영역