이번 주 배운 것 :

API, JWT

 

API에 대한 정의는 AWS(amazon web service)에서 가장 알기 쉽게 정의해 놓고있다

참고 : https://aws.amazon.com/ko/what-is/api/

 

API란 무엇인가요? - API 초보자를 위한 가이드 - AWS

 

aws.amazon.com

개인적으로는 그냥 멀티탭에 전원 꼽는 콧구멍 정도로 생각하고 있다

규격에 맞는 콧구멍을 마련해놔야 남이 만들어놓은 제품을 가져다 꼽으니까

자바의 경우에는 인터페이스 클레스로 콧구멍 규격을 만들어놓고 해당 프레임워크 등을 사용하고 싶은 서비스 개발자는 콧구멍을 구현해서 꼽아넣는다

 

 

JWT는 수 많은 암호화 방식 중 웹에 주로 쓰이는 방식이다

JSON Web Token의 줄임말인데 JSON은 JavaScripts Object Notation을 뜻한다

Token은 쿠키, 세션, 토큰 등의 정보 데이터 전달 및 저장 방식 중 하나이고

이런 식의 사람이 이해할 수 있는 데이터 양식과 토큰 발급 방식을 기반으로 사용자와 서버간에 일부 중요 데이터 및 로그인 보안 인증 데이터를 해쉬 알고리즘을 쓰거나 그걸 구현해놓은 해쉬함수를 써서 데이터 보안을 유지하는 서비스가 JWT이다

 

어떤 식으로 사용하는 지는 제일 이해하기 쉬웠던 분의 참고 사이트

참고사이트 : http://www.opennaru.com/opennaru-blog/jwt-json-web-token/

 

JWT 프로세스

1. 사용자가 id와 password를 입력하여 로그인을 시도합니다.
2. 서버는 요청을 확인하고 secret key를 통해 Access token을 발급합니다.
3. JWT 토큰을 클라이언트에 전달 합니다.
4. 클라이언트에서 API 을 요청할때  클라이언트가 Authorization header에 Access token을 담아서 보냅니다.
5. 서버는 JWT Signature를 체크하고 Payload로부터 사용자 정보를 확인해 데이터를 반환합니다.
6. 클라이언트의 로그인 정보를 서버 메모리에 저장하지 않기 때문에 토큰기반 인증 메커니즘을 제공합니다.
인증이 필요한 경로에 접근할 때 서버 측은 Authorization 헤더에 유효한 JWT 또는 존재하는지 확인한다.
JWT에는 필요한 모든 정보를 토큰에 포함하기 때문에 데이터베이스과 같은 서버와의 커뮤니케이션 오버 헤드를 최소화 할 수 있습니다.
Cross-Origin Resource Sharing (CORS)는 쿠키를 사용하지 않기 때문에 JWT를 채용 한 인증 메커니즘은 두 도메인에서 API를 제공하더라도 문제가 발생하지 않습니다.
일반적으로 JWT 토큰 기반의 인증 시스템은 위와 같은 프로세스로 이루어집니다.
처음 사용자를 등록할 때 Access token과 Refresh token이 모두 발급되어야 합니다.

 

여담) 사용자 인증 방식으로 과거에는 쿠키를 주로 사용했고, 온라인 게임 같은 경우는 로그인 유지를 위해 세션 방식을, 모바일 앱은 토큰 발급 방식 이라고 한다. 최근은 거진 토큰 방식으로 바뀌고 있다고 한다.

 

암호화 알고리즘이 어떻게 돌아가는 지는 만든 개발자나 기업 비밀이고, 심지어 쉽게 알 수 있으면 그게 암호화가 아니기 때문에 암호화 방식이나 암호화 테이블에 따라 다른 이름이 붙는다

 

암호화 input / output 은 웹사이트에서 미리 경험해 볼 수 있다

요새는 방통위 웹페이지 출력(...)이나 구글 클라우드 파일 심사를 피하기 위해 커뮤니티의 일반 사용자들에게도 아주 유용하게 사용되고 있다

 

https://jwt.io/

 

JWT.IO

JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.

jwt.io

https://www.base64decode.org/

 

Base64 Decode and Encode - Online

Decode from Base64 format or encode into it with various advanced options. Our site has an easy to use online tool to convert your data.

www.base64decode.org

 

 

느낀 점:

 

성능이 탁월한 application과 서비스 및 라이브러리를 만들어 주시는 분들을 위해 감사한 마음으로 사용해야겠다

알고리즘 공부를 하면서 이런 외부 서비스 사용에 대해 생각해보는 계기가 생기기도 했는데

결론적으로는 직접 구현을 도전해 보는 것도 좋겠지만 미술로 치면 순수미술 하는 꼴이라 죽고 난 뒤 회자되는 모네가 되기는 싫은 느낌에 가깝다

기업형으로 모두가 달려들어 만드는 것도 아니고, c언어 만든 데니스 리치가 스티브 잡스 보다 일주일 뒤에 사망하셨는데 아는 사람이 거의 없는 눈물나는 상업용 기술 시대에 생산성을 위주로 하는 것은 직종을 불문하고 마찬가지인 것 같다

방망이 깎는 노인도 시대의 흐름을 타야 먹고 살 수 있는게 아닐까

 

 

아쉬웠던 점:

 

알고리즘 너무 어려워요

똑똑해지고 싶어요

'WIL' 카테고리의 다른 글

#6  (0) 2022.10.30
#5  (0) 2022.10.23
#4  (1) 2022.10.19
#3  (0) 2022.10.09
#2  (0) 2022.10.02

+ Recent posts