티스토리 뷰

728x90
반응형

로컬 스토리지(Local Storage), 쿠키(Cookies), 세션(Session)은 웹 개발에서 

 

클라이언트 측과 서버 측의 데이터를 저장하고 관리하는 중요한 방법이다.

 

이들의 특징과 사용 사례, 보안 및 성능에 대해 간결히 정리해 보자.

 

선요약:

 

특성 로컬 스토리지 쿠키 세션
저장 용량 각 도메인당 약 5MB 각 쿠키당 최대 4KB 서버 설정에 따라 다름
수명 영구적 설정된 만료 시간까지 브라우저 종료시 또는 세션 만료시
접근 범위 동일 도메인 내의 모든 페이지 도메인과 경로에 따라 설정 가능 서버에서만 접근 가능
데이터 타입 문자열 문자열 다양한 데이터 타입
보안 민감한 데이터 저장에 부적합 HTTPS, HttpOnly로 보안 세션ID를 통한 보안
성능 서버 통신 불필요, 빠름 모든 HTTP 요청에 포함, 네트워크 성능에 영향 서버 메모리 또는 DB 사용, 서버 성능에 영향

 

Local Storage

 

Features

 

  • 저장 용량: 각 도메인당 약 5MB로 쿠키나 세션에 비해 훨씬 많은 데이터를 저장할 수 있다.
  • 수명: 사용자가 데이터를 삭제하지 않는 한 브라우저에 영구적으로 저장된다. 물론 세션 종료 후에도 데이터가 유지된다.
  • 범위: 도메인 단위로 데이터가 저장된다. 동일한 도메인 내에서만 모든 페이지에서 접근 가능하다.
  • 데이터 타입: 문자열 형태로만 저장 가능. 객체나 배열을 저장하려면 JSON.stringify()와 JSON.parse()를 사용해야 한다.

 

Use Cases

 

  • 테마, 언어 설정 등 사용자의 개인 설정을 저장하는 데 유용하다.
  • 웹 앱이 오프라인 상태에서도 작동할 수 있도록 데이터를 저장하는데 사용된다.
  • 비교적 큰 데이터를 저장하고 관리하는데 적합하다.

 

Security & Performance

 

  • 보안: HTTPS를 사용하면 데이터는 암호화되지만 로컬 스토리지 자체는 보안이 취약하다. 민감한 정보 저장에는 적합하지 않다.
  • 성능: 서버와 통신이 필요 없기 때문에 기본적으로 매우 빠르다. 그러나 데이터의 양이 늘어나면 속도에 영향을 미칠 수 있다.

 

Cookies

 

Features

 

  • 저장 용량: 하나의 쿠키에는 최대 4KB의 데이터를 저장할 수 있다.
  • 수명: 명시적으로 설정 가능하며 설정하지 않으면 브라우저 세션이 끝날 때까지 유지된다.
  • 범위: 도메인과 경로에 따라 설정할 수 있다. 서브 도메인 간의 쿠키 공유도 가능하다.
  • 데이터 타입: 로컬 스토리지와 마찬가지로 문자열 형태로만 저장할 수 있다.

 

Use Cases

 

  • 세션 관리: 로그인 상태를 유지하거나 사용자를 추적하는 데 사용된다.
  • 사용자 설정: 로컬 스토리지와 마찬가지로 기본 설정을 저장할 수 있으나 비교적 적은 데이터만 가능하다.
  • HTTP 요청마다 자동으로 서버에 전송되기 때문에, 서버 간 데이터 전송에 유용하다.

 

Security & Performance

 

  • 보안: HTTPS와 함께 사용하면 쿠키가 암호화되어 전송된다. HttpOnly 속성을 사용하면 JS로도 접근할 수 없어 XSS 공격을 방지할 수 있다. 하지만 CSRF공격에 취약할 가능성이 있다.
  • 성능: 모든 HTTP 요청에 쿠키가 자동으로 포함되기 때문에, 많은 양의 쿠키를 사용하면 네트워크 성능에 영향을 줄 수 있다.

 

Session

 

Features

 

  • 저장 용량: 서버 측에 저장되기 때문에 용량 제한은 서버의 설정에 따라 다르다.
  • 수명: 사용자가 브라우저를 닫거나 세션이 만료되면 삭제된다. 서버에서 세션 타임아웃을 설정할 수도 있다.
  • 범위: 저장된 데이터는 서버에서만 접근 가능하다. 클라이언트는 세션 ID를 통해서만 서버에 접근한다.
  • 데이터 타입: 다양한 데이터 타입을 저장할 수 있다.

 

Use Cases

 

  • 인증 및 권한 부여: 사용자의 로그인 상태를 유지하거나 접근 권한을 관리할 수 있다.
  • 쇼핑 카트: 쇼핑몰 등에서 사용자의 쇼핑 카트 상태를 유지하는데 사용된다.
  • 사용자 데이터 저장: 서버 측에서만 접근할 수 있는 민감한 데이터를 저장한다.

 

Security & Performance

 

  • 보안: 세션 ID가 쿠키로 저장되기 때문에 HTTPS 사용 시 암호화된다. 세션 고정 공격이나 하이재킹에 취약할 수 있다.
  • 성능: 서버 재원을 사용하기 때문에 사용자가 몰리면 서버 성능에 영향을 줄 수 있다.
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함