본문 바로가기

ULID 생성기

시간순으로 정렬되는 고유 식별자(ULID)를 원하는 개수만큼 만듭니다.

로딩 중...

왜 만들었나요

UUID를 기본키로 쓰다가 데이터가 쌓이니 정렬이 뒤죽박죽이라 최근 것을 찾기가 번거로웠습니다. 만든 순서대로 늘어서는 식별자가 필요해서 ULID를 쓰기 시작했고, 뽑을 때마다 콘솔을 여는 게 귀찮아 만들었습니다.

Note

만들어진 값은 서버로 전송되지 않습니다. 생성이 전부 브라우저 안에서 이뤄집니다.


사용 방법

  1. 개수를 정하고 다시 생성을 누르면 목록이 만들어집니다.

  2. 각 줄을 클릭하면 그 값만, 전체 복사 버튼을 누르면 목록 전체가 줄바꿈으로 구분되어 복사됩니다.

이렇게 나옵니다

3개를 뽑으면 이렇게 나옵니다.

01JCXQZ8K2 9WYFTM3B7N5RGVD
01JCXQZ8K2 QH4PJXNC6EA2SVT     ← 앞 10자리가 같음(같은 시각)
01JCXQZ8K3 M8DFR9KTZW7YBXQ     ← 시간이 지나면 앞자리가 커짐

앞 10자리가 만든 시각, 뒤 16자리가 무작위입니다. 글자 순서대로 정렬하면 곧 시간순이 됩니다.

알아두면 좋은 것

UUID와 뭐가 다른가

ULIDUUID v4
길이26글자36글자 (하이픈 포함)
정렬시간순으로 정렬됨무작위라 정렬 의미 없음
하이픈없음있음
대소문자대문자만소문자

데이터베이스 기본키로 쓸 때 차이가 큽니다. 시간순으로 늘어서면 최근 데이터가 한곳에 모여 저장되어, 조회와 삽입이 빨라집니다.

헷갈리는 글자를 뺐습니다

I, L, O, U는 쓰지 않습니다. 숫자 1·0과 헷갈리기 쉬워서, 사람이 눈으로 옮겨 적을 때 실수를 줄이려고 뺀 것입니다.

이런 경우에는

같은 시각에 만든 값이 순서대로 나오나요

같은 밀리초 안에서 여러 개를 만들면 앞 10자리가 같습니다. 그 안에서의 순서는 무작위 부분에 달려 있어 보장되지 않습니다. 정확한 순서가 필요하면 별도 순번을 함께 두세요.

만든 시각이 노출되나요

앞 10자리를 풀면 밀리초 단위 생성 시각을 알 수 있습니다. 대개는 문제없지만, 언제 만들어졌는지 감추어야 하는 값이라면 UUID 생성기의 v4를 쓰세요.

이 도구로는 안 되는 것

  • 비밀번호나 토큰으로 쓰지 마세요. 앞자리가 시간이라 추측 가능한 부분이 있습니다 — 비밀번호 생성기를 쓰세요

용어 설명

ULID

시간 정보를 앞에 담은 고유 식별자입니다. UUID처럼 겹치지 않으면서도 만든 순서대로 정렬된다는 점이 다릅니다.

기본키

데이터베이스에서 각 행을 구분하는 대표 값입니다. 겹치면 안 되고 자주 조회되기 때문에, 어떤 형태를 쓰느냐가 성능에 영향을 줍니다.

자주 묻는 질문

ULID는 UUID 시스템과 비교했을 때 어떤 장점이 있나요?

가장 큰 장점은 '정렬 가능성'과 '가독성'입니다. 타임스탬프를 기반으로 생성되기 때문에 데이터베이스에 저장할 때 시간 순서대로 정렬하기 유리하여 인덱싱 효율이 좋습니다. 또한, 길이가 26자로 더 짧고, 헷갈리기 쉬운 영문자(I, L, O 등)와 특수기호(하이픈)를 제외하여 URL이나 텍스트 식별자로 사용하기 훨씬 편리합니다.

생성되는 값의 중복 가능성은 어느 정도인가요?

중복 확률은 사실상 0에 가깝습니다. 뒷부분의 16자리는 암호학적으로 안전한 무작위 난수로 생성되며, 이는 1밀리초라는 아주 짧은 시간 동안 약 1.21e24개의 고유한 조합을 만들어낼 수 있는 크기입니다. 따라서 어떠한 대규모 분산 환경에서도 안심하고 사용할 수 있습니다.

이 도구에서 식별자를 생성할 때 서버에 로그가 남나요?

아니요, 전혀 남지 않습니다. utilzip의 생성 기능은 사용자가 접속한 기기의 웹 브라우저 메모리 안에서 자체적으로 연산을 수행합니다. 외부 서버와의 데이터 통신 없이 독립적으로 동작하므로, 민감한 프로젝트나 실무 환경에서도 정보 유출 걱정 없이 안전하게 활용할 수 있습니다.

마지막 업데이트: 2026년 8월