AZ Tools

Snowflake ID 디코더 (Discord, Twitter)

개발

Snowflake는 밀리초 타임스탬프, 머신 식별자, 밀리초당 시퀀스 카운터를 하나의 정렬 가능한 수에 담은 64비트 ID입니다. Discord, Twitter/X, Instagram을 비롯한 많은 분산 시스템이 이를 사용합니다. 이 디코더는 ID를 다시 부분으로 분리합니다: 상위 비트를 시프트해 원시 타임스탬프를 복원하고, 플랫폼의 커스텀 에폭을 더해 실제 UTC 날짜·시각을 얻으며, 하위 비트를 해당 플랫폼이 쓰는 워커·프로세스·데이터센터·샤드·시퀀스 필드로 분해합니다. Discord(에폭 2015-01-01, 5비트 워커 + 5비트 프로세스 + 12비트 증가값), Twitter/X(에폭 2010-11-04, 5+5+12), Instagram(13비트 샤드 + 10비트 시퀀스), 또는 직접 에폭을 정하는 커스텀 중에서 선택하세요. 타임스탬프는 ISO UTC, 로컬 시간, 상대 표시 "x 전", 원시 에폭 밀리초로 표시됩니다. 모든 처리는 로컬에서 실행되며 업로드되지 않습니다.

타임스탬프

UTC2016-04-30T11:18:25.796Z
로컬4/30/2016, 11:18:25 AM
상대10y 2mo 전
에폭 ms1462015105796
원시 타임스탬프41944705796

필드

워커 (5b)1
프로세스 (5b)0
증가값 (12b)7

Discord 에폭 2015-01-01 · Twitter/X 2010-11-04 · Instagram 2011-08-24. ID를 발급한 플랫폼으로 디코딩하세요.

사용법

  1. 플랫폼 선택(Discord·Twitter/X·Instagram·커스텀).
  2. Snowflake ID 붙여넣기 — 예: Discord 사용자 또는 메시지 ID.
  3. 생성 타임스탬프와 워커 / 시퀀스 필드를 읽고, 필요하면 UTC 시간이나 에폭을 복사하세요.

자주 묻는 질문

Snowflake ID는 어디서 찾나요?
Discord에서는 개발자 모드를 켜고 사용자·메시지·채널·서버를 우클릭해 ID를 복사합니다. Twitter/X에서는 트윗 URL 끝의 긴 숫자입니다. Instagram 미디어 ID는 API가 반환합니다. 이런 긴 숫자 ID는 모두 여기서 디코딩할 수 있습니다.
왜 플랫폼마다 다른 에폭이 필요한가요?
Snowflake의 타임스탬프는 Unix 에폭이 아니라 선택된 '에폭' 이후 밀리초를 세므로 더 적은 비트에 담깁니다. Discord는 2015-01-01, Twitter/X는 2010-11-04, Instagram은 2011-08-24를 씁니다. 잘못된 플랫폼으로 디코딩하면 날짜가 수년 어긋납니다 — ID를 발급한 출처를 고르세요.
워커와 시퀀스 필드는 무엇인가요?
조정 없이 ID를 생성하기 위해 각 머신은 자체 식별자(Discord의 워커/프로세스, Twitter의 데이터센터+워커, Instagram의 샤드)와 같은 밀리초에 생성된 여러 ID에 대해 증가하는 시퀀스 카운터를 넣습니다. 이를 통해 어떤 노드가 ID를 만들었고 대략 얼마나 바빴는지 알 수 있습니다.
타임스탬프는 정확한가요?
네 — 밀리초 타임스탬프가 ID에 직접 인코딩되므로 생성 시각은 밀리초 단위로 정확합니다(생성 서버의 시계가 정확했다는 전제). 상대 시간은 사용자 기기의 현재 시계를 기준으로 계산됩니다.

관련 도구