고급 기능
이 가이드는 고급 사용자와 개발자를 위해 JWT Parser 도구의 고급 기능과 활용 방식을 설명합니다.
기록 관리
자동 기록 추적
이 도구는 파싱한 토큰을 브라우저의 로컬 스토리지에 자동으로 저장합니다.
- 지속 저장: 브라우저를 다시 시작해도 기록이 유지됩니다
- 개인정보 우선: 데이터는 브라우저 안에만 저장됩니다
- 자동 정리: 최근 50개의 토큰만 유지됩니다
기록 작업
- 기록에서 불러오기: 기록 항목을 클릭해 해당 토큰을 다시 불러올 수 있습니다
- 기록 비우기: 저장된 기록을 한 번에 모두 삭제할 수 있습니다
- 선택적 재분석: 특정 토큰만 골라 다시 분석할 수 있습니다
기록에 표시되는 정보
각 기록 항목에는 다음 정보가 표시됩니다.
- 알고리즘: 사용된 서명 알고리즘
- 만료 시간: 토큰이 만료되는 시점
- 타임스탬프: 토큰을 파싱한 시간
- 토큰 미리보기: 토큰의 앞 50자
토큰 분석 기능
알고리즘 감지
도구는 다음 항목을 자동으로 식별하고 표시합니다.
- 대칭 알고리즘: HS256, HS384, HS512
- 비대칭 알고리즘: RS256, RS384, RS512, ES256, ES384, ES512
- none 알고리즘: 서명되지 않은 토큰(개발 용도 전용)
만료 분석
- 만료 시간: Unix 타임스탬프를 읽기 쉬운 날짜와 시간으로 변환합니다
- 시간대: 사용자의 로컬 시간대로 표시합니다
- 만료 여부 표시: 토큰이 이미 만료되었는지 명확히 보여줍니다
클레임 분석
- 표준 클레임: RFC 7519 표준 클레임을 자동으로 식별합니다
- 사용자 정의 클레임: 애플리케이션별 클레임을 표시합니다
- 중첩 객체: 복잡한 payload 구조도 처리할 수 있습니다
복사 및 내보내기 기능
구조화된 복사
결과를 복사하면 다음과 같은 구조화된 내용을 얻을 수 있습니다.
Header:
{
"alg": "HS256",
"typ": "JWT"
}
Payload:
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022,
"exp": 1516242622
}
Signature:
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
복사 결과 활용 사례
- 문서화: API 문서에 포함할 수 있습니다
- 디버깅 공유: 팀원과 분석 결과를 공유할 수 있습니다
- 테스트: 자동화된 테스트 시나리오에 활용할 수 있습니다
- 보고서: 보안 감사 보고서에 포함할 수 있습니다
오류 처리 및 검증
형식 검증
도구는 포괄적인 형식 검사를 수행합니다.
- 구조 검증: 점으로 구분된 정확히 3개의 부분으로 구성되었는지 확인합니다
- Base64URL 검증: 각 부분이 유효한 base64url인지 확인합니다
- JSON 검증: 헤더와 payload가 유효한 JSON인지 확인합니다
오류 메시지
명확하고 실행 가능한 오류 메시지를 제공합니다.
- 잘못된 형식: JWT 구조에 대한 구체적인 안내를 제공합니다
- 파싱 오류: 파싱 실패 원인을 자세히 알려줍니다
- 인코딩 문제: base64url 인코딩 문제 해결을 돕습니다
통합 패턴
개발 워크플로 통합
- API 테스트: API 응답의 토큰을 파싱합니다
- 인증 디버깅: 개발 중 토큰을 분석합니다
- 코드 리뷰: pull request에서 토큰 구조를 검토합니다
- 문서화: API 문서용 예제를 생성합니다
테스트 통합
- 단위 테스트: 파싱된 데이터를 assertion에 활용합니다
- 통합 테스트: 테스트 시나리오에서 토큰 구조를 검증합니다
- 보안 테스트: 토큰의 잠재적 보안 취약점을 분석합니다
성능 고려 사항
클라이언트 측 처리
- 네트워크 호출 없음: 모든 파싱은 브라우저 안에서 이루어집니다
- 빠른 처리: 대부분의 토큰은 즉시 결과를 제공합니다
- 메모리 효율적: 메모리 사용량이 적습니다
- 오프라인 지원: 인터넷 연결 없이도 동작합니다
대형 토큰 처리
- 크기 제한: 브라우저 메모리 한도 내 토큰을 처리할 수 있습니다
- 성능 최적화: 일반적인 JWT 크기에 맞게 최적화되어 있습니다
- 오류 처리: 지나치게 큰 토큰도 안정적으로 처리합니다
브라우저 호환성
지원 브라우저
- Chrome: 완전 지원(권장)
- Firefox: 완전 지원
- Safari: 완전 지원
- Edge: 완전 지원
필요한 기능
- Local Storage: 기록 기능에 사용됩니다
- Clipboard API: 복사 기능에 사용됩니다
- JSON Parsing: 토큰 분석에 사용됩니다
보안 모범 사례
토큰 처리
- 토큰을 로그에 남기지 않기: 민감한 토큰을 로그에 기록하지 마세요
- 안전한 환경 사용: 안전하고 비공개인 환경에서만 사용하세요
- 정기 정리: 기록을 주기적으로 삭제하세요
- 접근 제어: 승인된 사용자만 도구에 접근하도록 하세요
데이터 개인정보 보호
- 로컬 저장만 사용: 외부 서버로 데이터가 전송되지 않습니다
- 브라우저 격리: 데이터는 브라우저 안에만 머뭅니다
- 즉시 정리: 작업 맥락을 바꿀 때 데이터를 삭제하세요
문제 해결
일반적인 문제
- 토큰이 파싱되지 않음: 형식과 인코딩을 확인하세요
- 기록이 저장되지 않음: 브라우저가 로컬 스토리지를 지원하는지 확인하세요
- 복사가 작동하지 않음: 브라우저 클립보드 권한을 확인하세요
- 표시 문제: 페이지를 새로고침해 보세요
디버그 팁
- 콘솔 확인: JavaScript 오류가 있는지 확인하세요
- 형식 확인: 토큰 구조가 올바른지 확인하세요
- 예제 사용: 내장 예제 토큰으로 먼저 테스트해 보세요
- 캐시 지우기: 필요하면 브라우저 캐시를 비워 보세요
API 참조
토큰 구조
interface ParsedJWT {
header: string; // 포맷된 JSON 문자열
payload: string; // 포맷된 JSON 문자열
signature: string; // 원시 서명
}
interface JWTInfo {
algorithm: string; // 서명 알고리즘
type: string; // 토큰 유형
expires: string; // 만료 시간
}
기록 구조
interface HistoryRecord {
id: string; // 고유 식별자
token: string; // 전체 JWT 토큰
algorithm: string; // 서명 알고리즘
expires: string; // 만료 시간
timestamp: number; // 파싱 시각
}