20220512 TIL

SeowooCHo2·2022년 5월 12일
0

TIL

목록 보기
1/4
post-thumbnail

20220509 ~ 20220512 4일간의 미니프로젝트를 끝냈다

첫 기획의도와 최대한 벗어나지 않으며 기능들을 담아보고자 노력했다.

로그인, 회원가입 기능을 위해 jwt토큰, 쿠키, 세션 방식을 공부했다.

  1. 쿠키는 간편하다 다만 쿠키에 사용자 정보를 담아 클라이언트에게 보내주기 때문에 보안이 약하다.
    그렇기에 장바구니와 같은 보안이 취약해도 되는 지점에 사용한다.

  2. 세션은 쿠키와 달리 서버에 사용자 정보를 저장하고 쿠키를 클라이언트에게 전달하기 때문에 보안은 강하다. 다만 사용자가 증가되면 서버의 양도 늘려야 하며 서버 증설이 안될 경우 과부하가 발생할 수 있다.

  3. JWT 토큰 방식은 Header, Payload, VerifySignature의 세가지 요소를 사용한다.

  • Header: 3가지 요소를 암호화할 알고리즘 등과 같은 옵션이 들어간다.

  • Payload: 유저의 고유 ID 등 인증에 필요한 정보가 들어간다.

  • Verify Signature: Header, Payload와 Secret Key가 더해져 암호화된다.

  • Header.PayLoad.VerifySignature로 만들어진다.
    Header와 Payload는 누구나 디코딩하여 내용을 확인할 수 있기때문에 유저의 비밀번호 같은 정보는 넣지 않도록 한다.
    하지만 Secret Key를 알지 못하면 VerifySignature는 복호화할 수 없다.
    그렇기 때문에 토큰을 변조하더라도 VerifySignature가 Payload를 기반으로 암호화 되었기 때문에 유효하지 않은 토큰으로
    검증이 가능하다.

이렇게 JWT는 세션보다 좀 더 간편하다. 다만 세션은 중간에 탈취당해서 악용될 경우 서버에서 세션을 삭제해주면 되지만 토큰은 유효기간이 지속되는 한 계속 악용당할 수 있는 단점이 있다. 그런 단점을 보완하기 위한 것이 Refresh Token 이다.

두번째로 SSR에 대해 공부하였다.

SSR은 Server Side Rendering으로 간단하게 말하면 서버에서 다 해서 클라이언트에게 보내주는 것이다.
이와 반대되는 개념으로 CSR(Client Side Rendering)이 있다.

SSR은 서버에서 완성된 HTML 파일을 클라이언트에게 보여주기 때문에 CSR에 비해 로딩속도가 빠른 편이며 사용자로 하여금 유의미한 정보를 보다 빠르게 파악할 수 있다.

미니프로젝트 끝낸 소감

막상 처음엔 4일만에 프로젝트 하나를 뚝딱해내라니 막막했다.
그래서 시간을 쪼개고 쪼개 그냥 하루종일 컴퓨터 앞에만 앉아있었다.

그러니까 됐다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

너무 신기한데 이게 몰입의 무서움인 것 같다.

배운점도 많고 아쉬운 점도 많다.

일어나자마자 프로그래밍 생각이었고, 자기전에도 프로그래밍 생각이고 머릿속엔 코드를 어떻게 짜야 구현이 될까 뿐이었다.

되게 귀중한 경험이었고, 앞으로 큰 도움이 될 시간이었다.

재밌었다. (●'◡'●)

https://github.com/zerovodka/The_ball

profile
먹고 배우는 것엔 아끼지 말자구 ( ̄︶ ̄)↗ 

0개의 댓글