파이썬 코드(*.py)로 설정값(Configuration) 관리하기

조종태·2021년 1월 17일
0

python

목록 보기
5/6

프로젝트 코드와 설정값 코드를 분리하여 관리

보안 위험을 최소화하기 위해서, 프로젝트 코드와 설정값 코드를 분리하여 관리 한다. 이렇게 하면 프로젝트 코드를 그대로 Github등과 같은 버전 관리 시스템에 공개하더라도 설정값에 포함된 DB 접속 정보등의 외부 유출로 인한 보안 위협을 최소화할 수 있다.

프로젝트 코드

프로젝트 시작 코드에서 설정값 코드를 import 한다. 만약, 설정값 코드가 없다면 설정값 코드가 있어야할 전체 경로와 샘플 코드를 표시하여 복사하여 사용할 수 있도록 한다.
/Users/user_id/project_name/start.py

import os, sys

# 설정값 코드를 임포트 한다.
try:
	from center import config
except Exception as e:
	print(traceback.format_exc())
	msg = "'{}{}{}.py' file not found".format(config_dir, os.sep,
		os.path.basename(os.path.dirname(os.path.abspath(__file__))))
	print(msg)
	print("""{hr}
Copy and use the sample code below.
{hr}
class Config:
    host = 'localhost'
    dbname = 'dbname'
    user = 'user'
    password = 'password'
    port = 3306
    trace = True

config = Config    
""".format(hr = '-' * len(msg)))
	sys.exit(1)

# 사용 예제
print(config.host)
print(config.dbname)
print(config.password)
print(config.port)
print(config.trace)    

설정값 코드

설정값 코드만을 보관하는 config 디렉터리에 설정값 코드 파이썬 파일(프레젝트 이름.py)을 만든다. 프로젝트 이름과 같은 레벨의 디렉터리 위치에 config 디렉터리를 만들고 프로젝트 이름으로 파이썬 파일을 만든 이유는 config 디렉터리에 다른 프로젝트 설정값도 함께 관리하고 프로젝트의 설정값 파이썬 파일을 찾기 쉽도록 하기 위해서다.

/Users/user_id/config/project_name.py

class Config:
    host = 'localhost'
    dbname = 'company'
    user = 'user'
    password = 'password'
    port = 3306
    trace = True
config = Config
profile
일주일 동안 일을 하면서 다음에 사용할 수 있는 내용을 정리합니다.

0개의 댓글