Python에서 PostgreSQL을 연결하고 사용하는 방법

핵심 요약

  • 운영 체제에 맞는 PostgreSQL을 다운로드하고 설치한 후, Python에서 psycopg2 라이브러리를 사용하여 PostgreSQL 데이터베이스에 연결합니다.
  • pgAdmin4를 활용하여 Python에서 Postgres 서버에 접속하기 위한 서버 접속 정보를 얻습니다.
  • Python 내에서 SQL 명령어를 사용해 PostgreSQL 데이터베이스를 생성, 확인 또는 삭제합니다.

Python으로 작성된 프로그램에서 Postgres 데이터베이스의 정보에 접근해야 할 경우, 이 둘을 연결하는 방법을 숙지해야 합니다. 연결이 완료되면 쿼리를 실행하고 정보를 가져오거나 저장하는 데 활용할 수 있습니다.

PostgreSQL 다운로드 및 설치

PostgreSQL은 프로그래밍 프로젝트를 위한 훌륭한 선택지입니다. 운영 체제에 맞는 PostgreSQL 버전을 다운로드하여 설치할 수 있습니다. Postgres는 Windows, macOS, Ubuntu Linux 등 주요 운영 체제에서 다운로드할 수 있습니다.

설치 과정은 운영 체제마다 다르므로, 원활한 설치를 위해 각 운영 체제별 설치 단계를 정확히 따라야 합니다.

필수 라이브러리 설치

psycopg2 라이브러리를 사용하면 Python에서 PostgreSQL 데이터베이스에 쉽게 연결할 수 있습니다. Python 인터프리터에서 다음 코드를 실행하여 해당 라이브러리가 설치되어 있는지 확인하세요.

import psycopg2

만약 “ModuleNotFoundError: No module named ‘psycopg2′”와 같은 오류 메시지가 나타난다면, 다음 명령어를 사용하여 라이브러리를 설치하십시오.

pip install psycopg2

pip은 Python 패키지를 관리하는 도구로, Windows, Mac 또는 Linux 환경에서 설치 가능합니다. 이 도구를 통해 Python 패키지 설치 과정을 간소화할 수 있습니다.

pgAdmin4를 이용한 접속 정보 획득

pgAdmin4는 그래픽 사용자 인터페이스(GUI) 환경에서 Postgres 데이터베이스를 관리할 수 있는 도구입니다. Postgres 설치 시 함께 설치되었을 수도 있지만, 필요한 경우 pgAdmin4 다운로드 페이지에서 별도로 설치할 수 있습니다.

pgAdmin4를 사용하여 서버 접속 정보를 얻는 방법은 다음과 같습니다.

  • 응용 프로그램 메뉴에서 pgAdmin4를 실행합니다.
  • 응용 프로그램 화면 왼쪽에 있는 서버 메뉴를 클릭합니다.
  • Postgres 설정 과정에서 입력한 비밀번호를 입력합니다.
  • 서버에 연결되면, PostgreSQL 항목(예: PostgreSQL 16)을 마우스 오른쪽 버튼으로 클릭한 후 ‘속성’을 선택합니다.
  • 속성 대화 상자에서 ‘연결’ 탭을 클릭합니다.
  • ‘호스트 이름’, ‘포트 번호’, ‘사용자 이름’을 기록해 둡니다.

Postgres 서버 연결

접속 정보를 확보했다면, psycopg2 라이브러리를 사용하여 Postgres 서버에 연결할 수 있습니다. 다음 코드를 사용하여 연결을 설정합니다.

conn = psycopg2.connect(host="localhost", port="5432", user="postgres", password='your password here')

다음으로, Python 환경에서 Postgres 명령어를 실행하려면 커서(cursor) 함수를 사용해야 합니다.

cur = conn.cursor()

마지막으로, Python이 각 코드 문장을 실행한 후 자동으로 커밋하도록 자동 커밋(autocommit) 플래그를 설정할 수 있습니다. 이렇게 하면 모든 코드 행마다 별도의 커밋 문을 추가할 필요가 없습니다.

conn.set_session(autocommit = True)

위 코드를 한 번에 실행하면 로컬 Postgres 서버 인스턴스에 연결할 수 있습니다.

Postgres 데이터베이스 생성 방법

Postgres 데이터베이스는 관련된 테이블의 모음을 저장하는 데 중요한 역할을 합니다. 새로운 데이터베이스는 커서 객체의 execute 메서드에 전달할 수 있는 CREATE DATABASE SQL 명령어를 사용하여 생성합니다.

try:
    cur.execute('''CREATE DATABASE DB_NAME''')
except psycopg2.Error as e:
    print(e)

예외 처리를 통해 오류 발생 가능성에 항상 대비해야 합니다. 위의 예제에서는 발생한 모든 오류를 단순하게 출력했지만, 실제 프로덕션 환경에서는 적절한 조치를 취해야 합니다.

pgAdmin4에서 데이터베이스 확인

위의 쿼리를 실행하면 pgAdmin4를 통해 데이터베이스가 성공적으로 생성되었는지 확인할 수 있습니다. pgAdmin4 인터페이스에서 기존 데이터베이스 목록을 새로 고침하고 새 데이터베이스를 찾아보세요.

예를 들어, 위 쿼리를 사용하여 music이라는 샘플 데이터베이스를 생성한 경우, Postgres16 > 데이터베이스 항목 아래 데이터베이스 목록에 표시되어야 합니다.

Postgres 데이터베이스 삭제 방법

특정 데이터베이스를 더 이상 사용하지 않으려면 다음 명령어를 사용하여 삭제할 수 있습니다.

try:
    cur.execute('''DROP DATABASE MUSIC''')
except psycopg2.Error as e:
    print(e)

create 명령어 대신 drop 명령어를 사용해야 합니다. 실행 후에는 해당 데이터베이스가 목록에서 제거됩니다.