DAT Go 라이브러리
GitHub pkg.go.dev설치
bash
빠르게 사용하기
CMS에서 인증서를 받은 뒤 JSON 데이터를 담아 DAT를 만들고 다시 검증하는 전체 흐름입니다.
go
차근차근 사용하기
1. CMS 연결
발급 서비스는 전체 인증서용 토큰을 사용합니다. 시작 시 즉시 동기화하면 인증서가 없는 상태에서 발급하는 일을 막을 수 있습니다.
go
2. DAT 발급
plain에는 공개 가능한 JSON을, secure에는 보호할 사용자 정보를 JSON으로 넣었습니다.
go
3. DAT 검증
parse는 만료와 서명을 확인하고 secure를 복호화합니다. 검증이 끝난 payload만 사용합니다.
go
주요 함수
| 함수 | 용도 |
|---|---|
Sync() | 인증서를 즉시 동기화합니다. |
Issue(plain, secure) | DAT 문자열과 error를 반환합니다. |
Parse(dat) | 검증된 Payload와 error를 반환합니다. |
LastError() | 마지막 동기화 오류를 확인합니다. |
데이터 구분
plain: 서명되지만 암호화되지 않는 바이트입니다.secure: 암호화되는 바이트입니다.payload:parse가 성공한 뒤에만 신뢰합니다.
JSON 외의 선택지
예제는 익숙한 JSON을 사용했습니다. 더 빠른 처리가 필요하면 바이너리를 사용해 JSON 직렬화와 파싱을 생략하고 데이터 크기도 줄일 수 있습니다.
간단한 값은 텍스트로, 구조화된 데이터는 Protobuf·MessagePack 같은 바이너리 형식으로 plain과 secure에 담을 수 있습니다.
go
Go 문자열은 바이트를 담을 수 있습니다. 바이트 슬라이스를 string으로 전달하고 결과를 다시 []byte로 변환합니다.
검증 전용 서비스
DAT를 발급하지 않는 서비스는 verify-only 옵션과 검증 전용 토큰을 사용하고 parse만 호출합니다.
종료와 오류
자동 동기화를 사용하면 defer cms.Close()로 종료를 보장합니다.
오류 메시지 대신 오류 코드와 재시도 분류를 사용합니다.