[Web] 쿠키(Cookie) & 세션(Session) & 캐시(Cache)

 

 

1. 쿠키(Cookie)

클라이언트(사용자의 웹 브라우저) 측에 텍스트 파일 형태로 저장되는 작은 데이터 파일,
사용자가 웹사이트를 방문할 때마다 서버에 의해 생성되며 브라우저를 통해 클라이언트에 저장된다

 

 

1) 장점

  • 사용자의 선호도, 로그인 상태 등을 기억해서 개인화된 서비스 제공이 가능하다 (팝업창, 아이디 저장하기 등)
  • 세션 관리, 사용자 추적 등에 용이하다

 

2) 단점

  • 한정된 데이터 크기(약 4kb)만 저장 가능하다
  • 클라이언트에 저장되므로 보안에 취약할 수 있다
  • 사용자가 쿠키를 삭제하거나 비활성화할 수 있다

 

3) 동작 방식

  1. 사용자가 웹사이트에 접속하면, 서버는 사용자의 브라우저에 쿠키를 생성해서 보낸다. 이 쿠키는 사용자의 컴퓨터에 저장된다
  2. 사용자가 같은 웹사이트에 다시 접속하면, 브라우저는 해당 사이트의 서버에 저장된 쿠키 정보를 함께 전송한다
  3. 서버는 이 정보를 사용해서 사용자를 식별한다

 

사용하는 이유

  • 사용자의 로그인 상태, 선호 언어, 테마 선택 등 개인화 된 설정을 기억할 수 있다
  • 방문자 추적을 통해 사용자 행동 분석 및 마케팅 전략에도 사용될 수 있다

 

2. 세션(Session)

서버 측에서 사용자 정보를 저장하는 방법, 사용자가 서버에 접속해 있는 동안 사용자의 상태를 유지한다

 

 

1) 장점

  • 쿠키보다 보안적으로 더 안전하다. 데이터가 서버에 저장되기 때문에 클라이언트에서 직접적인 접근이 불가능하다
  • 크기 제한 없이 많은 양의 데이터를 저장할 수 있다

 

2) 단점

  • 사용자가 많아질 수록 서버의 메모리를 많이 차지해서 성능 저하를 일으킬 수 있다
  • 사용자가 브라우저를 닫거나 세션이 타임아웃되면 정보가 사라진다

 

 

3) 동작 방식

  1. 사용자가 웹사이트에 접속하면 서버는 고유한 세션 ID를 생성하고, 사용자의 브라우저에 쿠키 형태로 저장된다
  2. 사용자가 서버에 요청을 보낼 때마다, 브라우저는 세션 ID를 포함하여 요청을 전송한다
  3. 서버는 세션 ID를 기반으로 사용자를 식별하고, 서버에 저장된 해당 사용자의 세션 정보에 접근해서 필요한 데이터를 처리한다

 

❔ 사용하는 이유

  • 로그인 정보, 장바구니 내용 등 중요한 사용자 정보를 안전하게 서버에 저장하며 관리한다
  • 쿠키보다 보안성이 높으며, 클라이언트 측에 민감한 정보를 남기지 않는다

 

3. 캐시(Cache)

자주 사용되는 데이터나 파일을 임시로 저장해두는 공간으로, 클라이언트 또는 서버 측에 존재할 수 있다.
데이터 로딩 시간을 줄이고 서버의 부하를 감소시키는 데 도움을 준다

 

 

1) 장점

  • 웹 페이지의 로딩 속도를 개선한다
  • 네트워크 트래픽을 줄이고, 서버 부하를 감소시킨다

 

 

2) 단점

  • 캐시된 데이터를 메모리에 저장해야돼서 메모리 사용량이 높아질 수 있다
  • 캐시된 데이터가 최신 데이터가 아닐 수 있다

 

 

3) 동작 방식

  1. 웹페이지 또는 앱에서 자주 사용되는 데이터, 이미지, 파일 등을 사용자의 브라우저나 서버 측에 임시로 저장한다
  2. 해당 데이터에 다시 접근할 필요가 있을 때, 캐시에서 빠르게 로드해서 사용자에게 제공한다. 서버에서 매번 데이터를 불러오는 것보다 훨씬 빠르다
  3. 캐시된 데이터는 정해진 시간 동안 또는 수동으로 갱신되기 전까지 저장된다

 

❔ 사용하는 이유

  • 웹페이지의 로딩 시간을 단축시켜 사용자에게 빠른 접근성을 제공한다
  • 서버의 부하를 줄이고, 네트워크 트래픽을 감소시킬 수 있다
  • 인터넷 연결이 불안정하거나 오프라인일 때도 일부 데이터에 접근할 수 있다