w

고급 기능

이 가이드는 고급 사용자와 개발자를 위해 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 인코딩 문제 해결을 돕습니다

통합 패턴

개발 워크플로 통합

  1. API 테스트: API 응답의 토큰을 파싱합니다
  2. 인증 디버깅: 개발 중 토큰을 분석합니다
  3. 코드 리뷰: pull request에서 토큰 구조를 검토합니다
  4. 문서화: API 문서용 예제를 생성합니다

테스트 통합

  • 단위 테스트: 파싱된 데이터를 assertion에 활용합니다
  • 통합 테스트: 테스트 시나리오에서 토큰 구조를 검증합니다
  • 보안 테스트: 토큰의 잠재적 보안 취약점을 분석합니다

성능 고려 사항

클라이언트 측 처리

  • 네트워크 호출 없음: 모든 파싱은 브라우저 안에서 이루어집니다
  • 빠른 처리: 대부분의 토큰은 즉시 결과를 제공합니다
  • 메모리 효율적: 메모리 사용량이 적습니다
  • 오프라인 지원: 인터넷 연결 없이도 동작합니다

대형 토큰 처리

  • 크기 제한: 브라우저 메모리 한도 내 토큰을 처리할 수 있습니다
  • 성능 최적화: 일반적인 JWT 크기에 맞게 최적화되어 있습니다
  • 오류 처리: 지나치게 큰 토큰도 안정적으로 처리합니다

브라우저 호환성

지원 브라우저

  • Chrome: 완전 지원(권장)
  • Firefox: 완전 지원
  • Safari: 완전 지원
  • Edge: 완전 지원

필요한 기능

  • Local Storage: 기록 기능에 사용됩니다
  • Clipboard API: 복사 기능에 사용됩니다
  • JSON Parsing: 토큰 분석에 사용됩니다

보안 모범 사례

토큰 처리

  • 토큰을 로그에 남기지 않기: 민감한 토큰을 로그에 기록하지 마세요
  • 안전한 환경 사용: 안전하고 비공개인 환경에서만 사용하세요
  • 정기 정리: 기록을 주기적으로 삭제하세요
  • 접근 제어: 승인된 사용자만 도구에 접근하도록 하세요

데이터 개인정보 보호

  • 로컬 저장만 사용: 외부 서버로 데이터가 전송되지 않습니다
  • 브라우저 격리: 데이터는 브라우저 안에만 머뭅니다
  • 즉시 정리: 작업 맥락을 바꿀 때 데이터를 삭제하세요

문제 해결

일반적인 문제

  1. 토큰이 파싱되지 않음: 형식과 인코딩을 확인하세요
  2. 기록이 저장되지 않음: 브라우저가 로컬 스토리지를 지원하는지 확인하세요
  3. 복사가 작동하지 않음: 브라우저 클립보드 권한을 확인하세요
  4. 표시 문제: 페이지를 새로고침해 보세요

디버그 팁

  • 콘솔 확인: 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; // 파싱 시각
}

다음 단계

중요한 보안 지침은 보안 고려 사항에서 확인하고, 실제 사용 시나리오는 예제에서 살펴보세요.

이 페이지가 도움이 되었나요?