[파이썬] Psycopg2에서 Unix domain sockets 사용

소개

Psycopg2는 PostgreSQL 데이터베이스에 연결하고 상호작용하는 파이썬 라이브러리입니다. Unix domain sockets를 사용하여 로컬 PostgreSQL 서버에 연결하는 것은 네트워크 통신을 사용하는 것보다 더 안전하고 빠를 수 있습니다. 이 블로그 포스트에서는 Psycopg2에서 Unix domain sockets를 사용하는 방법에 대해 알아보겠습니다.

Unix domain sockets

일반적으로 네트워크 통신은 TCP/IP를 사용하여 이루어집니다. 하지만 Unix 시스템에서는 Unix domain sockets라는 특별한 형태의 소켓을 사용할 수 있습니다. 이 소켓은 로컬 시스템 내에서 프로세스 간 통신을 위해 사용됩니다. 네트워크를 통하지 않기 때문에 속도가 향상되며, 보안도 더 강화됩니다.

Psycopg2에서 Unix domain sockets 사용하기

Psycopg2는 기본적으로 TCP/IP를 사용하여 PostgreSQL 서버에 연결하려고 시도합니다. 그러나 Unix domain sockets를 사용하려면 몇 가지 추가 구성이 필요합니다. 아래의 코드 예제를 통해 Psycopg2를 Unix domain sockets와 함께 사용하는 방법을 확인해 보세요.

import psycopg2

# Unix domain sockets 연결 설정
conn = psycopg2.connect(dbname='mydb', user='myuser', password='mypassword', host='/var/run/postgresql/.s.PGSQL.5432')

# 쿼리 실행
cursor = conn.cursor()
cursor.execute("SELECT * FROM mytable")
result = cursor.fetchall()

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

host 매개변수에 Unix domain socket의 경로를 지정하여 연결을 설정합니다. 경로는 PostgreSQL 서버의 unix_socket_directories 설정에 의해 결정됩니다. 필요한 경우 사용자 이름과 비밀번호를 제공하여 인증을 추가하실 수 있습니다. 그리고 일반적인 방법처럼 쿼리를 실행하고 결과를 가져올 수 있습니다.

결론

이제 Psycopg2에서 Unix domain sockets를 사용하여 로컬 PostgreSQL 서버에 안전하고 빠르게 연결할 수 있게 되었습니다. Unix domain sockets는 네트워크를 사용하지 않고 프로세스 간 통신을 가능하게 해주므로 속도와 보안면에서 이점이 있습니다. 이를 통해 데이터베이스 연결에 대한 효율성과 안정성을 높일 수 있습니다.