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

파이썬은 데이터베이스와의 연동을 위한 다양한 라이브러리를 제공합니다. 파이썬 2와 파이썬 3에서의 데이터베이스 연동 방법에는 차이가 있으며, 이러한 차이를 알아보도록 하겠습니다.

1. 라이브러리 선택

파이썬 2에서는 MySQLdbpsycopg2 등의 라이브러리를 주로 사용하여 데이터베이스에 연결합니다. 반면에 파이썬 3에서는 mysqlclientpsycopg2-binary 등의 라이브러리가 주로 사용됩니다. 따라서 파이썬 버전에 따라 적절한 라이브러리를 선택해야 합니다.

2. 문자열 인코딩

파이썬 2에서는 기본적으로 ascii 문자열을 사용하기 때문에 데이터베이스로부터 받은 한글 데이터와 같이 유니코드 문자열을 처리하기 위해서는 추가적인 설정이 필요합니다. 하지만 파이썬 3에서는 기본적으로 UTF-8 인코딩을 지원하기 때문에 이러한 설정이 필요하지 않습니다.

3. print 문의 사용

파이썬 2에서는 print 문이 함수로 사용되지 않기 때문에 데이터베이스 연동 시에 print 문을 사용하여 디버깅 메시지를 출력할 수 있습니다. 반면에 파이썬 3에서는 print() 함수를 사용해야 하므로, print 문의 사용에 주의해야 합니다.

4. 예외 처리

파이썬 2에서는 예외 처리 시에 except 뒤에 예외 클래스만을 기술하는 것이 가능하지만, 파이썬 3에서는 예외 인스턴스와 예외 클래스 모두를 기술해야 합니다. 따라서 데이터베이스 연동 시에 예외 처리 코드를 작성할 때 주의해야 합니다.

파이썬 2 예제 코드

import MySQLdb

# 데이터베이스 연결
conn = MySQLdb.connect(host='localhost', user='root', passwd='password', db='test')

# 쿼리 실행
cursor = conn.cursor()
cursor.execute("SELECT * FROM customers")

# 결과 출력
for row in cursor.fetchall():
    print row

# 커넥션 닫기
conn.close()

파이썬 3 예제 코드

import mysql.connector

# 데이터베이스 연결
conn = mysql.connector.connect(host='localhost', user='root', password='password', database='test')

# 쿼리 실행
cursor = conn.cursor()
cursor.execute("SELECT * FROM customers")

# 결과 출력
for row in cursor.fetchall():
    print(row)

# 커넥션 닫기
conn.close()

위의 예제 코드를 보면, 파이썬 2에서는 MySQLdb를 사용하여 데이터베이스에 연결하고, 파이썬 3에서는 mysql.connector을 사용하는 것을 확인할 수 있습니다.

파이썬 2와 파이썬 3의 데이터베이스 연동 차이를 이해하고, 해당 버전에 맞는 라이브러리와 문법을 사용하여 데이터베이스와 손쉽게 연동할 수 있습니다.