개발 도구
UUID와 순차 ID, 데이터베이스 설계에서의 선택 기준
데이터베이스 테이블의 기본 키를 설계할 때 순차 증가하는 정수(auto increment)를 쓸지, UUID 같은 무작위 문자열을 쓸지는 생각보다 중요한 선택입니다.
순차 ID는 크기가 작고(보통 4~8바이트) 인덱스 성능이 좋으며, 값 자체가 생성 순서를 의미해 정렬이나 페이징에 유리합니다. 다만 다음 값을 쉽게 추측할 수 있어, URL에 그대로 노출하면 "다른 사용자의 ID를 순서대로 대입해 접근하는" 보안 문제(IDOR)로 이어질 수 있고, 여러 서버에서 동시에 데이터를 만드는 분산 환경에서는 ID 충돌을 피하기 위한 별도의 조율이 필요합니다.
UUID는 128비트의 무작위성 덕분에 서버 여러 대가 동시에 값을 생성해도 충돌할 확률이 사실상 0에 가깝고, 값 자체로 다음 레코드를 추측할 수 없어 외부에 노출되는 식별자로 적합합니다. 다만 순차 ID보다 훨씬 크고(16바이트) 무작위 순서로 저장되기 때문에, 인덱스에 삽입될 때 페이지가 여기저기 흩어져 대용량 테이블에서는 순차 ID보다 인덱스 성능이 떨어질 수 있습니다. 이런 단점을 보완하기 위해 시간 순서를 반영한 UUID v7 같은 방식도 최근 널리 쓰이고 있습니다.
이 사이트의 UUID 생성기는 표준 UUID뿐 아니라 원하는 길이와 문자 구성으로 랜덤 문자열도 함께 생성할 수 있어, 테스트 데이터나 임시 토큰이 필요할 때 바로 활용할 수 있습니다.
바로 직접 체험해보세요
🚀 UUID 생성기 사용해보기