🔑 UUID / ULID 자동 생성기

데이터베이스 PK 설계와 더미 데이터 생성을 위한 고유 식별자 툴

❤️ 이 무료 툴이 업무에 도움이 되셨나요?

아래 추천 상품을 클릭 한 번 해주시는 것만으로도 서버 유지보수에 아주 큰 힘이 됩니다!

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

UUID v4·ULID·Nil UUID의 차이

식별자는 레코드를 구분하기 위한 값입니다. 난수 기반 ID의 충돌 가능성은 작아도 0이라고 보장할 수 없으므로, 데이터베이스의 고유 제약과 충돌 처리도 필요합니다. 식별자를 안다는 이유만으로 자원에 접근할 수 있게 만들면 안 됩니다.

종류표현선택 기준
UUID v436자, 16진수와 하이픈시간 정보 없이 난수 기반으로 생성합니다. 기존 API가 UUID를 요구할 때 적합합니다.
ULID26자 Crockford Base32앞부분에 밀리초 시각이 들어갑니다. 생성 시각 공개와 문자열 정렬 조건을 고려하세요.
Nil UUID00000000-0000-0000-0000-000000000000값 없음을 나타내는 특수 값이며 매번 동일합니다.

데이터베이스 저장 방식을 먼저 확인하세요

문자열·바이너리 타입, 키 길이, 인덱스와 쓰기 패턴에 따라 성능이 달라집니다. ULID로 바꾸면 항상 빠르다고 단정할 수 없습니다. 서비스에서 사용 중인 ID 타입과 직렬화 형식에 맞춰 테스트 데이터를 준비하세요.

형식 검사의 범위

UUID 검사에서는 일반 표기의 버전과 variant 위치를 확인하고, ULID에서는 허용 문자·길이·상한 범위를 확인합니다. 서버에서 발급된 값인지, 외부 데이터베이스에도 같은 값이 있는지는 확인하지 않습니다. UUID의 하이픈도 URL에서 사용할 수 있는 문자입니다.

생성 목록 내보내기와 형식 검사

형식 검사는 실제 발급 여부나 데이터베이스 중복 여부를 확인하지 않습니다.

식별자 선택과 사용 예시

테스트 API의 요청 ID

UUID v4를 생성해 요청 추적용 가상 데이터로 쓸 수 있습니다. 생성 목록을 JSON으로 내보내면 테스트 픽스처 배열에 넣기 쉽습니다. 목록 전체가 고유해야 하는 데이터베이스에서는 UNIQUE 제약도 함께 사용하세요.

ULID의 정렬 범위

ULID에는 생성 시각이 들어갑니다. 여기서는 같은 밀리초에 생성한 값의 순서까지 보장하는 monotonic 생성기를 사용하지 않습니다. 대소문자와 정렬 규칙을 통일하고, 생성 시각을 숨겨야 하는 공개 식별자인지도 고려하세요.

Nil UUID는 고유 값이 아닙니다

0으로만 채운 UUID는 ‘값 없음’을 표현하는 특수 값입니다. 여러 개를 생성해도 모두 같으므로 고유 키나 보안 토큰으로 사용하지 마세요. 이 도구의 식별자는 접근 권한 확인을 대신하지 않습니다.

생성은 브라우저 보안 난수로 처리하며 도구 코드가 입력·출력을 서버로 전송하거나 저장하지 않습니다. 페이지 광고는 별도 외부 요청을 사용합니다. ULID 형식 명세