관리 메뉴

엘리

#WIL 일주일간 배운 이론 정리 항해 7일차 #JWT #API 본문

프로그래밍 공부 일지/TIL 그리고 WIL

#WIL 일주일간 배운 이론 정리 항해 7일차 #JWT #API

엘리허 2021. 9. 19. 18:36

JWT(Json Web Token)

Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 claim 기반의 web token

토큰 자체를 정보로 사용하는 self-contained 방식으로 정보를 안전하게 전달한다.

 

실행되는 로직

어플 실행

-> 로컬 스토리지에 값이 존재 하는가?

1. 존재 한다면,

로컬 스토리지의 값을 이용해서 로그인

2. 존재 하지 않는다면,

서버에서 JWT 발행 및 응답 헤더에 담아서 보냄 -> 모바일에서 JWT를 로컬 스토리지와 static 변수에 저장 -> 로그인

: static에 저장하는 이유; http 통신을 할 때마다 JWT를 HTTP 헤더에 담아서 보내야 하는데, 이를 로컬 스토리지에서 계속 불러오면 오버헤드가 발생하기 때문.

 

JWT 구조

Header, Playload, Signature 3부분으로 이뤄짐

각 부분을 이어주기 위해 . 구분자를 사용

 

JWT의 장점

사용자 인증에 필요한 모든 정부는 토큰 자체에 포함 되기 때문에 별도의 인증 저장소가 필요 없다.

분산 마이크로 서비스 환경에서 중앙 집중식 인증서버와 데이터 베이스에 의존하지 않는 쉬운 인증 및

인가 방법을 제공한다.

 

JSON 웹 토큰의 사용을 권장하는 이유

1. url 파라미터와 헤더로 사용

2. 수평 스케일이 용이

3. 디버깅 및 관리가 용이

4. 트래픽 대한 부담이 낮음

5. REST 서비스로 제공 가능; REST; 네트워크를 통해서 컴퓨터 끼리 통신할수 있게 해주는 아키텍쳐 스타일

6. 내장된 만료

7. 독립적인 JWT

 

JWT 단점

1. 토큰은 클라이언트에 저장, 데이터 베이스에서 사용자 정보를 조작 하더라도 토큰에 직접 적용 불가능

2. 더 많은 필드가 추가 되면 토큰이 커질수 있음

3. 비상태 애플리케이션에서 토큰은 거의 모든 요청에 전송되므로, 데이터 트래픽 크기에 영향을 미칠수 있음.

4. JWT는 상태를 저장하지 않기 때문에 한번 만들이 지면 제어가 불가능. 즉 토큰을 임의로 삭제하는 것이 불가능하다. 그래서 토큰 만료 시간을 꼭 넣어 줘야 함. 

 

JWT가 유용하게 사용되는 경우

1. 회원인증 : 사용자가 로그인을 하면, 서버는 사용자의 정보를 기반으로 토큰을 발급 -> 사용자가 서버에 요청을 할때 마다 JWT를 포함하여 전달 -> 서버는 클라이언트에서 요청을 받을 때 마다 해당 토큰이 유효하고 인증됐는지 검증 -> 사용자가 요청한 작업에 권한이 있는지 확인하여 작업 처리 (사용자가 요청을 했을때 토큰만 확인 하면 되므로, 세션 관리가 필요 없어서 서버 자원과 비용을 절감)

2. 정보 교류 : JWT는 두 개체 사이에서 안정성 있게 정보를 교환하기 좋은 방법. 그 이유는 정보가 서명되어 있기 때문에 정보를 보낸이가 바뀌진 않았는지, 정보가 도중에 조작 되지 않았는지 검증 가능 

 

 

API (Application Programing interface)

:프로그램들이 서로 상호 작용 하는 것을 도와주는 소프트웨어 도구

즉, 새로운 연결 인프라를 지속적으로 구축 할 필요 없이 제품 및 서비스가 서로 커뮤니케이션 할수 있도록 도와주는 기능

 

API 활용의 이점

1. 개발자들이 애플리케이션 코드를 작성하는 방법을 표준화 함으로써, 간소화되고, 빠른 프로세스 처리 가능.

2. 소프트웨어를 통합하고자 할대는 개발자 간의 협업을 용이하게 만들어 줌

3. public API 와 parter API를 사용하면, 기업은 타사 데이터를 활용하여, 브랜드 인지도를 높일수 있고, 고객 데이터 베이스를 확장하여 전환율까지 높틸수 있음

 

 

*이번주에 적은 #TIL*

https://pickyeaters.tistory.com/160 

https://pickyeaters.tistory.com/164

https://pickyeaters.tistory.com/165

https://pickyeaters.tistory.com/166

https://pickyeaters.tistory.com/168

https://pickyeaters.tistory.com/169

https://pickyeaters.tistory.com/170

12시가 넘어 캡쳐해서 8일차라고 떴다! 7일동안 100시간 채웠다!

다음주는 좀 더 정확히 재서 7일동안 100시간 채워야지!

알차게 보내자!!!