
“이 ID, 절대로 누군가와 겹치지 않을까요?”
시스템 내에서 데이터를 다룰 때 피할 수 없는 것이 바로 ‘ID(식별자)’ 설계입니다.
“사용자 ID, 그냥 단순한 일련번호로 써도 될까?”, “데이터가 늘어났을 때 다른 서버의 데이터와 겹치면 어떡하지…”
이런 불안을 없애고, 분산된 환경에서도 중앙 관리 없이 ‘전 세계에서 단 하나뿐인 ID’를 즉시 발행할 수 있게 해주는 마법 같은 문자열. 그것이 바로 **UUID (Universally Unique Identifier)**입니다.
UUID: 128비트에 담긴 ‘기적’
UUID는 128비트라는 방대한 정보량을 가지고 있습니다.
그 조합의 수는 전 인류가 평생 매초 10억 개의 UUID를 계속 생성한다고 해도 중복될 확률이 거의 제로에 가깝다고 할 정도입니다.
이 압도적인 ‘안심감’이 있기에 우리는 데이터베이스나 마이크로서비스 사이에서 안심하고 ID를 공유할 수 있는 것입니다.
어떤 버전을 써야 할까? UUID 버전 선택의 포인트
UUID에는 여러 종류가 있지만, 현대의 개발자가 기억해야 할 것은 주로 다음 세 가지입니다.
- Version 4: 완전한 랜덤
- 특징: 완전히 무작위이며 예측 불가능합니다.
- 용도: 세션 ID나 임시 파일명 등 ‘누구와도 겹치지 않으면서 추측 불가능해야 하는 것’에 사용합니다.
- Version 7: 시간순 정렬이 가능한 UUID
- 특징: 타임스탬프가 앞부분에 포함되어 있습니다.
- 용도: 데이터베이스 기본 키(PK). 등록 순서대로 정렬되므로 데이터베이스의 검색 효율(인덱스 성능)을 떨어뜨리지 않으면서 UUID의 장점을 누릴 수 있습니다. 2024년에 표준화된, 현재 가장 주목받는 선택지입니다.
- Version 1: 머신의 증표 (MAC 주소)
- 특징: 어느 머신에서 언제 만들어졌는지 알 수 있습니다.
- 용도: 오래된 시스템이나 특정 기기를 추적해야 하는 경우에 사용합니다.
고민된다면 먼저 만들어 보세요
“UUID는 실제로 어떻게 생겼을까?”, “v4 버전을 한꺼번에 100개쯤 만들고 싶어.”
그럴 때는 저희 사이트의 **UUID 생성 도구**를 활용해 보세요.
버튼을 누를 때마다 세상에 없던 새로운 UUID가 즉시 생성됩니다. 그 무미건조하면서도 든든한 문자열을 보고 있으면 광활한 분산 시스템의 세계가 조금은 가깝게 느껴질지도 모릅니다.
마치며
UUID는 뿔뿔이 흩어져 움직이는 시스템들을 하나로 묶어주는 ‘끈’과 같은 존재입니다.
용도에 맞는 최적의 버전을 선택하여 ID 중복의 걱정에서 해방되세요. 고유성 보장은 도구에 맡기고, 여러분은 더 가치 있는 로직 구현에 에너지를 쏟으시기 바랍니다.