웹 개발을 하다보면 데이터베이스에는 저장하지 않지만, 사용자가 설정한 값을 어딘가에 저장해야할 경우가 생깁니다. (자동로그인, 아이디 저장 기능 사용 여부 등)
오늘 소개해드리려고 하는 내용은 쿠키 및 HTML5에서 제공하는 세션스토리지 및 로컬 스토리지에 대한 내용입니다.
1. 쿠키
1-1. 쿠키의 특징
- 키 - 벨류 형태로 저장되며, 클라이언트에서 서버측으로 요청 시 마다 전달된다.
- 4kb 의 용량 제한이 있다.
- 같은 도메인간에는 쿠키값이 공유된다.
1-2. 쿠키의 장점
- 웹 요청 시 자동으로 쿠키가 전달된다.
1-3. 쿠키의 단점
- 웹 요청 시 마다 쿠키가 전달되므로, 불필요한 요청값이 포함 될 수 있다.
- 클라이언트에서 쿠키 값 설정/조회 시 별도의 함수를 만들어 호출하여야 한다.
- 서버측으로 전달되기 때문에 도난 가능성이 존재.
Ex_ 쿠키값을 조회하는 예제 함수
1 2 3 4 5 6 7 8 9 10 11 | function GetCookie(pStrKey) { var oCookies = document.cookie; var aStrCookies = oCookies.split("; "); for (var i = 0; i < aStrCookies.length; i++) { var sKeyValues = aStrCookies[i].split("="); if (sKeyValues[0] == pStrKey) { return unescape(sKeyValues[1]); } } return ""; } | cs |
2. 세션 스토리지
2-1. 세션 스토리지의 특징
- 키 - 벨류 형태로 저장되며, 서버측으로 전달되지 않는다.
- 기기마다 차이가 있으나, 보통 한사이트당 5MB정도 사용이 가능하다.
- 세션 종료시 데이터가 만료된다.
2-2. 세션 스토리지의 장점
- 쿠키보다 많은 정보를 저장 할 수 있다.
- 서버측으로 전달되지 않으므로 도난 가능성이 쿠키에 비하여 상대적으로 적다.
- 값 설정/조회 시 제공된 API를 이용하면 된다.
1 2 3 4 | window.sessionStorage.setItem('Key', 'Value'); // Set Key - Value window.sessionStorage.getItem('Key'); // Get Value window.sessionStorage.removeItem('Key'); //Delete window.sessionStorage.clear(); // Clear | cs |
2. 로컬 스토리지
2-1. 로컬 스토리지의 특징
- 키 - 벨류 형태로 저장되며, 서버측으로 전달되지 않는다.
- 기기마다 차이가 있으나, 보통 한사이트당 5MB정도 사용이 가능하다.
- 사이트 재 방문 시에 이전에 저장되었던 정보를 이용 할 수 있다.
2-2. 로컬 스토리지의 장점
- 쿠키보다 많은 정보를 저장 할 수 있다.
- 서버측으로 전달되지 않으므로 도난 가능성이 쿠키에 비하여 상대적으로 적다.
- 값 설정/조회 시 제공된 API를 이용하면 된다.
- 사이트 재 방문 시에 이전에 저장되었던 정보를 이용 할 수 있으므로 활용도가 높다.
1 2 3 4 | window.localStorage.setItem('Key', 'Value'); // Set Key - Value window.localStorage.getItem('Key'); // Get Value window.localStorage.removeItem('Key'); //Delete window.localStorage.clear(); // Clear | cs |
쿠키와 스토리지의 장단점을 비교해보면, 스토리지가 쿠키의 단점을 보완하여 추가된 기능임을 알 수 있습니다. 스토리지 기능은 HTML5를 지원하는 브라우져 및 기기에서만 이용 가능합니다. 쿠키와 스토리지 기능을 적절하게 사용하면 웹 개발을 훨씬 편리하게 할 수 있습니다.
'JavaScript & JQuery' 카테고리의 다른 글
자주사용하는 JQuery 속성(CSS), 추출 함수 (0) | 2018.01.07 |
---|---|
자주사용하는 JQuery 확장 함수 (0) | 2018.01.07 |
자주사용하는 JQuery 변경/변환 함수 (0) | 2018.01.07 |
자주사용하는 JQuery 삭제 함수 (0) | 2018.01.07 |
자주사용하는 JQuery 삽입 함수 (0) | 2018.01.07 |