[python] 파이썬에서 데이터베이스 연동 시 트랜잭션 롤백 처리하기

파이썬으로 데이터베이스를 다루다 보면 가끔 트랜잭션 처리가 필요할 때가 있습니다. 트랜잭션 중에 에러가 발생하면 롤백하여 이전 상태로 되돌리는 작업이 중요합니다. 이러한 상황에서 파이썬에서 데이터베이스를 연동하고, 트랜잭션을 롤백하는 방법에 대해 알아보겠습니다.

데이터베이스 연결 및 트랜잭션 시작

우선, 데이터베이스에 연결하고 트랜잭션을 시작하는 방법은 데이터베이스에 따라 다르지만, 보통은 다음과 같은 방법을 따릅니다.

import psycopg2  # 예시로 psycopg2 모듈 사용

# 데이터베이스 연결
conn = psycopg2.connect("dbname=test user=postgres password=secret")

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

# 트랜잭션 시작
conn.set_session(autocommit=False)

트랜잭션 롤백 처리

트랜잭션 중에 에러가 발생했을 때, 롤백하여 이전 상태로 되돌리는 방법은 다음과 같습니다.

try:
    # 여러 데이터베이스 작업 수행
    cur.execute("INSERT INTO table1 (column1, column2) VALUES (%s, %s)", (value1, value2))
    cur.execute("UPDATE table2 SET column3 = %s WHERE column4 = %s", (value3, value4))
    # 트랜잭션 커밋
    conn.commit()
except:
    # 에러 발생 시 롤백
    conn.rollback()

마무리

이처럼 파이썬에서 데이터베이스 연동 시 트랜잭션 처리와 롤백은 중요한 작업입니다. 적절한 예외 처리와 롤백 처리를 통해 데이터의 무결성을 유지할 수 있습니다.

위 예시는 PostgreSQL 데이터베이스와 psycopg2 모듈을 기준으로 작성되었으며, 다른 데이터베이스나 모듈을 사용하는 경우에는 해당 환경에 맞게 수정하여 사용해야 합니다.

이렇듯 파이썬을 사용하여 데이터베이스 트랜잭션을 다루는 것은 중요한 기술 중 하나이며, 실무에서 많이 활용되므로, 꼭 숙지해 두는 것이 좋습니다.

참고 문헌: Psycopg Documentation, PostgreSQL Documentation