[CS-Challenge : 세션/쿠키/캐시]

SELOG·2024년 2월 1일
0

CS-CHALLENGE

목록 보기
4/5
post-thumbnail

:) [ 세션 ]과 [ 쿠키 ]와 [ 캐시 ]에 대해 설명할게욥

  • 세션과 쿠키가 사용자의 정보나 상태를 저장하는 데 초점을 맞춘 반면, 캐시는 주로 성능 향상을 목적으로 데이터를 저장한다.
  • 목적의 차이: 쿠키와 세션은 주로 사용자 인증, 사용자 설정 저장, 사용자 상태 관리 등에 사용되며, 캐시는 성능 향상과 빠른 데이터 접근을 위해 사용된다.

세션(Session) vs 쿠키(Cookie), 캐시(Cache)

쿠키(Cookie)

정의

  • 웹사이트가 사용자의 브라우저에 저장하는 작은 데이터 조각으로, 사용자가 웹사이트에 재방문하였을 때 이전 상태를 기억하게 해준다.

특징

  • 저장 위치: 쿠키는 사용자의 디바이스에 있는 클라이언트(브라우저)에 저장된다.

  • 용도: 주로 사용자의 로그인 정보, 사이트 선호도, 장바구니의 내용 등과 같이 개인화된 사용자 경험을 제공하기 위해 사용된다.

  • 만료 기간 설정: 쿠키에는 만료 날짜가 설정될 수 있으며, 이를 통해 쿠키가 언제 삭제될지 결정된다.

    • 자동 만료: 일반적으로 세션은 사용자가 브라우저를 닫거나 서버에서 설정한 일정 시간 동안 활동이 없을 경우 자동으로 만료된다. 이 시간 제한은 서버에서 설정하며 "세션 타임아웃"이라고 한다.
    • 서버 측 설정: 세션 만료는 서버 측에서 관리되므로, 웹 애플리케이션의 필요에 따라 세션 타임아웃을 조정할 수 있다.
  • 크기 제한: 쿠키는 크기에 제한이 있다. 대부분의 브라우저에서는 쿠키당 4KB의 크기 제한을 두고 있다.

장점

  • 서버 부담 감소: 사용자 정보를 클라이언트 측에서 관리함으로써 서버의 부하를 줄일 수 있다.

  • 향상된 사용자 경험: 사용자의 선호도와 설정을 기억함으로써 맞춤형 사용자 경험을 제공할 수 있다. 예를 들어, 웹사이트 언어 설정, 로그인 상태 유지 등이 이에 해당한다.

단점

  • 보안 취약성: 쿠키는 보안에 취약할 수 있다. 특히, 쿠키에 민감한 정보를 저장하는 경우, 암호화하지 않으면 제3자에 의해 정보가 쉽게 접근될 수 있다.

  • 브라우저 호환성과 설정 문제: 일부 사용자는 쿠키를 비활성화할 수 있다. 이 경우, 쿠키를 필요로 하는 웹사이트의 기능이 제대로 작동하지 않을 수 있다.

세션(Session)

정의

  • 서버 기반의 사용자 상태 저장: 세션은 서버에서 사용자의 상태를 저장하는 방법이다. 사용자가 웹사이트에 로그인하거나 특정 작업을 수행할 때, 서버는 이 정보를 세션에 저장하여 사용자가 웹사이트를 탐색하는 동안 이를 유지한다.

  • 유일한 세션 ID: 각 사용자는 고유한 세션 ID를 가진다. 이 ID는 사용자가 서버와 상호 작용할 때마다 사용되어 사용자를 식별한다.

특징

  • 저장 위치: 세션 정보는 서버에 저장된다. 이는 쿠키와 달리 클라이언트 측이 아닌 서버 측에서 관리된다는 것을 의미한다.

  • 보안성: 세션은 쿠키에 비해 더 안전하다. 세션 데이터는 서버에 저장되기 때문에 클라이언트 측의 조작이나 접근으로부터 보호된다.

  • 만료 시점: 일반적으로 세션은 사용자가 브라우저를 닫거나 일정 시간 동안 활동이 없을 때 만료된다. 서버 측에서 세션의 만료 시간을 설정할 수도 있다.

    만료 기간 설정 : 쿠키는 생성 시 "만료 날짜"를 설정할 수 있다. 이 날짜가 지나면 쿠키가 자동으로 만료된다.
    설정하지 않은 경우 브라우저 세션 쿠키가 되며, 브라우저가 닫힐 때 만료된다.
    브라우저 세션 쿠키와 영구 쿠키:

    • 브라우저 세션 쿠키: 명시적인 만료 날짜가 없는 쿠키로, 브라우저가 닫힐 때 만료된다.
    • 영구 쿠키: 만료 날짜가 설정된 쿠키로, 설정된 날짜까지 브라우저에 저장된다.
  • 데이터 저장 용량: 세션은 쿠키보다 더 많은 양의 데이터를 저장할 수 있다. 이는 서버의 메모리에 의존적이다.

장점

  • 보안 강화: 중요한 정보(로그인 정보, 사용자의 개인 설정 등)를 서버에 저장함으로써 보안을 강화할 수 있다.

  • 사용자별 데이터 관리: 각 사용자에게 고유한 세션을 할당함으로써 개별 사용자에 맞는 데이터 관리가 가능하다.

단점

  • 서버 부하 증가: 모든 세션 데이터가 서버에 저장되므로, 많은 사용자가 접속하는 웹사이트의 경우 서버의 부하가 증가할 수 있다.

  • 리소스 관리 필요: 세션의 수와 크기에 따라 서버의 리소스를 효율적으로 관리해야 한다. 세션 데이터가 많을 경우, 서버의 메모리 사용량이 증가한다.

캐시(Cache)

정의

  • 데이터 저장소: 캐시는 자주 사용되는 데이터를 임시로 저장하는 저장소.
    웹 콘텐츠, 이미지, 비디오, 스크립트 등을 포함할 수 있으며, 이 데이터는 빠른 재접근을 위해 저장된다.

  • 효율적인 데이터 접근: 캐시의 주 목적은 웹사이트나 애플리케이션의 성능을 향상시키기 위해 데이터 접근 시간을 줄이는 것.

특징

  • 저장 위치: 캐시는 클라이언트 측(예: 웹 브라우저), 서버 측, 그리고 네트워크 장비(예: CDN)에 저장될 수 있다.

  • 데이터 유형: HTML 페이지, CSS 스타일시트, 자바스크립트 파일, 이미지 및 미디어 파일 등 다양한 유형의 데이터가 캐시될 수 있다.

  • 만료 정책: 캐시된 데이터는 일반적으로 만료 시간이 설정되어 있으며, 이 시간이 지나면 캐시에서 제거되거나 갱신된다.

장점

  • 성능 향상: 데이터를 빠르게 로드함으로써 웹사이트의 로딩 시간을 줄일 수 있다.

  • 대역폭 절약: 자주 사용되는 데이터를 로컬에 저장함으로써 네트워크 트래픽을 줄이고 대역폭을 절약할 수 있다.

  • 서버 부하 감소: 서버에 요청하는 횟수가 줄어들면서 서버의 부하가 감소한다.

단점

  • 최신 데이터 문제: 캐시된 데이터가 최신 상태가 아닐 수 있어 사용자가 구버전의 데이터를 볼 수 있다.
  • 리소스 관리: 캐시된 데이터가 많아지면, 특히 브라우저나 클라이언트 측에서 시스템 리소스를 많이 사용할 수 있다.
  • 관리 필요성: 캐시된 데이터의 만료 및 갱신에 대한 관리가 필요하다.
profile
금융 IT 전문가가 될거야

0개의 댓글