식별자와 시간

Snowflake 디코더

ID를 해석하기 전에 발급 시스템의 레이아웃을 선택하세요.

Snowflake 디코더

십진 Snowflake ID

결과 보고서

모든 ID 계산은 브라우저에서 처리하며 입력을 업로드하지 않습니다.

옵션

십진 ID 하나를 최대 256자로 입력하세요. URL과 목록은 지원하지 않습니다.

Twitter snowflake-2010: 41/5/5/12. 상위 노드는 데이터센터, 하위는 워커이며 예약 부호 비트는 0입니다. 출처 보기

ID를 입력하거나 예제를 불러오세요.

로그에 생성 시각 없이 긴 ID만 남았다면 Snowflake 디코더로 시간 필드를 확인할 수 있습니다. 같은 숫자도 에포크에 따라 서로 다른 날짜가 됩니다. 날짜가 그럴듯해 보이는 것만으로 출처를 판단하지 말고, 발급 시스템의 설정부터 대조하세요.

Snowflake 디코더를 사용하는 이유

플랫폼마다 다른 비트 해석

Snowflake 디코더는 Twitter 원본과 Discord를 구분합니다. 시간 필드는 각각 41비트와 42비트이며 노드의 두 하위 필드 이름도 다릅니다. 선택한 프리셋의 에포크와 출처를 함께 보면서 시각 차이의 원인을 좁힐 수 있습니다.

한 식별자를 시간, 두 노드 하위 필드, 시퀀스로 나누고 시간 필드를 시계와 연결한 그림.

같은 테스트 값을 다시 만들기

밀리초 시간, 노드, 시퀀스를 고정하면 같은 ID가 나옵니다. 비트별 그룹을 애플리케이션의 마스크와 비교하거나 사용자 지정 설정에서 경계를 바꿔 보세요. 실제 데이터에 손대지 않고 필드 조합 오류를 확인할 수 있습니다.

시간, 노드, 시퀀스의 경계가 서로 다른 두 연속 비트 레이아웃.

먼저 확인할 세 가지

01

발급 규칙부터 선택

Twitter 원본은 보관된 snowflake-2010 코드의 형식입니다. Discord는 공식 부호 없는 형식을 사용합니다. 자체 시스템이라면 사용자 지정을 선택하고 에포크와 세 필드의 비트 수를 직접 입력하세요.

02

밀리초와 합쳐진 노드 값 확인

에포크와 생성 시간 모두 Unix 밀리초를 받습니다. 프리셋의 노드는 상위 값 × 32 + 하위 값입니다. Twitter는 데이터센터와 워커, Discord는 워커와 프로세스를 합친 값입니다.

03

새 결과가 나왔는지 확인

자동 디코딩은 마지막 변경 후 350ms 뒤에 실행됩니다. 끄면 버튼이나 Ctrl/Cmd + Enter로 실행할 수 있습니다. 입력이 바뀌면 내보내기가 비활성화되며, 테스트 ID 생성은 언제나 직접 실행해야 합니다.

정수에 담긴 필드 확인

큰 정수의 마지막 자리 유지

Snowflake ID 날짜 변환기는 십진 문자열을 BigInt로 읽습니다. Discord 예제 175928847299117063은 2016-04-30T11:18:25.796Z, 노드 32, 시퀀스 7로 해석됩니다. 부동소수점에서 같아질 수 있는 인접한 번호도 구분합니다.

시간과 비트 그룹 함께 보기

타임스탬프 변환기는 UTC, Unix 밀리초, 에포크 이후 경과 시간을 보여 줍니다. 이진수 앞의 0도 유지합니다. Twitter의 예약 부호 비트는 0으로 표시하고 Discord는 64비트 전체를 사용합니다.

자체 레이아웃 조정

상위부터 시간, 노드, 시퀀스가 연속으로 배치됩니다. 노드나 시퀀스에 0비트를 할당하면 값도 0이어야 합니다. 필드에 맞지 않는 값을 잘라 넣지 않고 거부하므로 옆 필드가 조용히 바뀌지 않습니다.

재현 가능한 테스트 데이터

시간을 직접 입력하면 동일한 ID를 다시 만들 수 있습니다. 비워 두면 실행한 순간의 현재 시간을 씁니다. 결과를 즉시 반대로 해석하며 ID를 복사하거나 레이아웃을 포함한 JSON 보고서를 다운로드할 수 있습니다.

결과를 해석할 때의 한계

플랫폼을 자동으로 맞히지 않음
숫자 안에는 플랫폼 이름이 없습니다. 잘못된 에포크로도 정상처럼 보이는 날짜가 나올 수 있습니다. Twitter 원본 프리셋이 현재 X의 모든 내부 구현을 뜻하는 것도 아닙니다.
연속 필드와 최대 64비트
시간은 최소 1비트, 세 필드 합계는 최대 64비트입니다. 초, 마이크로초, 떨어진 비트 위치나 다른 순서는 지원하지 않습니다. 자체 발급기의 단위와 배치를 먼저 확인하세요.
십진 ID 하나만 입력
앞뒤 공백과 앞자리 0은 허용합니다. 음수 ID, 소수, 지수 표기, 16진수, URL, 여러 값은 거부합니다. 각 숫자 입력은 256자 이내이며 내보낸 정수도 문자열로 보존합니다.
고유 번호 발급 서버가 아님
같은 조건이면 같은 ID가 만들어집니다. 워커 할당, 영구 카운터, 시계 역행 조정은 없습니다. 레이아웃에 들어가면 0과 미래 시간도 테스트할 수 있으며 실제 객체가 있다는 뜻은 아닙니다.
게시물이나 프로필을 조회하지 않음
시간과 내부 필드 값만 읽으며 사용자 이름, 메시지 내용, 서버 위치는 알 수 없습니다. API로 객체 존재 여부를 검증하지 않습니다. Date가 표현할 수 없는 시간은 잘라내지 않고 오류로 처리합니다.

Snowflake 디코더 자주 묻는 질문

Discord 사용자나 메시지 ID는 어디에서 복사하나요?

Discord의 개발자 모드를 켠 뒤 대상의 메뉴에서 ID 복사를 선택하세요. Snowflake 디코더에서는 Discord 프리셋으로 그 숫자를 읽습니다. 메시지 링크 대신 ID만 입력하며 사용자 이름으로 번호를 검색하는 기능은 없습니다.

Twitter Snowflake 에포크는 언제인가요?

원본의 기준은 2010-11-04T01:42:54.657Z, 즉 Unix 밀리초 1288834974657입니다. Discord는 1420070400000을 사용합니다. 에포크가 다르면 같은 시간 비트가 다른 실제 시각으로 바뀝니다.

Snowflake 이전의 트윗 ID에서도 날짜를 알 수 있나요?

아니요. 예전의 단순 증가 번호에는 이 방식의 시간 정보가 없습니다. 이 도구는 숫자를 지정한 레이아웃으로 해석하므로 짧은 숫자에서도 날짜가 나올 수 있지만, 그것을 실제 게시 시각으로 사용하면 안 됩니다.

복원한 시간은 얼마나 정밀한가요?

지원하는 형식은 밀리초 단위입니다. 비트 연산으로 저장된 밀리초를 정확히 읽지만 원래 시스템 시계의 정확도나 실제 사건 발생 시각까지 보증하지는 않습니다. 입력 전 숫자가 반올림됐다면 원본 문자열을 다시 확보해야 합니다.

역으로 만든 ID는 실제 트윗인가요?

아니요. 선택한 시간과 노드, 시퀀스를 조합한 테스트 값입니다. 노드와 시퀀스를 모두 0으로 두면 해당 밀리초의 가장 작은 값이 됩니다. 반복 생성은 같은 결과를 만들며 게시물 존재 여부는 확인하지 않습니다.

다른 레이아웃이 필요한가요?

다음 ID 확인하기

Snowflake 디코더로 원본 ID와 설정을 대조하고, 시간 및 하위 필드를 확인한 뒤 보고서를 디버깅 기록에 남기세요.