[python] PyYAML을 이용하여 YAML 파일의 데이터를 병합하고 암호화하기

YAML은 인간이 쉽게 읽고 쓸 수 있는 데이터 직렬화 포맷입니다. PyYAML은 파이썬에서 YAML 파일을 읽고 쓰는 데 사용되는 라이브러리입니다. 이번 포스트에서는 PyYAML을 사용하여 YAML 파일의 데이터를 병합하고 암호화하는 방법에 대해 알아보겠습니다.

PyYAML 설치하기

먼저, PyYAML을 설치해야 합니다. 다음 명령어를 사용하여 PyYAML을 설치합니다:

pip install pyyaml

YAML 파일 읽기

우선, YAML 파일을 읽어 옵니다. 다음 코드는 data.yaml 파일을 읽어와서 데이터를 확인하는 예시입니다:

import yaml

with open('data.yaml', 'r') as file:
    data = yaml.safe_load(file)

print(data)

YAML 파일 병합하기

여러 개의 YAML 파일을 병합하여 하나의 YAML 파일로 만들 수 있습니다. 다음 코드는 file1.yamlfile2.yaml 파일을 병합하여 merged.yaml 파일로 저장하는 예시입니다:

import yaml

data = {}

with open('file1.yaml', 'r') as file:
    data.update(yaml.safe_load(file))

with open('file2.yaml', 'r') as file:
    data.update(yaml.safe_load(file))

with open('merged.yaml', 'w') as file:
    yaml.dump(data, file)

YAML 데이터 암호화하기

YAML 데이터를 암호화하여 보안을 강화할 수 있습니다. 다음 코드는 YAML 파일을 읽어와서 데이터를 암호화하고, encrypted.yaml 파일로 저장하는 예시입니다:

import yaml
from cryptography.fernet import Fernet

# 암호화/복호화에 사용할 키 생성
key = Fernet.generate_key()
cipher = Fernet(key)

with open('data.yaml', 'r') as file:
    data = yaml.safe_load(file)

encrypted_data = cipher.encrypt(yaml.dump(data).encode())

with open('encrypted.yaml', 'wb') as file:
    file.write(encrypted_data)

YAML 데이터 복호화하기

암호화된 YAML 데이터를 복호화하여 원본 데이터를 얻을 수 있습니다. 다음 코드는 encrypted.yaml 파일을 읽어와서 데이터를 복호화하는 예시입니다:

import yaml
from cryptography.fernet import Fernet

# 복호화에 사용할 키 생성
key = Fernet.generate_key()
cipher = Fernet(key)

with open('encrypted.yaml', 'rb') as file:
    encrypted_data = file.read()

decrypted_data = yaml.safe_load(cipher.decrypt(encrypted_data))

print(decrypted_data)

결론

PyYAML을 사용하여 YAML 파일의 데이터를 병합하고 암호화하는 방법에 대해 알아보았습니다. 이 기술은 여러 YAML 파일을 통합하여 데이터를 관리하거나, 데이터의 보안을 강화하는 데 유용합니다. PyYAML과 암호화 기술을 잘 활용하면 데이터 관리와 보안에 대한 요구를 충족할 수 있습니다.


참고 링크