[python] PostgreSQL과의 데이터베이스 연동

보통 데이터베이스는 애플리케이션에서 중요한 역할을 합니다. 데이터베이스를 이용하면 데이터를 저장, 검색 및 수정할 수 있습니다. 이번 블로그 포스트에서는 Python에서 PostgreSQL과 어떻게 연동하는지 알아보겠습니다.

PostgreSQL 설치하기

먼저, PostgreSQL을 설치해야 합니다. Windows에서는 공식 웹사이트에서 설치 파일을 다운로드하여 설치할 수 있습니다. macOS나 Linux에서는 패키지 관리자를 이용하여 설치할 수 있습니다.

psycopg2 라이브러리 설치하기

Python에서 PostgreSQL과 연동하기 위해 psycopg2 라이브러리를 사용합니다. psycopg2는 Python과 PostgreSQL 간의 상호 작용을 도와주는 인터페이스입니다. pip 명령을 이용하여 psycopg2를 설치할 수 있습니다.

pip install psycopg2

데이터베이스 연결하기

다음은 psycopg2를 사용하여 PostgreSQL 데이터베이스에 연결하는 예시 코드입니다.

import psycopg2

try:
    connection = psycopg2.connect(
        host="your_host",
        database="your_database",
        user="your_username",
        password="your_password"
    )
    cursor = connection.cursor()
    print("Successfully connected to PostgreSQL")

except (Exception, psycopg2.Error) as error:
    print("Error while connecting to PostgreSQL", error)

finally:
    if(connection):
        cursor.close()
        connection.close()
        print("PostgreSQL connection is closed")

위의 코드에서 your_host, your_database, your_username, your_password에는 실제 PostgreSQL 서버의 호스트, 데이터베이스 이름, 사용자 이름 및 비밀번호를 입력해야 합니다.

데이터 쿼리하기

PostgreSQL 서버에 연결하고 나면 데이터를 쿼리할 수 있습니다. 다음은 psycopg2를 사용하여 데이터를 쿼리하는 예시 코드입니다.

import psycopg2

try:
    connection = psycopg2.connect(
        host="your_host",
        database="your_database",
        user="your_username",
        password="your_password"
    )
    cursor = connection.cursor()

    cursor.execute("SELECT * FROM your_table")
    rows = cursor.fetchall()

    for row in rows:
        print(row)

except (Exception, psycopg2.Error) as error:
    print("Error while querying PostgreSQL", error)

finally:
    if(connection):
        cursor.close()
        connection.close()
        print("PostgreSQL connection is closed")

위의 코드에서 your_table에는 실제 사용하려는 테이블의 이름을 입력해야 합니다. 이 코드는 your_table 테이블에 있는 모든 데이터를 검색하고, 결과를 출력합니다.

결론

Python에서 PostgreSQL과의 데이터베이스 연동은 psycopg2 라이브러리를 사용하여 쉽게 할 수 있습니다. 이를 통해 데이터를 저장, 검색 및 수정할 수 있는 강력한 기능을 애플리케이션에 추가할 수 있습니다.