유틸리티

UUID가 뭔가요? 개발자가 알아야 할 고유 식별자의 모든 것

데이터베이스를 다루다 보면 UUID라는 단어를 만나게 됩니다. 1, 2, 3 같은 숫자 대신 왜 이렇게 복잡한 문자열을 사용하는 걸까요? UUID의 정의와 활용법을 알아보겠습니다.

UUID의 정의

UUID(Universally Unique Identifier)는 전 세계에서 유일한 식별자를 만들기 위한 표준입니다. 128비트 숫자로 구성되며, 보통 "550e8400-e29b-41d4-a716-446655440000" 같은 형태로 표현됩니다.

왜 UUID를 사용할까?

숫자 ID(1, 2, 3...)는 데이터베이스 한 곳에서만 유일합니다. 여러 서버의 데이터를 합치거나, 분산 시스템에서는 ID가 충돌할 수 있습니다. UUID는 어디서 생성하든 겹칠 확률이 거의 0에 가깝습니다.

UUID 버전별 특징

  • UUID v1: 타임스탬프와 MAC 주소 기반 (시간순 정렬 가능)
  • UUID v4: 완전 랜덤 생성 (가장 많이 사용)
  • UUID v5: 네임스페이스와 이름으로 해시 생성
  • UUID v7: 시간 기반 정렬 가능한 최신 버전

실무에서의 활용

회원 가입 시 user_id, 주문 생성 시 order_id, 파일 업로드 시 file_id 등에 UUID가 사용됩니다. UUID 생성기를 활용하면 테스트용 UUID를 빠르게 만들 수 있습니다.

UUID vs Auto Increment

구분UUIDAuto Increment
유일성전역 유일테이블 내 유일
크기36자숫자 (작음)
예측 가능성불가능쉽게 예측
분산 시스템적합부적합

개발 시 UUID 생성하기

대부분의 프로그래밍 언어에 UUID 라이브러리가 있습니다. 하지만 빠르게 확인하거나 테스트 데이터가 필요할 때는 온라인 UUID 생성 도구가 편리합니다. 한 번에 여러 개를 생성할 수도 있습니다.

UUID 사용 시 주의점

UUID는 인덱스 성능에 영향을 줄 수 있습니다. 특히 UUID v4는 완전 랜덤이라 B-tree 인덱스에서 삽입 성능이 떨어질 수 있습니다. 이런 경우 시간순 정렬이 가능한 UUID v7이나 ULID를 고려해보세요.