Weekly devIL 1

임선용·2022년 5월 15일
0
post-thumbnail

스파르타코딩 1주차 WIL

JWT [Json Web Token]

JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token을 의미한다. JWT는 Token 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 전달한다. 이 정보는 주로 사용자 인증이나 정보 전달에 사용된다.

  • JWT구조
    JWT는 헤더(Header), 페이로드(Payload), 서명(Signature)의 세가지 파트로 나뉘며, 각 파트는 점(.)으로 구분된다.
  1. 헤더
    헤더는 토큰의 타입과 해시 암호화 알고리즘으로 구성돼 있다.

  2. 페이로드
    페이로드는 토큰에서 사용할 정보의 조각들인 클레임(Claim)이 담겨있다. Claim은 또 세가지로 나뉘며 Json형태로 정보를 담는다.

1. 등록된 클레임
- 등록된 클레임은 토큰 정보를 표현하기 위해 이미 정해진 종류의 데이터들로, 모두 선택적으로 작성이 가능하다.  EX) exp(토큰 만료 시간)
2. 공개 클레임
- 공개 클레임은 사용자 정의 클레임으로, 공개용 정보를 위해 사용된다. 충돌 방지를 위해 URI 포맷을 이용한다.
3. 비공개 클레임
- 비공개 클레임은 사용자 정의 클레임으로, 서버와 클라이언트 사이에 임의로 지정한 정보를 저장한다.  EX) 미니프로젝트에선 id 정보를 넣었었다.
  1. 시그니처
    시그니처는 토큰을 인코딩하거나 유효성을 검증 할 때 사용하는 고유한 암호화 코드이다. 시그니처는 위의 헤더와 페이로드의 값을 각각 BASE64로 인코딩하고, 그 값을 Secret Key를 이용해 헤더에서 정의한 알고리즘으로 해싱을 하고, 이 값을 다시 BASE64로 인코딩하여 생성한다.
    시그니처의 Secret Key의 값은 오직 서버만 알고있어야 하기 때문에 서버에 저장해 놓는다.

API

API(Application Process Interface) 정의가 상당히 애매한데, 회사마다 부르는 말도 다르다
기본적인 정의는 클라이언트가 서버에 호출해서 데이터를 수정하거나 조회하는 작업을 말한다.
기본적인 개념은 RPC(Remote Procedure Call)인데, 이걸 RPC라고 부르는 데는 거의 없고, 대부분 API라고 부르거나 어디는 TR(Transaction)이라고 부른다고 한다.
클라이언트에서 필요로 하는 작업을 해준다는 것은 변함없기 때문에 API든 RPC이든 TR라고 해도 잘 알아듣도록 하자!

항해 1주차에 대한 평가

4일간의 미니프로젝트를 진행하며
아직 초보라 기본적인 기능을 구현할 뿐이지만 팀워크와 개발의 재미를 배울 수 있었고,
좋은 선원들을 만날 수 있다는게 큰 행운이었다.
프로젝트가 끝난 지금까지도 서로 연락하고, 볼 때마다 인사하고(서로 폭죽을 터뜨린다ㅋㅋ) 좋은 정보를 공유해 주신다.
알고리즘 공부
어려운 수학문제를 푸는 느낌이다. 그런데 수학문제는 푸는 방법을 알면 연필로 쓰고 지우개로 지우면서 풀 수 있었지만, 알고리즘은 푸는 방법을 알아도 파이썬 문법으로 구현을 할 줄 알아야한다ㅠㅠ. 알고리즘 문제를 풀었을 때 성취감은 높지만 아직 좀 어렵긴 하다.

profile
백엔드 개발 공부중

0개의 댓글