팁 & 트릭

UUID가 중복될 확률은 얼마나 될까 알아봤다

UUID가 뭔가요

Universally Unique Identifier입니다. 전 세계에서 유일한 식별자입니다. 128비트 숫자로 되어 있습니다. 8-4-4-4-12 형식으로 표시됩니다. 예를 들면 550e8400-e29b-41d4-a716-446655440000 같은 식입니다. 중복될 확률이 사실상 0입니다.

왜 필요한가요

데이터베이스에서 레코드를 식별해야 합니다. 자동 증가 번호를 쓰면 분산 환경에서 충돌합니다. 서버가 여러 대면 같은 번호가 생길 수 있습니다. UUID는 각 서버에서 독립적으로 만들어도 겹치지 않습니다. 분산 시스템에 필수입니다.

버전이 여러 개

UUID 버전 1은 MAC 주소와 시간을 조합합니다. 버전 4는 완전 랜덤입니다. 가장 많이 쓰입니다. 버전 5는 네임스페이스와 이름을 해시합니다. 보통은 버전 4를 쓰면 됩니다. 무작위로 생성되어 예측이 불가능합니다.

URL과 API에서

API에서 리소스 식별에 UUID를 씁니다. /users/550e8400-e29b-41d4... 이런 식입니다. 순차 ID보다 보안에 좋습니다. 다음 ID를 추측하기 어렵습니다. 파일 이름에도 씁니다. 업로드한 파일이 겹치지 않게 UUID를 붙입니다.

데이터베이스 저장

문자열로 저장하면 36바이트입니다. 바이너리로 저장하면 16바이트로 줄어듭니다. 인덱스 성능을 고려해야 합니다. 랜덤 UUID는 인덱스 분산이 심합니다. 순차 UUID나 ULID를 쓰는 곳도 있습니다. 상황에 맞게 선택하세요.

UUID 생성 도구

UUID 생성기에서 클릭 한 번으로 UUID를 만들 수 있습니다. 여러 개를 한꺼번에 생성하는 것도 됩니다. 복사해서 코드에 바로 쓰세요. 개발할 때 편리합니다. URL 인코더와 함께 개발 도구로 활용하세요.