본문 바로가기
IT/SQL 기초강좌 (PostgreSQL)

49강 SQL 초석 다지기 : PostgreSQL UUID Data Type

by DoitSQL 2022. 12. 25.
728x90

49강 SQL 초석 다지기 : PostgreSQL UUID Data Type   

PostgreSQL

SQL 초석 다지기 49강 시작합니다.

본 강의는 PostgreSQL Tutorial을 참조합니다.  https://www.postgresqltutorial.com/

이번 시간에는

 PostgreSQL UUID Data Type

에 대해서 알아보는 시간입니다.

UUID (universally unique identifier)
소프트웨어 구축에 쓰이는 식별자 표준으로, 개방 소프트웨어 재단(OSF)이 분산 컴퓨팅 환경(DCE)의 일부로 표준화하였다.
표준 형식에서 UUID는 32개의 십육진수로 표현되며 총 36개 문자(32개 문자와 4개의 하이픈)로 된 8-4-4-4-12라는 5개의 그룹을 하이픈으로 구분한다. 이를테면 다음과 같다.
550e8400-e29b-41d4-a716-446655440000

 

요약: 이번 강의에서는 PostgreSQL UUID 데이터 유형과 제공된 모듈을 사용하여 UUID 값을 생성하는 방법에 대해 알아봅니다.


Introduction to PostgreSQL UUID type   

UUID는 RFC 4122 및 기타 관련 표준에서 정의한 범용 고유 식별자를 나타냅니다. UUID 값은 동일한 알고리즘을 사용하여 알려진 우주에서 고유하게 만드는 알고리즘에 의해 생성된 128비트 데이터입니다. 다음은 UUID 값의 몇 가지 예를 보여 줍니다.

40e6215d-b5c6-4896-987c-f30f3678f608
6ecd8c99-4036-403d-bf84-cf8400f67836
3f333df6-90a4-4fda-8dd3-9485d27cee36 

 

보시다시피 UUID는 하이픈으로 구분된 그룹으로 표시되는 32자리의 16진수 숫자 시퀀스입니다.

고유성 기능 때문에 분산 시스템에서 UUID를 찾는 경우가 많은데, 이는 단일 데이터베이스 내에서 고유한 값만 생성하는 SERIAL 데이터 유형보다 더 나은 고유성을 보장하기 때문입니다.

UUID 값을 PostgreSQL 데이터베이스에 저장하려면 UUID 데이터 유형을 사용합니다.

 

Generating UUID values

PostgreSQL을 사용하면 UUID 값을 저장하고 비교할 수 있지만 코어에 UUID 값을 생성하는 기능은 포함하지 않습니다.

대신 UUID를 생성하기 위해 특정 알고리즘을 제공하는 타사 모듈에 의존합니다. 예를 들어 uuid-osp 모듈은 UUID를 생성하기 위한 표준 알고리즘을 구현하는 몇 가지 편리한 기능을 제공합니다.

uuid-osp 모듈을 설치하려면 CREATE EXTENSION 문을 다음과 같이 사용합니다.

CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; 

 

IF NOT EXIST 절을 사용하면 모듈을 다시 설치하지 않아도 됩니다.

시스템의 MAC 주소, 현재 타임스탬프 및 임의 값의 조합을 기반으로 UUID 값을 생성하려면 uuid_generate_v1() 함수를 사용합니다.

SELECT uuid_generate_v1(); 

 

함수는 다음과 같은 UUID 값을 생성합니다.

           uuid_generate_v1
--------------------------------------
 0e37df36-f698-11e6-8dd4-cb9ced3df976
(1 row) 

 

난수만을 기반으로 UUID 값을 생성하려는 경우 uuid_generate_v4() 함수를 사용할 수 있습니다. 예:

SELECT uuid_generate_v4();

           uuid_generate_v4
--------------------------------------
 a81bc81b-dead-4e5d-abff-90865d1e13b1
(1 row) 

UUID 생성을 위한 기능에 대한 자세한 내용은 UUID-osp 모듈 설명서를 참조하십시오.

UUID-osp 모듈이 있어야 테스트를 해볼 수 있군요. 이런게 있다는 정도만 알고 넘어가겠습니다.

Creating a table with UUID column   

우리는 UUID 데이터 유형을 기본 키로 하는 테이블을 만들 것이다. 또한 기본 키 열의 값은 uuid_generate_v4() 함수를 사용하여 자동으로 생성됩니다.

먼저 다음 명령문을 사용하여 연락처 테이블을 작성합니다.

CREATE TABLE contacts (
    contact_id uuid DEFAULT uuid_generate_v4 (),
    first_name VARCHAR NOT NULL,
    last_name VARCHAR NOT NULL,
    email VARCHAR NOT NULL,
    phone VARCHAR,
    PRIMARY KEY (contact_id)
); 

 

이 문에서 contact_id 열의 데이터 유형은 UUID입니다. contact_id 열에는 uuid_generate_v4() 함수에서 제공하는 기본값이 있으므로 contact_id 열에 대한 값을 지정하지 않고 새 행을 삽입할 때마다 PostgreSQL은 uuid_generate_v4() 함수를 호출하여 해당 값을 생성합니다.

둘째, 일부 데이터를 연락처 테이블에 삽입합니다.

INSERT INTO contacts (
    first_name,
    last_name,
    email,
    phone
)
VALUES
    (
        'John',
        'Smith',
        'john.smith@example.com',
        '408-237-2345'
    ),
    (
        'Jane',
        'Smith',
        'jane.smith@example.com',
        '408-237-2344'
    ),
    (
        'Alex',
        'Smith',
        'alex.smith@example.com',
        '408-237-2343'
    ); 

 

셋째, 다음 SELECT 문을 사용하여 연락처 테이블의 모든 행을 쿼리 합니다.

SELECT
    *
FROM
    contacts; 

 

보시다시피 contact_id 열은 uuid_generate_v4() 함수에 의해 생성된 UUID 값으로 채워졌습니다.


이번 강의에서는 PostgreSQL UUID 데이터 유형을 사용하는 방법과 uuid-osp 모듈을 사용하여 UUID 값을 생성하는 방법에 대해 배웠습니다.

 

글로 배웠습니다. 실제 현장에서 마주하시면 이런 게 있다고 알고는 있어야 할 것 같네요.

수고하셨습니다.


Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다.

 

 

728x90

댓글