본문 바로가기
[POLF] : 코딩

[용어부터 정리하기] 데이터의 저장 개념(쿠키, 토큰, 세션)

by POLF 2023. 1. 24.

 

썸네일, 데이터 저장 개념
데이터 저장 개념인 쿠키, 토큰, 세션에 대해서 정리해 보았습니다.

웹 사용자들은 자주 접속하는 웹사이트의 경우 아이디나 비밀번호, 배경화면, 모드 등 다양한 정보를 저장해 놓고 편리하게 이용하고 있습니다. 이런 반복해서 사용하는 데이터나 정보에 대해서 저장하고 재활용하는 방식의 종류에는 쿠키, 토큰, 세션 등이 존재합니다. 그래서 이런 개념들에 대해서 정리해 보도록 하겠습니다. 

 

Contents

     

     

    1. 쿠키 : 브라우저에 저장하는 방식

     

    웹 사이트에 접속하면 광고배너를 자주 볼 수 있습니다. 이런 배너에 '오늘 하루 보이지 않기'나 '7일간 보이지 않기'에 체크를 해두면 그 뒤부터는 일정 기간동안 배너가 보이지 않게 되죠. 또한 인터넷 쇼핑에서 로그인을 하지 않은 상태에서도 물건을 장바구니에 담아두면 로그인 후에도 그 물건들이 장바구니에 그대로 있는 것을 볼 수 있습니다. 

     

    이런 정보들은 브라우저에 저장함으로써 사용자의 편리성을 증가시켜 주는 역할을 하는데 이 때 저장하는 방식을 '쿠키'라고 합니다. 쉽게 이야기하면 크롬이나 사파리, 에지 같은 브라우저의 우리 데이터를 저장해 놓는 방식이라고 할 수 있습니다. 이런 경우에는 브라우저를 바꾸게 되면 그동안 바꾼 브라우저에서는 우리 데이터가 저장되어 있지 않기 때문에 일종의 초기화를 겪게 됩니다. 요즘에는 브라우저를 바꿔도 바뀐 브라우저에서 이전 사용했던 브라우저의 정보를 가져와서 다시 저장할 수 있습니다. 이런 정보들은 컴퓨터를 같이 사용할 수 있는 제3자에게도 동일한 정보를 제공할 수 있기 때문에 개인정보와 같은 민감한 정보들은 저장하지 않는 것이 좋습니다. 

     

    브라우저에서는 대략 300개 정도의 쿠키값을 저장할 수 있고, 도메인 당 20개의 값만 가질 수 있습니다. 또한 쿠키를 유지하는 시간을 지정(유효시간)할 수 있으며, 유효시간 내 브라우저를 닫아도 해당 쿠키는 브라우저에서 보관하고 있게 됩니다. 

     

    쿠키 설명
    쿠키는 말 그대로 브라우저에 저장된 정보 조각이라고 할 수 있습니다.

    쿠키라는 이름은 넷스케이프 개발자인 Louise J. Motulli가 만들었는데, 유닉스 프로그래머들이 프로그램 수신 후 변경하지 않고 반환하는 데이터 패키지를 '매직 쿠키'라고 부르는데서 착안했다고 합니다. (참고 : 동아일보, "웹 사이트에서 동의 요구하는 '쿠키', 아는 만큼 보인다.)

     

    웹 사이트를 방문하면 이런 문구도 자주 보실 수 있습니다. 이런 쿠키동의는 어디에 활용되는 것일까요? 웹 사이트의 효율성을 높이기 위해서 사용하기도 하지만 광고를 목적으로 활용하기도 합니다. 그래서 신뢰할 수 없는 사이트에서는 쿠키 제공을 허용하지 않도록 하는 것이 좋습니다. 

     

    2. 토큰 : 사용자를 인증하는 방식

     

    토큰(Token)은 서버에서 사용자를 인식할 수 있게 위조를 방지해서 발급해 주는 인증방식입니다. 사원증이나 지문인식과 같은 방식으로 서버에서 사용자를 인식하고 정보를 제공해주는 것이죠. 먼저 아이디와 비밀번호를 브라우저에서 치고 웹에 접속하면 서버는 그 정보를 가지고 토큰을 만들어줍니다. 그럼 브라우저는 그 토큰을 받아서 임시로 저장을 해놓게 되죠. 그럼 사용자가 매번 같은 사이트에서 정보를 찾으려고 옮겨다닐때마다 아이디와 비밀번호를 요구하지 않고, 토큰 정보가 일치하는지 확인한 후 정보를 제공해 주게 됩니다. 

     

    토큰 방식의 인증은 사용자가 서버로 요청을 할 때 쿠키를 전달하지 않아도 되기 때문에 쿠키 사용으로 인한 보안에서의 취약한 부분을 해결할 수 있다고 합니다. 하지만 토큰의 취약점도 존재한다고 하네요. 토큰 방식의 인증은 사용자 입장에서도 편하지만 서버 관리 입장에서 굉장히 편합니다. 우리가 흔히 이용하는 카카오톡 계정을 이용한 로그인 방식도 이런 토큰 방식의 인증 시스템에 의해서 만들어집니다. 

     

     

     

    3. 세션 : 서버에 사용자를 저장하는 방식

     

    세션(Session)은 웹 사이트를 구성하는 페이지를 연결해서 사용자가 별도의 아이디와 비번을 입력하지 않도록 서버에 사용자 정보를 저장해 두는 방식을 이야기 합니다. 보통 인터넷 뱅킹을 하게 되면 "세션이 만료됐습니다"라는 메시지를 볼 수 있습니다. 이것은 서버에 저장된 나의 정보 유효시간이 지났다는 의미로 다시 로그인을 해야 한다라는 의미입니다. 즉 유효시간이나 사용자가 브라우저를 종료할 때까지 같은 사용자에게서 오는 요청은 하나로 보고 상태를 일정하게 유지해 주는 방법입니다. 

     

    세션 설명
    세션은 서버에 사용자를 저장해 두는 방식입니다.

     

     

    쿠키와는 다르게 서버에 저장함으로써 쿠키가 가지고 있는 보안에 대한 취약점을 보완해줄 수 있는 방식이기도 합니다. 하지만 쿠키에 비해 세션은 서버에 저장하는 방식이기 때문에 다수의 사용자가 동시에 접속하게 되면 서버 사용량이 늘어나면서 접속시간이나 웹 사이트 상태가 원활하게 구동하지 않을 수 있다고 합니다. 

     

    전문가가 아닌 입장에서 쉬운 말로 설명하려다 보니 맞지 않는 설명이 들어가 있을 수 있습니다. 더 공부해서 정확하게 전달하고 설명할 수 있도록 하겠습니다. 

     

    By. POLF

     

     

     

    댓글