본문 바로가기
보안뉴스

쿠키,세션,그리고 캐시

by 맑은청이 2020. 5. 29.
728x90
반응형

(이 게시물은 얄팍한 코딩님의 영상을 보고 정리하는 글입니다.)

 

쿠키, 세션, 그리고 캐시 이 세 개는 웹에서 뭔가를 저장할때 사용되는 개념입니다. 

 

 

 

백화점 안에는 음식점도 있고 오락실도 있고 영화관도 있고 명품을 파는 장소도 있습니다. '컴공 백화점' 이라고 칭해볼게요. 이 곳을 방문하는 것을 웹에 방문하는 거라 비교하십니다. 여기서는 쿠폰북이 아니라 쿠키북이라는 수첩을 들고 다다녀요. 이용하는 곳마다 이 쿠키북을 보여줘야해요. 이 쿠키북은 시설측(서버) 나 혹은 제 자신이 쓸 수 있고 수정하거나 찢어서 버릴 수도 있어요. 뭐 음식점에서 쿠폰을 기록할 수도 있고 마음에 드는 물품을 적어둘 수도 있고 이벤트를 이미 한 번 받았다고 적어놔서 귀찮지 않게 할 수도 있습니다.

 

핵심은 '내가 들고 다니는 거' 입니다. 이 쿠키북은 웹 브라우저에 저장되는 내용입니다. 하지만 문제가 있습니다. 이 쿠키북은 내가 임의로 고치고 지울 수가 있습니다. 심지어 남이 도둑질하고 훔쳐보기도 쉽습니다. 그리고 나의 입장에서도 민감한 내용인데 남이 보면 좀 그렇잖아요? (비밀번호라든지) 또 시설측에서도 이게 안 좋겠죠. 비싼 음식을 먹고 적어놨는데 찢어서 버릴 수도 있잖아요?  이 백화점은 후불대금입니다. 백화점을 나올때 결제를 다 해야해요. 그러니 손님의 쿠키북에 이걸 적어놓지는 않겠죠? 

 

백화점에는 시설 사용자의 중요 정보를 총괄하는 '세션'이 있습니다. 시설에 사용자가 입장을 하면 이 세션에서 그때그때 생성되는 바코드를 사용자의 쿠키북에 찍어줍니다. 그럼 시설을 사용할때 '어디서 얼마짜리 서비스를 이용했다.' ,' 지금 어느 오락실에서 놀고있다' '귀중품은 어디다 저장해놨다.' 이런 것들을 세션에서 관리해줘요. 이런 정보는 입장할 때 받은 '바코드'로 누구의 것인지 구분되죠.

 

세션을 사용하는 사이트에 접속하면 서버에서는 사용자 구분을 위해 기한이 짧은 키브라우저측에 보내 쿠키에 저장을 합니다. 이 사용자의 중요 정보는 서버의 메모리나 데이터베이스에 저장이 되는 겁니다. 브라우저가 이 사이트 페이지들에 접속할때마다 브라우저는 http 요청에 처음 들어올때 받았던 바코드 = 기한이 짧은 임시키를 실어서 서버에게로 보내요. 그럼 서버는 이 사용자를 인식하고(발급해줬던 임시키를 통해) 그에 걸맞는 내용을 브라우저 측에 다시 응답을 하는겁니다. 

 

 쿠키를 지우면 로그인 상태가 풀리는건 http요청에 넣을 임시키(세션 아이디)를 삭제해버렸기 때문입니다.(서버에 있던 내용이 사라지는건 아니에요!)

 

-> 쿠키 : 사용자 이용의 편리를 주 되, 그렇게 중요하지 않은 정보를 브라우저에 저장하는데 사용됨. (장바구니에 물건을 담거나 아이디가 자동 완성이 되거나 할때)

 

-> 세션 : 다른 누군가에게 노출되어서는 안되는 중요한 정보, 서비스 제공자가 직접 다뤄야하는 정보는 세션을 통해 서버 안에서 다루어짐

 

웹 개발자들은 쿠키나 세션에 어떤 정보를 저장할지 판단할 줄 알아야합니다. 중요한 내용을 쿠키에 담아서는 안되고 너무 많이 세션에 담으면 서버에 부하가 올 수 있기 때문입니다. 

 

캐시의 개념은 간단합니다. 신발을 살때 점원이 신발을 가져와서 신발을 신어보죠. 근데 마음에 들긴 한데 완벽하게 들진 않아서 이걸 신어보고 한번 더 그걸 신어서 비교를 해야할거 같아요. 그러면 점원분이 굳이 다시 창고에 갔다놓을 필욘 없겠죠? 그치만 땅바닥에 놔둬놓기는 미관상 좋지 않을테니 옆에 있는 백에 넣어둬요. 이게 백이 '캐시(백)' 입니다! 

 

캐시의 개념은 메모리에도 존재를 하고 의미가 거의 비슷합니다. 자주 쓸거 같은 메모리를 굳이 넣었다 뺐다 반복하지 않고(꽤 힘든 작업이기 때문에) 가까운 장소에 넣어두는 겁니다.

 

 

오늘은 다양한 비유로 쿠키 세션 캐시에 대해 알아보았어요. 얄코님이 설명을 잘 해주셔서 저도 이해하는데 부담없이 좋았답니다ㅎㅎ

 

https://www.youtube.com/results?search_query=%EC%96%84%ED%8C%8D%ED%95%9C+%EC%BD%94%EB%94%A9%EC%82%AC%EC%A0%84

 

얄팍한 코딩사전 - YouTube

 

www.youtube.com

 

728x90
반응형

'보안뉴스' 카테고리의 다른 글

API 란?  (0) 2020.06.14
ASP.NET SignalR  (0) 2020.06.07
MVC란?  (0) 2020.06.07
개발자들이 인터넷 익스플로러를 싫어하는 이유  (0) 2020.06.01
Web Programming & HTML5  (0) 2020.04.24