토큰과 캐시 [ TIL ]

2023. 6. 27. 22:45TIL&WIL/TIL

 

Problem

 

쿠키와 세션에 이어 이해할 수 토큰과 캐시 에 대해 이해해보자


Try

 

여러 블로그와 강의를 보고 예시를 들어서 정리해보았다.


Solve

 

token

 

토큰은 동물원으로 치자면 티켓이다. 이 토큰 티켓은 언뜻 보기에는 영어 소문자, 대문자, 숫자 등이 마구 섞여 있어서 토큰이 어떤 데이터를 갖고 있는지 어떤 의미인건지 알 수 없다.

동물원은 동물원만 알고있는 비밀키를 가지고 있다.

사용자의 정보를 비밀키를 통해서 랜덤한 문자열 같은 토큰을 발급할 수 있게된다.

이 토큰을 사용자가 갖고 있다가 (인증 요청의 응답 값으로 토큰을 받아서 보관한다.) 동물원에 전달하면 또 다시 이 토큰이 유효한지 토큰에 있는 데이터를 판별해서 다시 사용자를 식별할 수 있게 된다.

 

그러면 토큰을 사용자가 가지고 있으니까 쿠키처럼 조작할 수 있지 않을까?

사용자가 조작한 토큰을 동물원에 보내봤다.

동물원은 아까처럼 비밀키로 토큰을 읽어보려고 시도할 것이다.

그런데 이 토큰은 사용자가 악의적으로 작성한 것이지 동물원에서 정상적인 방법으로 발급한 것이 아니기 때문에 읽어들일 수 없었고, 이상함을 느껴 이 사용자의 접근을 막아버린다.

 

하지만 한계점은 존재한다. 여러 사용자가 접근한다고 가정한다면 ? 이 토큰이 유효하기만 하다면 사용자가 같은 아이디로 들어오든 말든 동물원은 항상 입장을 허용해 줄 것이다.

세션에서 관리한다면 이미 접속한 적 있는 아이디로 다시 접속하는 경우를 막는다던가 하는 것을 동물원에서 제어할 수 있다.

 

cache

 

한 사용자가 동물원 기념풉 샵을 방문했다. 

이 사용자가 한참 둘러보다가 거북이 인형이 마음에 들었다. 직원분께 이 거북이 인형의 재고를 물었고, 직원도 창고에서 거북이 인형을 꺼내드렸다.

사용자는 한참 고민하다가 다음에 오겠습니다 하고 샵을 나갔다.

직원이 보기에는 사용자가 다시 올것만 같다.

그래서 이 거북이 인형을 창고에 다시 넣지 않고 손에 닿는 곳에 있으면 편할 것 같아서 캐시라는 선반에 담아둔다.

 

이렇게 가져오는데 비용이 드는 데이터를 임시로 저장했다가 필요할 때 꺼내서 쓸 수 있게 해주는 것을 캐시라고 한다.

 


What I Learned

 

토큰과 캐시에 대해 이해할 수 있었다.

토큰 : 인증에 대한 정보를 사용자가 저장

캐시 : 한 번 전송 받은 데이터를 저장해 놨다가 필요할 때 꺼내서 쓰기 가능

예시를 들어 이해하는 게 좋은것 같다.

다음엔 jwt 에 대해 공부해보거나, 못했던 OOP 에 대해 공부해야겠다.

'TIL&WIL > TIL' 카테고리의 다른 글

HTTP [ TIL ]  (0) 2023.07.01
객체 지향 프로그래밍 OOP [ TIL ]  (0) 2023.06.28
쿠키와 세션 [ TIL ]  (0) 2023.06.27
RESTful API [ TIL ]  (0) 2023.06.25
express [ TIL ] [ node.js ]  (0) 2023.06.25