동시 접속 사용자 수가 증가함에 따라 세션(Session)의 수도 함께 늘어나며 세션 서버에 과도한 부하가 발생하게 됩니다.
DAT는 이러한 세션 서버의 부하 문제를 해결하고, 서버 간 상태를 공유하지 않는(Stateless) 효율적인 인증을 구현하기 위해 고안된 토큰 스펙입니다.
만료 시간 : uint64 (Unix Time)
CID : Hex (uint64)
평문 데이터 : Base64Url (Binary)
암호화 데이터 : Base64Url (Binary)
서명 : Base64Url (Binary)
DAT와 JWT(JSON Web Token)는 점(.)으로 구분된 토큰 구조와 서명(signature)을 통한 검증 방식을 공유하지만, 내부 설계에서 다음과 같은 핵심적인 차이점이 있습니다.
JWT 구조
| header | body | signature |
|---|---|---|
| Base64Url (JSON String) | Base64Url (JSON String) | Base64Url (Binary) |
DAT 구조
| 만료 시간 | CID | 평문 데이터 | 암호화 데이터 | 서명 |
|---|---|---|---|---|
| Unixtime (uint64) | Hex (uint64) | Base64Url (Binary) | Base64Url (Encrypt Binary) | Base64Url (Binary) |
암호화 데이터 (secure) 필드): JWT는 기본적으로 페이로드(Payload)가 평문으로 노출되어 암호화가 필요할 경우 JWE 같은 별도 스펙을 적용해야 합니다. 반면, DAT는 암호화 데이터 필드를 통해 토큰 자체적으로 암호화 기능을 지원합니다.exp (Claims) 필드가 선택 사항이지만, DAT는 만료 시간 (expire) 필드가 토큰 구조상에 강제되어 있어 유효기간 검증이 필수적으로 수행됩니다.