Sparta/항해99

항해99 - 01일차 - OT/멘토링/쿠키,세션,JWT 정리

또롱또 2022. 5. 9. 18:47
728x90

OT

미니프로젝트 기획

기획멘토링

TIL 강의

정도가 진행되었다.

 

기획멘토링이 도움이 정말 많이 됬던거 같다.

프론트엔드는 백엔드의 고객이다. 유저들은 프론트엔드의 고객이다.

 

이 말이 뭔가 많이 와닿았다.

실제로 백엔드의 자료를 프론트 엔드가 받아서 유저들에게 보여주는 시스템이니까.

 

미니프로젝트 기획은 거창했다.

하지만, 구현이 가능할까?

라는 멘토님 말씀에최소한 필요 기능만 구현을 먼저 하기로 결정했다.

 

내 파트였던 크롤링 부분이 빠지게되는 위기에 처해지면서, 어느 부분을 할지 고민하다가, 

메인페이지 작업을 협동해서 끝내기로 하였다.

+ 다른부분도 서로 도와가면서

 

일단 오늘 남은 시간은 얼마없지만오늘의 계획은

1. JWT / 쿠키 / 세션에 대해서 공부

2. Jinja2 템플릿에 대해서 공부

정도로 끝내려고 한다. 

 

생각보다 사전회의, 준비 등에서 시간이 많이 소요되는걸 알았다.

 

1.  JWT / 쿠키 / 세션에 대해서 공부

 

HTTP의 특징 - 인터넷상에서 데이터를 주고받기위해 서버/클라이언트 모델을 따르는 통신규약
          - 비연결성, 비상태성이 존재: 연결상태가 유지x, 브라우저하고 연결 종료후 상태 정보가 저장 X  
          - 이유: 서버랑 하루종일 연결하고 있을수는 없음, 사용자들은 컴퓨터도 끄고, 로그아웃도 하고 해야함
          - 이러면 사용자에 대한 정보가 없어서 사용자들을 매번 새로운 사용자들로만 식별함

- 이러한 비연결성, 비상태성을 보완하여 서버가 클라이언트를 식별할 수 있게 해주는게 쿠키/세션

쿠키 - 웹사이트에 접속할 때 생성되는 정보를 담은 임시 파일

서버를 대신해서 사용자의 웹 브라우저에 정보를 저장(로컬에 저장),
    - 사용자가 무언가를 서버에 요청할때, 저장된 정보를 같이 보내서 서버가 사용자를 식별할 수 있게 도와줌

목적: 세션관리(로그인, 닉네임, 접속시간, 장바구니 등 서버가 알아야 할 정보 저장), 
     개인화(사용자마다 다르게 적절한 페이지를 보여줌), 
     트래킹(사용자의 행동과 패턴 분석및 기록)

단점: 용량 제한이 있어서 많은 정보를 담을 수 없음
     서버가 아니라, 로컬에 저장되기 때문에 변조,위조로 부터 취약

세션 - 쿠키랑 다르게 서버의 메모리에 세션ID를 저장, 그리고 브라우저의 쿠키에도 세션의 ID를 저장 
    - 즉, 사용자가 브라우저의 쿠키로 로그인을 요청하면, 서버가 쿠키의 세션ID로 메모리를 조회한 후 로그인 처리를 해줌

단점: 서버에서 세션저장소를 사용하므로, 요청이 많아질 경우 서버에 부하가 심해짐

JWT란 Json format으로 사용자에 대한 정보를 저장할수 있는 Web Token 이다.( Json Web Token)
다수의 도메인, 선택적인 권한 부여

 

장점: 토큰을 이용함 (토큰에 필요한 정보를 저장해서 주고받기 때문에, 별도의 인증이 필요없음)

세션과 토큰의 차이비교

클릭해서 봐야한다..

단점: JWT는 Payload를 탈취해서 decode하면 데이터를 볼 수 있음 - 보안문제

토큰 임의삭제 불가 - 토큰의 만료시간을 꼭 기입해야한다.

정보가 많아질수록 토큰의 길이가 늘어나 네트워크에 부하를 줄 수 있습니다.

 

세줄정리

쿠키: 로컬에 저장되는 임시파일, 변조가능

세션: 서버에 세션저장소를 두고 로그인 처리 - 세션 양이 많아지면, 서버 느려짐

JWT - 토큰에 정보 담아서 주고받음 - db나 서버에서 인증관련문제 저장소 해결, 보안문제

 

 

JWT 원리 정리 -> 회원가입/로그인 시스템으로 예를 들면서

,,, 자고일어나서..다시..

 

 

 

 

728x90