[python] 백업 파일의 압축과 암호화 방법

백업은 중요한 데이터를 보호하기 위해 필수적인 작업입니다. 이를 위해 백업 파일을 압축하여 용량을 줄이고, 암호화하여 외부의 불법적인 접근으로부터 보호할 수 있습니다. 이번 포스트에서는 Python을 사용하여 백업 파일을 압축하고 암호화하는 방법을 알아보겠습니다.

1. 백업 파일 압축하기

Python에서 파일 압축을 처리하는 모듈 중 가장 많이 사용되는 것은 zipfile입니다. 아래는 zipfile 모듈을 사용하여 백업 파일을 압축하는 간단한 예시 코드입니다.

import zipfile

def compress_backup(source, target):
    with zipfile.ZipFile(target, 'w') as backup_zip:
        backup_zip.write(source)

source_file = 'backup_data.txt'
target_zip = 'backup_data.zip'

compress_backup(source_file, target_zip)

위 코드에서는 compress_backup 함수를 사용하여 source_filetarget_zip으로 압축합니다. zipfile.ZipFile을 사용하여 압축 파일을 생성하고, write 메소드를 통해 압축할 파일을 추가합니다.

2. 백업 파일 암호화하기

파일을 암호화하기 위해서는 Python에서 제공하는 cryptography 모듈을 사용할 수 있습니다. 아래는 cryptography 모듈을 사용하여 백업 파일을 암호화하는 예시 코드입니다.

import cryptography
from cryptography.fernet import Fernet

def encrypt_backup(source, target, key):
    with open(source, 'rb') as source_file:
        data = source_file.read()

    cipher_suite = Fernet(key)
    encrypted_data = cipher_suite.encrypt(data)

    with open(target, 'wb') as encrypted_file:
        encrypted_file.write(encrypted_data)

source_file = 'backup_data.txt'
target_file = 'encrypted_backup_data.txt'
encryption_key = 'YOUR_ENCRYPTION_KEY'

encrypt_backup(source_file, target_file, encryption_key)

위 코드에서 encrypt_backup 함수를 사용하여 source_filetarget_file로 암호화합니다. cryptography.fernet.Fernet 클래스를 사용하여 암호화를 위한 암호화 키를 생성하고, encrypt 메소드를 통해 데이터를 암호화합니다. 암호화된 데이터는 open 함수를 사용하여 target_file에 저장됩니다.

암호화 키는 반드시 안전한 곳에 보관하고 암호화된 파일과 함께 유지해야 합니다. 만약 암호화 키를 분실하면 데이터를 복호화할 수 없으니 주의해야 합니다.

결론

백업 파일의 압축과 암호화는 중요한 데이터를 보호하기 위해 필요한 작업입니다. Python을 사용하여 zipfile 모듈로 백업 파일을 압축하고, cryptography 모듈로 암호화하는 방법을 소개하였습니다. 이러한 방법을 적절히 활용하여 데이터의 안전성을 높여보세요.