얄팍한 코딩사전 - 쿠키, 세션, 캐시가 뭔가요?

Kkd·2024년 12월 3일

코딩 영상 후기

목록 보기
20/34

movie

쿠키, 세션, 캐시는 웹 애플리케이션에서 데이터를 저장하고 관리하는 데 사용되는 기술들로, 각각의 역할과 특징이 다릅니다. 이를 이해하면 웹 동작 원리를 더 깊이 이해할 수 있습니다.


정의

  • 클라이언트(브라우저) 측에 저장되는 데이터입니다.
  • 사용자가 웹사이트를 방문할 때 생성되며, 이후 요청마다 서버에 자동으로 전송됩니다.

특징

  • 데이터 저장 위치: 클라이언트 (브라우저)
  • 데이터 용량: 보통 최대 4KB
  • 유효 기간: 설정된 만료 시간에 따라 지속적(퍼시스턴트 쿠키) 또는 일시적(세션 쿠키)
  • 전송 방식: HTTP 요청 헤더에 포함되어 자동 전송

주요 사용 사례

  • 로그인 상태 유지 (ex: "Remember Me" 기능)
  • 사용자 설정 저장 (ex: 언어, 테마)
  • 광고 추적

장점

  • 서버 부하를 줄일 수 있음 (클라이언트에 저장되므로)

단점

  • 보안 문제: 쿠키에 민감한 정보를 저장하면 도난 가능성 (ex: XSS 공격)
  • 저장 용량 제한

2. 세션 (Session)

정의

  • 서버 측에서 관리되는 사용자 상태를 저장하는 방식입니다.
  • 세션 ID가 브라우저 쿠키에 저장되고, 이를 통해 서버에서 사용자 데이터를 식별합니다.

특징

  • 데이터 저장 위치: 서버
  • 데이터 용량: 서버 메모리/저장소 용량에 따라 유동적
  • 유효 기간: 일반적으로 브라우저 종료 시 만료되지만, 서버에서 설정으로 기간 연장 가능
  • 전송 방식: 세션 ID가 클라이언트의 쿠키, URL 파라미터, 혹은 요청 헤더에 포함되어 전송

주요 사용 사례

  • 사용자 인증 (ex: 로그인 후 권한 관리)
  • 장바구니 관리 (ex: 전자상거래)

장점

  • 보안이 상대적으로 뛰어남 (데이터는 서버에 저장)
  • 클라이언트 메모리를 차지하지 않음

단점

  • 서버 부하 증가 (사용자 세션을 서버 메모리에 저장)
  • 세션 유지 비용이 증가하면 서버 확장이 필요

3. 캐시 (Cache)

정의

  • 클라이언트 또는 서버 근처에 데이터를 저장하여 반복적인 데이터 요청 시 응답 속도를 높이는 기술입니다.

특징

  • 데이터 저장 위치: 클라이언트(브라우저), 중간 서버(프록시), 또는 서버
  • 저장 기간: 설정된 TTL(Time To Live)에 따라 다름
  • 캐싱 단위: 파일, 데이터베이스 쿼리 결과, API 응답 등

주요 사용 사례

  • 정적 리소스 캐싱 (ex: CSS, JavaScript, 이미지 파일)
  • 데이터베이스 조회 결과 캐싱
  • API 응답 속도 개선

장점

  • 응답 속도 개선 (네트워크 요청 감소)
  • 서버 부하 감소
  • 비용 절감 (반복적인 데이터 전송 줄임)

단점

  • 데이터 불일치 가능성 (ex: 캐싱된 데이터와 실제 데이터의 불일치)
  • 저장 공간 필요
  • 캐시 무효화(갱신) 전략이 필요

비교

항목쿠키세션캐시
저장 위치클라이언트(브라우저)서버클라이언트/서버/프록시
용량4KB 제한서버 용량에 의존제한 없음 (저장 공간에 의존)
유효 기간설정된 만료 시간기본 브라우저 종료 시TTL에 따라 다름
보안민감 정보 저장에 부적합상대적으로 안전데이터 무결성 관리 필요
주요 목적상태 정보 저장사용자 세션 관리속도 및 성능 개선

결론

  • 쿠키: 클라이언트에서 가벼운 정보를 저장하고 상태를 관리할 때 사용.
  • 세션: 서버에서 사용자 인증이나 상태 정보를 안전하게 관리할 때 사용.
  • 캐시: 데이터 응답 속도를 높이고 서버 부하를 줄일 때 사용.

필요한 상황에 따라 적절한 기술을 선택해 사용하는 것이 중요합니다.

profile
🌱

0개의 댓글