[파이썬] 파이썬 2와 파이썬 3의 데이터베이스 연동 및 ORM 지원 차이

파이썬은 다양한 데이터베이스에 연동하고 ORM(Object-Relational Mapping)을 지원하여 데이터베이스와의 상호작용을 쉽게 할 수 있습니다. 하지만 파이썬 2와 파이썬 3 사이에는 몇 가지 차이가 있습니다. 이번 포스트에서는 파이썬 2와 파이썬 3의 데이터베이스 연동과 ORM 지원에 대한 차이점을 살펴보겠습니다.

데이터베이스 연동

파이썬 2에서는 대표적인 데이터베이스 모듈로 MySQLdb, psycopg2, sqlite3 등이 있었습니다. 이 모듈들은 C 확장 모듈로 작성되어 파이썬 코드와 직접적으로 상호작용합니다. 하지만 파이썬 3에서는 이러한 모듈 대신에 표준 라이브러리인 mysql-connector-python, psycopg2-binary, sqlite3을 사용합니다. 이 라이브러리들은 파이썬 3에 맞게 업데이트되어 사용됩니다.

파이썬 2와 파이썬 3의 데이터베이스 연동 차이는 큰 차이가 없으며, 데이터베이스에 연결하고 쿼리를 실행하는 방법은 유사합니다. 따라서 파이썬 2 코드를 파이썬 3로 쉽게 이식할 수 있습니다.

ORM 지원

ORM은 데이터베이스와 객체지향 프로그래밍을 연결하는 도구로, 데이터베이스의 테이블과 객체를 직접 매핑해줍니다. 파이썬에서 대표적인 ORM 라이브러리로는 SQLAlchemy가 있습니다.

하지만 파이썬 2와 파이썬 3의 ORM 지원에는 차이가 있습니다. 파이썬 2에서는 SQLAlchemy 버전 0.8 이하를 사용해야 합니다. 이는 파이썬 2에서만 호환되며 파이썬 3에서는 사용할 수 없습니다.

반면에 파이썬 3에서는 SQLAlchemy 버전 1.0 이상을 사용하는 것이 권장됩니다. 이는 파이썬 3에 맞게 업데이트된 버전으로 다양한 기능과 최적화된 코드를 제공합니다.

따라서 파이썬 2에서 작성된 ORM 코드를 파이썬 3로 이식할 때는 SQLAlchemy 버전에 주의해야 합니다.

예제

아래는 파이썬 3에서 mysql-connector-python을 사용하여 MySQL 데이터베이스에 연동하고 간단한 쿼리를 실행하는 예제입니다.

import mysql.connector

# MySQL에 연결
connection = mysql.connector.connect(
    host="localhost",
    user="username",
    password="password",
    database="database_name"
)

# 커서 생성
cursor = connection.cursor()

# 쿼리 실행
cursor.execute("SELECT * FROM users")

# 결과 가져오기
results = cursor.fetchall()

# 결과 출력
for row in results:
    print(row)

# 연결 종료
connection.close()

위 예제는 파이썬 3에서 사용되는 mysql-connector-python을 사용하여 MySQL 데이터베이스에 연결하고 쿼리를 실행하는 방법을 보여줍니다.

결론

파이썬 2와 파이썬 3의 데이터베이스 연동과 ORM 지원에는 일부 차이가 있습니다. 데이터베이스 연동은 큰 차이가 없으며, ORM 지원은 파이썬 버전에 따라 다를 수 있습니다. 따라서 파이썬 3에서는 최신 라이브러리를 사용하고 파이썬 2 코드를 업데이트하는 것이 좋습니다.