본문으로 바로가기

SECRET KEY 를 json 으로 따로 관리

category 장고/기타 설정 방법 2018. 12. 25. 15:59

외부 유출 없이 SECRET KEY 를 장고에서 따로 관리하기



참고: 패스트캠퍼스 강의 // 위키백과 등 구글링


프로젝트를 Github 으로 관리하면 여러사람이 프로젝트를 할 때 편리하다.


다만 보안상의 이유로 올리지 말아야 할 정보들이 존재하는데 이러한 데이터를 따로 관리하는 방법을 알아보자.




JSON 간략 요약




1. 자바스크립트 언어에서 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷


2. 텍스트로 이루어져 있어 사람과 기계 모두 읽기 쉽다


3. 언어 독립형 데이터 포맷이기 때문에 서로 다른 프로그래밍 언어에서 데이터 교환이 쉽다


4. 백엔드와 프론트엔드가 프로젝트 작업을 하면 이 json 형식으로 인코딩/디코딩 과정을 거치며 객체를 주고 받는다






JSON 인코딩과 디코딩





장고에서 json 으로 SECRET_KEY 다루기


요약: 별도 디렉토리를 생성하고 settings.py 에서 경로 지정/지정한 경로의 json 을 파이썬 dict 로 디코딩/dict 의 값을 읽어오기


1) SECRET_DIR 설정


# ROOT_DIR 하위에 있는 .secrets 디렉토리의 경로를 SECRETS_DIR 변수에 할당


SECRETS_DIR = os.path.join(ROOT_DIR, '.secrets')



2) 설정한 경로의 secret 디렉토리에 json 파일을 디코딩하여 dict 로 반환


# base.json 에 저장된 json 데이터를 open 하여 파이썬의 dict 타입으로 디코딩


secrets = json.load(open(os.path.join(SECRETS_DIR, 'base.json')))




3) base.json 에 저장되어 있는 json 을 불러오기


# 2) 에서 파이썬의 dict 타입으로 변환된 해당하는 값을 읽어온다


SECRET_KEY = secrets['SECRET_KEY']



'장고 > 기타 설정 방법' 카테고리의 다른 글

django.setup() 에러 발생  (0) 2019.06.10
return 할 때 render & redirect 의 차이  (0) 2019.02.17
(문서 번역)정적 파일 관리  (0) 2019.02.02
Media Root 설정하기  (0) 2018.12.13