PostgreSQL

2강: Python에서 PostgreSQL 사용하기

알세지 2024. 5. 29. 12:16

2강: Python에서 PostgreSQL 사용하기

목차

  1. Python 환경 설정
  2. psycopg2를 사용하여 PostgreSQL과 연결하기
  3. Python으로 데이터베이스에 데이터 삽입 및 조회하기
  4. 오류 처리 및 트랜잭션 관리

1. Python 환경 설정

Python 개발 환경을 설정하는 방법을 알아봅니다. 가상 환경을 사용하면 프로젝트별로 독립적인 패키지 관리가 가능합니다.

Python 설치 및 설정

가상 환경 설정

가상 환경을 사용하여 프로젝트별로 독립적인 패키지 관리를 합니다.

  • 가상 환경 생성 및 활성화:
    python -m venv myenv
    source myenv/bin/activate  # Windows에서는 myenv\Scripts\activate

2. psycopg2를 사용하여 PostgreSQL과 연결하기

PostgreSQL 데이터베이스에 연결하기 위해 psycopg2 라이브러리를 사용합니다.

psycopg2 설치

psycopg2를 설치하여 Python에서 PostgreSQL에 연결할 수 있습니다.

pip install psycopg2-binary

데이터베이스 연결

데이터베이스 연결을 설정하고, 연결 객체와 커서를 생성합니다.

import psycopg2

# 데이터베이스 연결 설정
conn = psycopg2.connect(
    host="localhost",       # 데이터베이스 호스트 이름
    database="mydatabase",  # 데이터베이스 이름
    user="yourusername",    # 데이터베이스 사용자 이름
    password="yourpassword" # 데이터베이스 비밀번호
)

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

3. Python으로 데이터베이스에 데이터 삽입 및 조회하기

Python을 사용하여 데이터베이스에 데이터를 삽입하고 조회하는 방법을 알아봅니다.

데이터 삽입

데이터베이스에 데이터를 삽입하는 SQL 쿼리를 실행합니다.

# 데이터 삽입 쿼리
cur.execute("INSERT INTO users (name, email) VALUES (%s, %s)", ("Jane Doe", "jane@example.com"))

# 변경사항 저장
conn.commit()

데이터 조회

데이터베이스에서 데이터를 조회하는 SQL 쿼리를 실행합니다.

# 데이터 조회 쿼리
cur.execute("SELECT * FROM users")
rows = cur.fetchall()

for row in rows:
    print(row)

4. 오류 처리 및 트랜잭션 관리

데이터베이스 작업 중 발생할 수 있는 오류를 처리하고, 트랜잭션을 관리하는 방법을 학습합니다.

기본적인 오류 처리

데이터베이스 작업 중 발생할 수 있는 오류를 try-except 블록으로 처리합니다.

try:
    # 데이터베이스 작업
    cur.execute("SELECT * FROM users")
except Exception as e:
    print(f"Error: {e}")

트랜잭션 관리

트랜잭션 관리를 통해 데이터 일관성을 유지합니다. 오류 발생 시 롤백하여 데이터베이스 상태를 복구합니다.

try:
    # 데이터베이스 작업
    cur.execute("INSERT INTO users (name, email) VALUES (%s, %s)", ("John Smith", "john.smith@example.com"))
    conn.commit()
except Exception as e:
    conn.rollback()  # 오류 발생 시 롤백
    print(f"Transaction error: {e}")

흔하게 발생하는 오류 및 해결 방법

  • 오류: psycopg2.OperationalError: FATAL: password authentication failed for user "yourusername"
    • 해결 방법: 데이터베이스 연결 설정에서 사용자 이름과 비밀번호를 확인하세요.
  • 오류: psycopg2.ProgrammingError: relation "users" does not exist
    • 해결 방법: 테이블 이름을 확인하고, 대소문자를 구분합니다. 테이블 생성 후 제대로 생성되었는지 확인합니다.

마무리

Python을 사용하여 PostgreSQL과 연결하고, 데이터를 삽입 및 조회하는 방법을 학습했습니다. 다음 강의에서는 FastAPI와 PostgreSQL을 연동하여 CRUD API를 작성하는 방법을 배워보겠습니다.