본문 바로가기
Programming/Python

[Python] yaml 파일을 활용한 python 코딩

by 알 수 없는 사용자 2022. 12. 12.

yaml파일을 활용한 Python 코딩을 포스팅하려고 합니다.

그냥 코딩을 해도 되는데 yaml파일 활용을 왜 하는건지 궁금하시지 않을 거 같지만 알아 두는 것이 몸에 이로울 수 있습니다.

 

yaml을 사용하지 않는다면 Python으로 DB에 있는 정보나 aws에 있는 리소스 예를 들면 S3버킷에 있는 정보들을 활용하여 Python으로 Output을 도출해 내고 싶으면 Python에 DB정보와 aws Key정보를 하드코딩으로 담아야 합니다.

 

yaml을 알기전 하드코딩의 단점을 먼저 설명해 드리자면 소스코드는 외부에서 확인이 쉽습니다. 예를 들면 web은 개발자 도구에서 소스코드를 취득하기 쉬우며 cicd툴인 Airflow는 실행 중인 code를 직접 볼 수 있도록 하는 페이지가 있어 

DB나 aws 정보들이 유출되기 쉬운 환경입니다.

 

하드코딩의 단점을 설명해 드렸으니 장점을 설명해 드리자면 딱히 없습니다. 농담이구요

 

yaml파일은 주로 내가 짠 코드가 실행되는 서버에 어떠한 디렉터리 한편에 모셔 두고 사용합니다. 

설정 파일이니까요 json과 비슷해요 

server 한편에 모셔두고 있으니 내가 짠 python 코드에는 yaml의 위치만 찍혀 있고 yaml파일에 작성된 DB정보와 aws 정보는 확인하기 어렵습니다.

 

쉽게 설명한 것 같아 기분이 좋네요

 

이제 python에서 yaml파일을 사용하기 위한 예시를 알려드리겠습니다.

 

/home/yamls/sangmin.yaml 

access_key: K*************
secret_key: U****************************

db_info:
    host: rds-***-*****************************rds.amazonaws.com
    port: 3*****
    user: *********
    password: '#************'
    database: s**********

Python

#!/usr/bin/python3
import os


base_conf = os.path.join(/home/yamls/sangmin.yaml)

code1 = base_conf['access_key']
code2 = base_conf['db_info']['host']

print(code1)
print(code1)

 

결과

K*************

rds-***-*****************************rds.amazonaws.com

 

yaml파일을 활용해서 python의 변수에 각 yaml의 정보를 담았습니다.

이제 활용하시면 됩니다.

 

댓글