호기심으로 시작한 Frontend 꾸준함으로 채워나가는 Developer

[혼공얄코] Chapter 02-3 쿠키, 토큰, 캐시는 일상에서 쓰는 그 단어인가요? 본문

혼공 시리즈/혼공얄코

[혼공얄코] Chapter 02-3 쿠키, 토큰, 캐시는 일상에서 쓰는 그 단어인가요?

RachelLee 2024. 1. 19. 11:40

- 효율적인 웹 운영과 사용을 위해 데이터가 저장되는 다섯 가지 개념 : 쿠키, 세션, 토큰, 캐시, CDN

 

브라우저에 저장되는 정보 쿠키

쿠키에 저장되는 예시)
- 로그인 없이 장바구니에 물건 담기 기능

- 검색 기록에서 이전에 입력했던 검색어 찾기

- 웹 서핑 기록이 마케팅과 광고에 활용되는 것

- 웹툰 목록이나 웹 페이지의 다크 모드 설정 여부 등과 간단한 정보들


쿠키란?

- 브라우저(크롬, 사파리 = 사용자의 컴퓨터에 설치된 소프트웨어 )에 저장되는 작은 텍스트 조각

- 쿠키는 사용자가 갖고 있는 정보 = 사용자에게 맡겨도 되는 정보만 저장

- 사용자는 설정 화면이나 개발자 도구에서 쿠키를 확인하고 수정, 삭제 가능

- 개인 또는 제 3자가 조회하는 것도 가능하기에 개인 정보 담은 내용, 보안 상 민감한 정보를 저장하는데 적합X

 

서버가 나를 알아보는 방법 세션

세션이란? 

로그인 여부 등 사용자와 서버의 관계가 기억되어 보존되고 있는 상태

사용자의 아이디를 메모리(=책상)에 올려두고 빠르게 확인, 메모리 공간이 부족하면 서버에 부하)

- 로그인하며 입력된 아이디와 비밀번호를 서버에 제공하여 다른 페이지 이동시 계속 로그인을 하지 않아도 됨

- 사용자가 로그인에 성공하면 서버는 세션 아이디라는 데이터(알파벳과 숫자가 혼합된 형식 : 2sd98dbawix4) 

- 세션 아이디를 사용자에게 전달, 메모리에 아이디 사본을 어떤 사용자의 것인지 적어서 보관

- 사용자는 서버로부터 받은 세션 아이디를 쿠키로 저장 후 모든 요청에 전달!

- 댓글 작성, 삭제, 구매한 상품 내역 조회 등 세션 아이디 중에서 동일한 정보인지, 누구의 계정인지 확인 후 액션

 

세션과는 또 다른 로그인 유지 방식 토큰

- 로그인한 사용자에게 세션 아이디 대신 토큰을 발급

- 특수한 수학적 원리가 적용되어 있어 (=위조 방지 장치가 있는 지폐) 서버만이 유효한 토큰을 발행

- 토큰을 받아간 사용자가 이를 쿠키에 저장해 두고 필요할 때마다 제시하면 사용자 요청 허가함, 서버 부하 줄임

- 서버가 강제 로그아웃을 시킬 수 있어야 할 때, 토큰 방식에서는 불가능

 

  세션 방식 토큰 방식
장점 사용자의 상태를 원하는대로 통제 가능 상태를 따로 기억해 둘 필요가 없음
단점 메모리에 로그인되어 있는 사용자의 상태를 보관해야 함 한번 로그인한 사용자의 상태는 토큰이 만료될 때까지 제어가 불가능함

 

전송량은 줄이고 속도는 높이고 캐시

- 이미지,동영상, 웹 페이지 코드와 같은 대용량의 데이터를 서버로부터 전송받는데 캐시 덕분에 반복적으로 데이터 전송을 요청하지 않고 콘텐츠를 빠르게 이용할 수 있고 데이터 사용량도 줄일 수 있다.

- 컴퓨터의 하드웨어 안에서도 메모리 안에 들어 있는 정보를 더 빨리 가져올 수 있도록 하는 CPU 캐시 등 개념도 있음

- 쿠키와 캐시 모두 정보를 저장하여 재활용하는 기술

- 캐시는 데이터의 전송량을 줄이고 서비스 이용 속도를 높이는데 목적을 둠

 

서버 부담은 줄이고 사용자와는 가깝게 CDN (콘텐츠 전송 네트워크)

지리적으로 분산된 여러 개의 서버를 이용해 웹 콘텐츠를 사용자와 가까운 서버에서 전송함으로써 전송 속도를 높인다.

전 세계 각지에 세워진 캐시 저장 및 전달용 컴퓨터(CDN 업체 소유)들에 보내면 사용자는 본 서버가 아닌 본인에게서 가장 가까운 캐시 서버로 요청을 보내고 데이터를 받아오는 것

- 사용자는 데이터를 보다 빠르고 안정적으로 받아오며 대량의 데이터를 전송하는 서비스, 유튜브, 넷플릭스와 같은 동영상 서비스에 CDN은 필수

- AWS의 CloudFront, CloudFlare, Akamai  한국에는  GS네오텍, SK브로드밴드, KT 등 한국 서비스에 최적화된 업체들임

 

 

확인 문제

더보기

1. 다음 중 틀린 것을 고르세요

1. 사용자의 집 주소와 계좌 빌밀번호는 쿠키에 저장하는 것이 좋습니다

 

2. 다음 문장 중 괄호 안에 알맞은 내용을 보기에서 찾아 써 보세요.

- 사용자 로그인 관리에 있어 서버의 자원을 효율적으로 상요하는 데는  (토큰)방식이, 로그인 등 사용자의 상태롤 보다 철저히 통제하는 데는 (세션) 방식이 유리합니다.

- 온라인 서비스나 콘텐츠를 해외에 빠르고 안정적으로 제공하기 위해서는 각국에 (캐시 서버)을 둔 (CDN)를 이용할 필요가 있습니다.

 

3. 다음 중 가가 문장에 해당하는 단어를 보기에서 찾아 써 보세요.

- 쿠키는 사용자의 정보를 (브라우저)에 저장합니다.

- 세션은 로그인 상태를 기억하기 위해 (세션 아이디)를 쿠키에 저장합니다.

- 서버를 분산해서 응답 속도 저하나 서버 오류를 최소화하기 위해 사용하는 것을 (CDN)이라고 합니다.

 

4. 다음 중 옳은 것을 고르세요

   5 세션 대신 토큰을 발급하면 메모리 사용량을 줄일 수 있습니다.

 

5. 다음 중 용도에 적합한 단어를 써 보세요.

- 메모리 제한이 있는 서버에서 사용자 로그인 관리 (토큰)

- 브라우저에 사용자의 검색어 입력 기록 저장 (쿠키)

- 다국적으로 서비스되는 온라인 게임을 위한 지역별 데이터 저장소 구축 (CDN)

- 재생한 동영상 데이터를 일시적으로 스마트폰에 저장 (캐시)

- 각 사용자의 로그인 상태를 제어할 수 있어야 하는 온라인 서비스 (세션)