본문 바로가기
코딩/TIL,WIL

항해99 Day2

by 내 멋대로 삶 2021. 11. 5.

항해99  Day2

 

로그인 페이지부터 시작을 하려고 했지만 모르는 개념이 등장 했다.

 

JWT과 쿠키/세션 설명
  • JWT vs 세션/쿠키

공통점 : 둘 다 애플리케이션에서 인증을 하기위해 사용되며 HTTP 헤더에 세션ID나 토큰을 실어서 서버로 보내준다는 것은 동일하다. 차이점 : 세션/쿠키 방식은 사용자의 정보를 저장하는 세션 저장소를 필요로 하는 반면, JWT는 세션 저장소 없이 토큰 안에 유저의 정보들을 넣는다. 즉, 인증을 위해 정보를 암호화 하느냐(JWT) 별도의 저장소를 이용하느냐(세션/쿠키)의 차이가 있다.

- 쿠키/세션 대비 JWT장단점 설명
  • JWT의 장점

JWT는 발급한 후 검증만 하면 되기 때문에 추가 저장소가 필요 없다. 토큰을 기반으로 하는 다른 인증 시스템에 접근이 가능하기 때문에 확장성이 뛰어나다. (ex) Facebook 로그인, Google 로그인

  • JWT의 단점

이미 발급된 JWT에 대해서는 돌이킬 수 없다. 세션/쿠키 방식의 경우에는 만일 쿠키가 악의적으로 이용된다면, 해당하는 세션을 저장소에서 지워버리면 그만이지만 JWT는 한 번 발급되면 유효기간이 만료될 때 까지는 사용이 가능하다. 이 문제를 해결하기 위해 기존의 Access Token의 유효기간을 짧게 가져가고 Refresh Token이라는 새로운 토큰을 발급할 수 있는데, 이러면 Access Token을 탈취당하더라도 상대적으로 피해를 줄일 수 있다. 유저의 중요한 정보들은 Payload에 넣을 수 없기 때문에 (Payload는 탈취당하면 충분히 복호화될 수 있다.) Payload 정보가 제한적이다. 토큰은 세션/쿠키 방식에 비해 크기가 크다.

 

my토큰을 서버에 요청할때 쿠키세션으로 받아서 미리 정해준 secret_key를에 이용해 jwt암호화를 한다.

 해쉬함수로 암호를 db에서 개발자가 봐도 알지 못하게 한다.

처음 이개념을 알지 못해서 이코드가 왜 필요한지 알지 못했고, 로그인을 했다는 인증을 jwt토큰을 받기만 하면 알수 있기 때문에 로그인 정보가 필요한 모든페이지에 필요하다는 점을 알았다.

 

CSR과 SSR
  • CSR의 장점

첫 페이지 로딩을 제외하면 렌더링이 빠르고 데이터 비용도 아낄 수 있는 여지가 높다. TTV와 TTI 사이의 공백이 없기때문에 페이지가 활성화되면 클릭과 같은 이벤트의 딜레이가 없다.

  • CSR의 단점

첫 페이지 로딩이 느릴 수 있으며 모든 HTML과 static파일이 로드될 때까지 기다려야 한다. 그에 따라 SEO에 취약하다. 그 이유는 CSR은 처음에 빈 페이지로 존재하기 때문에 검색엔진 로봇이 크롤링 할 때, 빈 페이지를 크롤링할 경우, 원하는 정보를 얻지 못 할 수 있다.

  • SSR의 장점

첫 페이지의 로딩이 빨라진다. CSR에 비해서 SEO에 최적화 되어있다.

  • SSR의 단점

사용자가 많을수록 서버가 처리하는 데이터의 양이 많아지므로 과부하가 CSR에 비해 쉽다. 페이지는 띄어질수 있으나 JS와 같은 동적제어 소스코드를 전달받지 못한다면 클릭과 같은 이벤트를 수행할 수 없다. 즉, TTV와 TTI 사이에 공백이 있기 때문에 대기상태가 존재할 수 있다는 것이다.

 

지금까지는 ajax를이용한 클라이언트 사이드 랜더링(CSR)을 이용하는 법만 알았는데 jinja2를 이용한 서버사이드 랜더링(SSR)을 이용해 페이지가 생성될때 옮길 수 있는정보를 함께 옮겨 편리하다고 생각했다. 

 

코딩을 짜기 보다 먼저 어떻게 로직을 짜야하는지가 중요하다는 점을 다시한번 상기시키는 하루였다. 

큰 틀에서만 어떤 페이지를 만들자고 정하니 어떤 부분을 어떻게 먼저 진행해야 할지 모르는 상황이 발생했다.

알지못하는 개념이 많아 오늘하루는 최대한 자기 개인공부 시간을 가졌다.

강의를 듣고나서야 쪼오오오금 이해가 되기 시작했고, 아직 구조를 제대로 이해하지 못해 API부분을 이해하고 활용하는데 시간이 꽤 걸릴 것 같다. 

'코딩 > TIL,WIL' 카테고리의 다른 글

항해 99 DAY8  (0) 2021.11.14
항해99 WIL(Weekly I Learned) day 7  (0) 2021.11.08
항해 99 day 4,5  (0) 2021.11.07
항해99 day3  (0) 2021.11.06
항해99 day 1  (0) 2021.11.03