[파이썬] 데이터베이스 연동과 백업 전략

데이터베이스 연동은 소프트웨어 개발에서 아주 중요한 부분입니다. 이 글에서는 Python을 사용하여 데이터베이스에 연결하고, 백업 전략을 구현하는 방법에 대해 알아보겠습니다.

데이터베이스 연동

Python에서는 다양한 데이터베이스와의 연동을 지원하는 라이브러리들이 있습니다. 가장 대표적인 것은 SQLite, MySQL, PostgreSQL 등이 있습니다. 각각의 데이터베이스에 따라서 해당 데이터베이스와 연동하는 방법이 조금씩 다를 수 있습니다.

SQLite 연동

SQLite는 파일 기반의 경량 데이터베이스 엔진으로, 별도의 서버 설정 없이 파일 형태로 데이터베이스를 사용할 수 있습니다. Python에서 SQLite를 사용하기 위해서는 sqlite3 모듈을 사용하면 됩니다.

import sqlite3

# 데이터베이스 연결
conn = sqlite3.connect('mydatabase.db')

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

# 쿼리 실행
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')

# 데이터 삽입
cursor.execute('INSERT INTO users VALUES (1, "John", 25)')

# 커밋
conn.commit()

# 연결 닫기
conn.close()

MySQL 연동

MySQL은 가장 많이 사용되는 관계형 데이터베이스 중 하나입니다. Python에서 MySQL을 사용하기 위해서는 mysql-connector-python 패키지를 설치해야 합니다.

import mysql.connector

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

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

# 쿼리 실행
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)')

# 데이터 삽입
cursor.execute('INSERT INTO users (name, age) VALUES ("John", 25)')

# 커밋
conn.commit()

# 연결 닫기
conn.close()

PostgreSQL 연동

PostgreSQL은 강력하면서도 확장 가능한 오픈 소스 관계형 데이터베이스 시스템입니다. Python에서 PostgreSQL을 사용하기 위해서는 psycopg2 패키지를 설치해야 합니다.

import psycopg2

# 데이터베이스 연결
conn = psycopg2.connect(
    host='localhost',
    user='username',
    password='password',
    database='mydatabase'
)

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

# 쿼리 실행
cursor.execute('CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name VARCHAR(255), age INT)')

# 데이터 삽입
cursor.execute('INSERT INTO users (name, age) VALUES (%s, %s)', ("John", 25))

# 커밋
conn.commit()

# 연결 닫기
conn.close()

백업 전략

데이터베이스의 백업은 중요한 비즈니스 요소입니다. Python을 사용하여 데이터베이스를 백업하기 위해서는 일반적으로 데이터베이스의 덤프(Dump)를 생성하고, 해당 덤프를 파일로 저장하는 방식을 사용합니다.

SQLite 백업

SQLite 데이터베이스는 파일 형태로 저장되어 있기 때문에, 간단하게 백업할 수 있습니다. 단순히 데이터베이스 파일을 다른 위치로 복사하면 됩니다.

import shutil

# 데이터베이스 파일 복사
shutil.copy2('mydatabase.db', 'backup/mydatabase_backup.db')

MySQL 백업

MySQL 데이터베이스를 백업하기 위해서는 명령행 도구인 mysqldump를 사용하는 것이 일반적입니다. Python에서는 해당 명령어를 실행하는 방법을 사용할 수 있습니다.

import subprocess

# 명령어 실행
subprocess.run(['mysqldump', '-u', 'username', '-p', 'mydatabase', '> backup/mydatabase_backup.sql'], shell=True)

PostgreSQL 백업

PostgreSQL 데이터베이스를 백업하기 위해서는 명령행 도구인 pg_dump를 사용하는 것이 일반적입니다. Python에서는 해당 명령어를 실행하는 방법을 사용할 수 있습니다.

import subprocess

# 명령어 실행
subprocess.run(['pg_dump', '-h', 'localhost', '-U', 'username', 'mydatabase', '-f', 'backup/mydatabase_backup.sql'], shell=True)

위의 예시들은 각각의 데이터베이스에 대한 연동과 백업 방법을 보여줍니다. 실제로 사용할 때에는 각각의 데이터베이스 설정과 요구사항에 맞게 코드를 구성해야 합니다.

데이터베이스 연동과 백업은 데이터의 안정성과 보존을 위해 꼭 고려해야 할 부분입니다. Python을 사용하여 이를 구현하는 것은 쉽고 강력한 방법입니다.