[JS] 데이터 읽기,쓰기

[JS] 데이터 읽기,쓰기

Javascript는 웹 브라우저에 사용자 데이터를 저장할 수 있습니다. 이 데이터들은 다음번 웹 사이트 접속시 활용될 수 있기 때문에 사용자 맞춤 기능을 구현하는데 활용됩니다.

#01. 쿠키

사용자의 웹 브라우저에 저장되는 텍스트 데이터.

모든 사용자가 각각 자신만의 정보를 저장할 수 있기 때문에 개인화 기능을 구현하는데 활용될 수 있다.

정보를 저장하는데 있어 “이름=값; 유효시간; 유효경로; 유효도메인” 으로 설정한다.

이름과 값은 모두 URLEncoding 처리 되어야 한다.(영어,숫자는 제외)

유효시간은 초단위로 기록.

  • 설정되지 않으면 브라우저를 닫기 전까지 데이터가 유지
  • 0으로 설정하면 즉시 삭제
  • 0보다 큰 숫자로 설정하면 해당 초가 지나기 전까지는 브라우저를 재시작 하더라도 저장된 정보가 유지된다.

유효경로는 해당 쿠키값을 읽고 쓸 수 있는 특정 폴더 경로를 지정할 수 있다.

(일반적으로 “/”만 지정하여 사이트 전역에서 쿠키가 유효하게 설정한다.)

쿠키는 기본적으로 저장된 도메인에서만 유효하다.

ex) www.naver.com에서 저장한 쿠키는 blog.naver.com에서는 식별되지 않는다.

  • “.naver.com” 으로 유효도메인을 설정하면 앞에 붙는 호스트이름에 상관없이 쿠키가 공유된다.
  • 패밀리사이트간의 정보 공유를 위해 많이 사용된다. (특히 통합로그인)

장점

  • 대부분의 브라우저가 지원

단점

  • 매 HTTP요청마다 포함되어 api호출로 서버에 부담. (페이지 이동시마다 백엔드에 무조건 모든 쿠키가 전송됨)
  • 쿠키의 용량이 작음 (약 4Kb)
  • 암호화 존재 x -> 사용자 정보 도난 위험

사용 예

  • 오늘 본 상품
  • 오늘 하루 이 창 열지 않음. ​

#02. 웹 스토리지

쿠키의 단점을 보완해 HTML5에서 추가된 기술로 로컬스토리지와 세션스토리지로 구분됨.

특징

  • 웹스토리지는 Key와 Value 형태로 이루어짐.
  • 웹스토리지는 클라이언트에 대한 정보를 저장.
  • 웹스토리지는 로컬에만 정보를 저장, 쿠키는 서버와 로컬에 정보를 저장.
종류 특징 사용 예
​로컬스토리지 클라이언트에 대한 정보를 영구적으로 저장 자동 로그인 저장
세션스토리지 세션 종료 시(브라우저 닫을 경우) 클라이언트에 대한 정보 삭제 입력 폼 정보 저장, 비로그인 장바구니

장점

  • 서버에 불필요하게 데이터를 저장하지 않는다. (백엔드에 절대로 전송되지 않는다.)
  • 저장 가능한 데이터의 용량이 크다. (약 5Mb, 브라우저마다 차이 존재)

단점

  • HTML5를 지원하지 않는 브라우저의 경우 사용 불가. (현재는 거의 없다고 봐야 한다.)
호쌤(이광호)'s Picture

About 호쌤(이광호)

메가스터디IT아카데미에서 Java, Spring, Python, Frontend 등을 강의하는 IT 전문 강사이자 프리렌서 개발자 입니다.
https://www.youtube.com/@hossam-codingclub

Seoul, Korea http://www.hossam.kr