본문 바로가기

IT

JSON (JavaScript Object Notation), JWT (JSON Web Tokens)란?

반응형

JSON (JavaScript Object Notation)과 JWT (JSON Web Tokens)는 웹 및 애플리케이션 개발에서 널리 사용되는 데이터 형식과 표준이다.

JSON (JavaScript Object Notation)
 JSON은 데이터 교환 형식으로 널리 사용되며, 사람이 읽을 수 있고 기계로도 쉽게 파싱할 수 있는 간단하면서도 강력한 형식이다. JSON은 이름-값 쌍 (name-value pairs)의 구조로 데이터를 표현하며, 배열이나 객체를 중첩하는 것도 가능하다.

예)
json
Copy code
{
  "name": "John",
  "age": 30,
  "city": "New York"
}
여기서 'name', 'age', 'city'는 속성 이름이고, "John", 30, "New York"는 해당 속성의 값이다.

JWT (JSON Web Tokens)
 JWT는 웹에서 인증 정보를 안전하게 전송하기 위한 개방형 표준이다. JWT는 JSON 객체를 사용하여 정보를 인코딩하며, Header, Payload, Signature 세 부분으로 구성된다.

 1. Header: 토큰의 유형 (JWT)과 사용된 해싱 알고리즘 (예: HMAC SHA256 또는 RSA)을 포함한다.
 2. Payload: 토큰에 포함할 실제 정보 (클레임)를 포함한다. 클레임은 사용자 정보나 다른 데이터를 포함할 수 있다.
 3. Signature: 토큰을 검증하기 위한 시그니처이다. 이는 header, payload, 그리고 'secret'을 특정 해싱 알고리즘으로 처리하여 생성한다.

이 세 부분은 점 (.)으로 구분되어 문자열로 표현되며, 최종적으로 JWT는 다음과 같은 형태가 된다.

xxxxx.yyyyy.zzzzz

여기서 'xxxxx'는 Header, 'yyyyy'는 Payload, 'zzzzz'는 Signature를 인코딩한 것이다.


JWT는 정보의 신뢰성을 보장하기 위해 디지털 서명이 포함되어 있으며, JWT는 정보를 URL 안전 문자열로 인코딩하기 때문에 HTTP 헤더에 쉽게 포함시킬 수 있어, RESTful 서비스에서 인증이나 정보 교환 방식으로 널리 사용된다.

 

반응형