NAVERfficial - "네이버다운 게 뭔데?" 물으신다면
fficial.naver.com
해외 사이트를 돌아다니다 보면 쿠키 동의하라는 팝업이나 토스트가 참 귀찮다.
법적으로 쿠키 사용 동의를 받아야 해서 그렇다고 하는데 대체 그게 뭔지 모르니 쉽게 동의하고 싶지도 않다.
어차피 이 바닥에서 먹고 살 거 귀찮지만 쿠키가 대체 뭔지 좀 알고나 가자.
어차피 개발자도 아닌 이상 민간인 용어로 쓰겠지만, 혹시 틀린 부분이 있으면 누구든 말씀해 주셨으면 좋겠다.
쿠키는 사용자를 인식하거나 상태를 유지하기 위해 사용자 인증 정보를 어딘가에 저장해 두는 데이터의 일종이다.
예를 들어 웹 사이트에서 화면을 이동할 때마다 매번 로그인 할 수는 없지 않은가.
일단 로그인을 한번 하면 웹 사이트(서버)에서 쿠키를 발행해 준다.
그 이후부터 브라우저(내 컴퓨터)에서 쿠키 정보를 헤더에 담아 웹 사이트(서버)에 보내면 '아 이 냥반 또 왔네' 하고 알아봐 준다는 거다.
그러니까 한마디로 내 아이디가 뭐라고 어딘가 저장해 둔다는 거다.
그런데 쿠키와 한 쌍으로 움직이는 게 세션인데 세션은 또 뭘까.
세션도 쿠키다.
쿠키는 지속 쿠키와 세션 쿠키로 나눠지는데, 일반적으로 전자를 그냥 쿠키로, 후자를 세션으로 부른다.
쿠키는 사용자 PC에 데이터가 저장된다.
그러니까 요걸 찾아서 아이디 정보만 바꾸면 주인님의 숨겨진 이메일을 읽을 수 있을 지도 모른다.
(요걸 못하게 하려고 암호화 하는 거다)
세션은 사용자 브라우저의 캐시에 저장되고 아이디가 아닌 의미 없는 문자열로 정보가 구성된다.
캐시에 있는 걸 어떻게 찾는지도 모르지만 의미 없는 문자열을 어떻게 뭘로 바꾸나.
근데, 그럼 그게 나인 걸 웹사이트는 어떻게 알지?
당연히 세션을 발행할 때 클라이언트(브라우저)에 보낸 문자열을 서버에 저장해 둔다.
(저 냥반의 아이디는 이 문자열이야)
마찬가지로 브라우저에서 헤더에 세션 정보를 담아 보내면 서버에서 해당 문자열에 매핑된 아이디를 확인해서 '그 냥반'을 인식할 수 있다는 거다.
그럼 이쯤에서 드는 생각. 딱 봐도 세션이 보안 면에서도 훨씬 유리할 것 같은데?
기획 관점에서 사용성 이야기를 할 때, 꽤 많은 주니어들이 HCI 관점의 사용자 경험과 유사한 개념으로 생각하곤 한다.
그러나 실제 사용자 경험은 의외로 보안 정책이 빡빡해서, 데이터 조회 속도가 느려서, 레포트 결과가 맞지 않아서 등등 다양한 사유가 원인이 되어 만족도가 떨어지는 경우가 많다.
다시 돌아가서 말하자면, 세션은 서버에 부하를 많이 주는 방법이다.
사용자가 아주 많은 웹사이트에서는 사용자 정보를 매번 비교해 주는 작업이 수백만 수천만 건씩 발생할 수 있어 성능에 중요한 영향을 미친다.
어느 정도 정리가 된 걸까.
쿠키와 세션은 결국 규모에 따라 어느 쪽을 사용하는 것이 좋을 지, 암호화는 어떻게 처리해야 하는지 등을 판단해야 하는 꽤 피곤한 일인 듯 하다.
오늘도 애쓰시는 개발자 분들께 존경과 애도를.
다음 내용이 궁금하다면?
이미 회원이신가요?
2023년 10월 27일 오전 1:22
변
... 더 보기1
... 더 보기세상에는 복권에 당첨되어 부자가 된 사람들이 있다. 그것도 여러 명 있을 것이다. 그러면 복권을 사는 것이 부자가 되는 올바른 방법일까? 아마 그렇게 생각하는 사람은 별로 없을 것이다. 실패한 사람이 더 많고, 성공한 사람도 순전히 운 덕분이라는 것을 알기 때문이다.
... 더 보기