SW
Cookie, Session, Cache 본문
0. Cookie, Session
- 울랄라스파라는 곳이 있다.
- 울랄라스파는 회원등록을 하고 입장해서 내부 시설들을 맘껏 이용한 뒤 나올 때 한꺼번에 계산하는 방식이다.
- 우리가 브라우저로 어느 웹사이트를 이용하는 과정을 위 스파에 비유해 설명해보겠다.
- 이곳에서는 스파의 쿠폰북이 아닌 '쿠키북'이라는 수첩같은 것을 들고다니면서 이용하는 시설마다 이걸 보여주게 되어 있다.
- 이 '쿠키북'에는 시설 측에서, 혹은 내가 직접 뭔가 기록할 수도 있고 수정하고나 찢어서 버릴 수도 있다.
- 이 '쿠키북'의 핵심은 내가 들고다닌다는 것. 그리고 시설을 이용할 때마다 보여준다는 것이다.
- 쿠키는 사이트를 방문하고 이용할 때 브라우저에 저장되는 내용들이다.
- 브라우저는 내 컴퓨터에 있는것이므로 내가 갖고 있는 정보이다.
- 그런데 이 쿠키북에는 한계가 있다.
- 내가 임의로 고치거나 지울 수 있고 심지어 남이 훔쳐보거나 도둑질하기도 쉽다.
- 나로서는 민감하거나 중요한 정보를 쿠키북에 적어서 다니기는 불안할 것이다.
- 또한 스파측에서 보관하고 관리해야 하는 정보들이 있다.
- 스파에는 여러 시설들이 있고 모든 이용자들의 중요 정보들을 총괄하는 곳이 있다. 그곳을 '울랄라 session'이라고 하겠다.
- '울랄라 session'이 세션과 비슷한 개념이라고 이해하면 되겠다.
- 내가 찜질방에 입장하면 '울랄라 session'에서 그때그때 생성되는 바코드를 내 쿠키북에 하나 찍어준다.
- 찜질방을 돌아다니면서 시설들을 이용할 때 이 고객은 회원으로 확인되어 입장해 있다. 어디서 얼마짜리 서비스를 이용했다. 귀중품이 어디에 보관되어 있다 등등 쿠키북에다 보관하기 곤란한 정보들은 이 '울랄라 session'에서 관리해주고 그 정보들이 각각 누구의 것인지는 바코드로 구분이 되는 것이다.
- 세션을 사용하는 사이트에 접속하면 서버에서는 사용자를 구분하기 위한 기한이 짧은 임시 키 하나를 브라우저에 보내서 쿠키로 저장한다.
- '고상원'이란 사용자가 사이트 안의 페이지를 돌아다닐 때 이 사용자의 중요한 정보들은 이 서버의 메모리나 데이터베이스에 저장된다.
- 브라우저가 이 사이트의 페이지들에 접속할 때마다 http요청에 이 키를 실어서 전송하고 서버는 그 키를 보고 "얘는 고상원이구나" 인식해서 '고상원'의 정보를 가공해서 응답으로 보내주는 것이다.
- 예를 들어, 네이버에 로그인을 한다음 네이버의 다른 페이지들을 이용할 때마다 새로 로그인 할 필요가 없는 건 쿠키와 세션의 조합으로, 우리의 컴퓨터에서 네이버에 로그인해있다는 것을 네이버 서버가 인지하고 있기 때문이다.
- 로그인 후 다음과 같이 자물쇠 모양을 클릭해보면 다음과 같이 뜬다.
- 모든 쿠키를 지우고 새로고침을 누르면 로그인이 해제되어 있다.
- 서버에서는 세션에 나의 로그인 정보를 가지고 있지만 그것이 내 것이라는 증명할 세션 아이디가 내 쿠키보관함에서 지워졌기 때문이다.
- 쿠키는 로그인창의 아이디를 자동완성하거나 공지 메시지를 하루 안 보기 하거나 쇼핑몰 사이트에서 로그인 안 한 상태로 물건을 장바구니에 담는 등, 사용자의 편의를 위하되, 지워지거나 조작되거나 가로채이더라도 큰 일은 없을 그런 수준의 정보들을 브라우저에 저장하는데 사용된다.
- 그리고 사용자나 다른 누군가에게 노출되어서는 안 되는, 서비스 제공자가 직접 관리해야 할 정보들은 세션으로 서버 안에서 다뤄지는 것이다.
- 웹 개발자들은 사이트들을 만들 때 어떤 정보를 쿠키에 저장할지 세션에 저장할지 적절한 판단을 내릴 수 있어야 한다.
- 쿠키로 노출시켜서는 안 될 정보들이 있고 그렇다고 세션을 남발하면 접속자가 많을 때 서버에 부하가 걸리기 때문이다.
1. Cache
- 위에서 설명한 스파가 신발 판매 사업에도 진출하게 되었다. 그래서 '건국신발마트'라는 것을 찜질방 쇼핑섹션에 개점하였다.
- 손님이 그곳을 방문해서 신발을 고르는데 어떤 운동화 하나가 맘에 들어서 직원한테 "이거 270사이즈 신어볼게요" 요청을 하였다.
- 직원이 창고에 가서 신발을 가져다 줬는데 손님이 한 번 신어보고 "좀 더 둘러볼게요" 하고 갔다.
- 직원이 그 손님 분위기를 보니까 다시 와서 그 제품을 사거나 다른 제품이랑 비교해서 다시 신어보거나 할 것 같다고 느꼈다.
- 다시 창고에 갖다놨다가 그때 또 가지러가면 손님도 기다려야 하고 자기도 힘들 것이다.
- 그래서 그 신발을 도로 창고에 갖다놓는게 아니라 '건국신발마트' 한 켠에 있는 큰 백에 일단 넣어 놓는다.
- 이 백의 이름은 '건국 Cache 백'이다.
- 캐시란 개념은 웹 뿐만 아니라 컴퓨의 메모리 부분이나 안드로이드 등 다양한 곳에서 쓰이는데 거의 공통적인 의미로, 가져오는데 비용이 드는 데이터를 한 번 가져온 뒤에는 임시로 저장해 두는 것이다.
- 웹 캐시는 이미지 등의 정보를 불러올 때 데이터 사용량도 발생하고 시간도 들기 때문에 사용자가 여러 번 방문할 법한 사이트에서는 한 번 받아온 데이터를 사용자의 컴퓨터 또는 중간 역할을 하는 서버에 저장해 둔다.
'대학교 > etc' 카테고리의 다른 글
[RN 오류해결] react-native run-android (0) | 2020.03.31 |
---|---|
Eclipse, Maven, Jenkins, Git, Github (0) | 2020.03.16 |
Flask vs Django (0) | 2020.02.09 |
Django vs Node.js (0) | 2020.02.09 |
머신러닝 vs 딥러닝 vs 인공지능 (0) | 2020.02.07 |
Comments