티스토리 뷰

안녕하세요 탐구소년입니다. 

오늘은 맨날 들어도 맨날 헷갈리는 쿠키 세션 캐시에 대해서 정리해두려고 합니다. 

워낙 찾아볼 만한 자료도 많고 흔한(?) 개념들이니 여기서는 최대한 쉽게, 가볍게 작성한다는 생각으로 작성해보겠습니다!

 

우선 세 가지의 공통적인 특성부터 말씀드릴게요.

일단은 웹, 그러니까 우리가 크롬이나 익스플로러 등 인터넷 브라우저를 사용해서 접속하는 웹 페이지, 웹 사이트들 있죠? 그 웹이라는 세계(?)에 종속되어 있는 개념이라는 사실이 일단 같고요. 또 뭔가를 저장하는 데 사용되는 놈들이라는 게 세 가지의 공통점 되겠습니다.

공통점 너무 간단하죠. 그렇다면 차이는 어떻게 될까요? 이제부터 각각의 특성을 이야기해보겠습니다.

 

 

첫 번째, 쿠키!

 

쿠키는 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 의미합니다. 쉽게 말해 쿠키는 웹을 사용하는 사용자 입장에서, 그러니까 우리의 입장에서는 개인 소장용 '방문일지' 같은 것이라고 생각할 수 있습니다. 

예를 들어 보겠습니다. 사용자가 크롬 브라우저를 통해서 DAUM 웹페이지를 열고, 아이디와 비밀번호를 입력해서 로그인 버튼을 눌렀다고 해볼게요. 그러면 아이디와 비밀번호가 DAUM 측으로 전달되어 사용자를 접속시켜 주겠죠? 그러면 이제 우리의 크롬 브라우저에는 아래와 같은 기록이 남는 거예요.

 

"DAUM 홈페이지에 example이라는 아이디와 1234라는 비밀번호를 입력해서 접속했다."

 

그러면 그 뒤로 크롬 브라우저는 우리가 DAUM 웹페이지에 접속할 때마다 그 기록을 가지고 자동으로 다음에 로그인을 하게 됩니다. 기록이 남아 있으니까 그걸 활용하는 거죠. 즉 쿠키는 사용자의 접속 인증(Authorization) 기록을 위한 기록증 정도로 생각할 수 있겠네요. 편리하게도, 이러한 기록은 브라우저를 닫았다가 열어도 남아있는 기록입니다(경험으로 다 아실 듯합니다).

그러나 기록이 영원히 남아있는 것은 아닙니다. 여러 웹 페이지에 방문하면서 브라우저 쿠키가 쌓이다 보면 오래 된 기록은 자연스럽게 삭제되어 버리기 때문인데요. 이러한 현상(?)을 '쿠키의 소멸'이라고 표현합니다. 

 

 

두 번째, 세션!

 

세션은 쿠키랑 하는 일이 같다고 볼 수 있습니다. 그러나 데이터가 저장되는 위치가 서로 달라요. 쿠키가 사용자의 컴퓨터(브라우저)에 저장되는 놈이라면, 세션은 서버 쪽에 저장되는 놈입니다.

다시 예를 들어 보자면, 우리가 DAUM 웹페이지에 접속했을 때 DAUM 측에서 '저 사람이 접속했다'라고 기록하는 것이 바로 세션의 역할인 것입니다. 쿠키와 거의 같은 역할이지만 저장 위치가 다른 거죠. 

또 다른 차이는 생명주기입니다. 위에서 쿠키가 브라우저를 닫아도(종료해도) 소멸되지 않는다는 언급이 있었는데요. 세션은 브라우저가 종료되면 소멸되어 버립니다. 

보안 면에서도 쿠키와 세션은 차이를 보이는데요. 쿠키는 개인PC에서, 세션은 서버에서 처리하기 때문에 세션이 비교적 보안이 강합니다. 

 

 

세 번째, 캐시(정확히는 웹 캐시)!

 

캐시는 다른 애들이랑은 또 다른 영역이라고 생각해도 되고 안 해도 되는 개념인데요(무책임한 발언 ㅈㅅ합니다).

우리가 웹 페이지를 보다 보면, 각종 이미지며 UI 등이 브라우저를 통해서 잔뜩 보여지고 있잖아요? 그러한 것들이 하나같이 서버(DAUM이면 DAUM 서버, NAVER면 NAVER 서버)에서 내 개인PC로 전송되는 데이터의 일종이라고 할 수 있습니다. 그런데 이러한 데이터들을 매~번 서버에서 전송해주는 것은 일정 수준의 부하를 요구하니까, 사용자가 웹 페이지에 접속했을 때 사용자의 컴퓨터에 캐시라는 저장 공간을 따로 마련하여 해당 웹페이지의 데이터들을 거기에 저장해두는 것이에요. 그런 다음부턴 사용자가 웹 페이지를 열 때마다 서버가 아니라 캐시에 저장되어 있는 데이터를 사용하는 것입니다. 물리적으로 캐시에서 데이터를 가져오는 게 서버에서 가져오는 것보다 훨씬 빠르기 때문에 성능 향상을 꾀할 수 있습니다. 

 

여기까지 해서 쿠키, 세션, 캐시에 대해서 간단하게 정리를 해보았습니다. 처음 보는 사람도 이해할 수 있게 쓰고 싶다는 생각으로 써 봤는데, 어떨지는 모르겠네요(ㅋㅋ). 아무튼 정리는 여기까지 하고요. 이상 마칩니다. 감사합니닷~!

 

댓글
공지사항