[파이썬] Psycopg2에서 UUID type 처리

Python의 데이터베이스 연결 라이브러리인 Psycopg2는 PostgreSQL 데이터베이스와의 상호 작용을 용이하게 해주는 강력한 도구입니다. 이 라이브러리를 사용하면 Python으로 PostgreSQL 데이터베이스에 연결하고, 쿼리를 실행하고, 데이터를 검색, 삽입, 업데이트, 삭제할 수 있습니다.

이번에는 Psycopg2를 사용하여 PostgreSQL에서 UUID 타입을 처리하는 방법에 대해 알아보겠습니다. UUID(Universally Unique Identifier)는 레코드의 식별자로 사용되는 고유한 값을 나타내는 데이터 타입입니다. PostgreSQL에서 UUID 타입을 사용하려면 Psycopg2를 적절하게 사용해야 합니다.

Psycopg2 설치

먼저 Psycopg2를 설치해야 합니다. 아래의 명령을 사용하여 Psycopg2를 설치할 수 있습니다.

pip install psycopg2

UUID 타입 설정

데이터베이스에서 UUID 타입을 사용하기 전에, Psycopg2에 UUID 타입을 지원하도록 설정해야 합니다. psycopg2.extras 모듈의 register_uuid() 함수를 사용하여 UUID 타입을 등록할 수 있습니다. 다음은 예제 코드입니다.

import psycopg2.extras

# UUID 타입 등록
psycopg2.extras.register_uuid()

이제 Psycopg2는 UUID 타입을 지원할 수 있게 됩니다.

UUID 값 생성 및 삽입

UUID 값을 생성하려면 uuid 모듈을 사용해야 합니다. 아래의 예제 코드는 UUID를 생성하고 PostgreSQL 데이터베이스에 삽입하는 방법을 보여줍니다.

import uuid
import psycopg2

# PostgreSQL에 연결
conn = psycopg2.connect(dbname='mydatabase', user='myuser', password='mypassword', host='localhost')

# 커서 생성
cur = conn.cursor()

# UUID 값을 생성
uuid_value = uuid.uuid4()

# INSERT 쿼리 실행
cur.execute("INSERT INTO mytable (id, name) VALUES (%s, %s)", (uuid_value, 'John Doe'))

# 변경 사항 커밋
conn.commit()

# 연결 종료
cur.close()
conn.close()

위의 예제 코드에서 uuid.uuid4() 함수를 사용하여 UUID 값을 생성한 후, INSERT 쿼리에 해당 값을 전달하여 데이터베이스에 삽입합니다.

UUID 값 검색

UUID 값을 검색하려면 Python에서 UUID 값을 사용하여 쿼리를 작성해야 합니다. 아래의 예제 코드는 UUID 값을 사용하여 데이터베이스에서 레코드를 검색하는 방법을 보여줍니다.

import uuid
import psycopg2

# PostgreSQL에 연결
conn = psycopg2.connect(dbname='mydatabase', user='myuser', password='mypassword', host='localhost')

# 커서 생성
cur = conn.cursor()

# UUID 값을 생성
search_uuid = uuid.UUID('00000000-0000-0000-0000-000000000001')

# SELECT 쿼리 실행
cur.execute("SELECT * FROM mytable WHERE id = %s", (search_uuid,))

# 결과 검색
result = cur.fetchall()

# 결과 출력
for row in result:
    print(row)

# 연결 종료
cur.close()
conn.close()

위의 예제 코드에서 uuid.UUID() 함수를 사용하여 UUID 값을 생성한 후, SELECT 쿼리에 해당 값을 전달하여 데이터베이스에서 검색합니다.

Psycopg2를 사용하여 PostgreSQL에서 UUID 타입을 처리하는 방법을 알아봤습니다. 이를 활용하여 데이터베이스에서 UUID 값을 생성, 삽입, 검색하는 등 다양한 작업을 수행할 수 있습니다.