[sql] UUID 데이터 타입

UUID는 Universally Unique Identifier의 약어로, 고유한 식별자를 나타내는 데이터 타입입니다. UUID는 시스템이나 네트워크 상에서 식별자의 충돌을 방지하기 위해 사용됩니다.

UUID의 구성 요소

UUID는 16진수 숫자로 이루어진 128비트 값입니다. 이 값은 일반적으로 5개의 그룹으로 나누어져 서로를 하이픈(-)으로 구분합니다. 예를 들면 다음과 같습니다:

123e4567-e89b-12d3-a456-426655440000

UUID는 일반적으로 시스템 시간, MAC 주소, 랜덤 숫자 등을 기반으로 생성됩니다.

UUID와 VARCHAR의 비교

UUID 데이터를 저장하기 위해서는 VARCHAR와 같은 문자열 데이터 타입을 사용할 수 있습니다. 하지만 UUID 데이터 타입을 사용하면 몇 가지 이점이 있습니다.

  1. 고유성: UUID는 전 세계적으로 고유한 값을 생성하기 때문에 중복되는 식별자를 걱정할 필요가 없습니다.
  2. 성능: UUID 데이터 타입은 문자열 데이터 타입보다 속도가 빠르며, 인덱스를 효율적으로 사용할 수 있습니다.
  3. 저장 공간: UUID는 문자열에 비해 저장 공간을 더 효율적으로 사용합니다. 128비트 크기의 UUID는 최대 36글자의 문자열과 동일한 정보를 담을 수 있습니다.

UUID 데이터 타입은 대부분의 주요 데이터베이스 시스템에서 지원하며, 데이터베이스마다 UUID 데이터 타입의 이름과 사용법이 다를 수 있습니다.

PostgreSQL에서 UUID 사용하기

PostgreSQL은 UUID 데이터 타입을 기본적으로 지원합니다. UUID를 사용하려면 uuid-ossp 확장을 설치해야 합니다.

-- uuid-ossp 확장 설치
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

-- UUID 타입 열 생성 예시
CREATE TABLE my_table (
    id UUID DEFAULT uuid_generate_v4(),
    name VARCHAR(50)
);

위의 예제 코드에서 uuid_generate_v4() 함수는 version 4의 UUID를 생성합니다. 따라서 id 열은 기본값으로 UUID가 자동으로 생성되게 됩니다.

참고 자료