Hyesung Oh

쿠키 (Cookie ) 와 캐시(Cache)의 차이점 본문

DEV/개발환경

쿠키 (Cookie ) 와 캐시(Cache)의 차이점

혜성 Hyesung 2019. 12. 9. 20:20
반응형

웹 서핑을 해본 사람들이라면 한 번쯤 쿠키, 캐시라는 단어를 들어봤을 겁니다.

저도 Django side project을 하면서 궁금했던 차 찾아본 내용을 바탕으로 제가 이해하기 쉽게 정리해 보려 합니다.

우선 웹 어플리케이션은 크게 클라이언트 단과 서버단 두 가지로 나눌 수 있습니다.

1. 캐시 cache

클라이언트의 요청 --> 서버--> 클라이언트 흐름으로 클라이언트에서 정보를 요청하고 서버에서는 요청받은 정보를 클라이언트로 전송, 랜더링 하게 됩니다.

랜더링이란 쉽게 말해 웹페이지 화면을 구성하는 요소(정적 파일)들을 사용자에게 보여주는 작업입니다.

사용자가 보고 있는 웹페이지에서 중복되는 요소가 있을 때 서버입장에서는 이를 매번 새롭게 랜더링 한다는 것은 서버 자원 입장에서 낭비일 수 있습니다. 이때 사용되는 개념이 바로 '캐시(cache)'입니다.

클라이언트 브라우저에서 한번 요청받은 웹페이지 요소(정적 파일)의 정보(캐시)를 가지고 있다가 새롭게 페이지를 랜더링 했을 때 중복되는 것은 캐시에서 가져오고 나머지를 서버의 응답으로 랜더링 받는 것입니다. 이렇게 해서 우리는 서버 자원을 절약할 수 있게 됩니다.

2. 쿠키 cookie

웹 페이지에 접속하여 로그인을 하려 하는데 매번 새롭게 아이디와 비밀번호를 쳐야 한다면 어떨까요?

사용자 입장에서는 상당히 귀찮을 수 있습니다. 

따라서 클라이언트의 브라우저는 한번 로그인 시 서버로부터 cookie를 제공 받고 그것을 가지고 있다가

다시 왔을 때 서버에게 이전에 로그인했던 사용자라고 검문을 받는데 이 때 사용되는 것이 cookie 입니다.

여러분이 공항에서 여권으로 입국심사를 받듯 그와 비슷한 역할을 하는 것이 바로 cookie입니다.

물론 cookie는 여권처럼 중요한 private 한 정보를 담고 있어선 안될 것입니다. 왜냐면 서버가 아닌 클라이언트 단에서 관리하는 자원이기 때문에 보안에 관한 이슈가 있을 수 있습니다. 따라서 보통 cookie로 가지고 있는 정보는 사용자의 선호도 정보(로그인 정보, 방문 기록, 방문 횟수) 등을 포함하고 있습니다. 

이상으로 제가 이해한 쿠키와 캐시의 개념에 대해 간단하게 정리해보았습니다!

반응형
Comments