왜 config.json을 사용하고자 하는가?
지난주 노마드코더 복습 글에서도 적었듯, API나 토큰, 개인 URL은 타인에게 노출되면 예상치 못한 보안 이슈가 발생할 수 있다. 이번 주는 Python과 mongoDB, JS를 이용해 간단한 미니 프로젝트를 진행하고 있는데, 우리 조가 사용하는 몽고DB url을 github에 올리고 싶지 않았다. 정확히는 URL에 해당 DB의 아이디와 패스워드가 적혀있기 때문에! 따라서 별도의 파일에 해당 데이터를 넣어 관리할 방법을 찾아보았고, 숨김처리할 데이터가 몇 개 없는 현재 상황에서는 config.json이 적합하다고 생각했다.
python에서 config.json 사용하는 법
1. config.json 파일을 만든다.
config.json 파일을 만들어 노출하지 않고자 하는 데이터를 객체 형태로 config.json에 적어준다. config.json의 파일 위치는 app.py와 같이 프로젝트 폴더 내 최상단에 위치해야 한다.
{
"해당데이터의이름" : "작성할URL 또는 데이터"
}
2. app.py에서 config.json을 불러온다.
json 데이터를 불러와야 하므로 json을 import하고, 아래와 같이 작성한다.
import json
with open("config.json", "r", encoding="utf-8") as f:
config = json.load(f)
데이터가 잘 들어왔는지 확인해보고싶다면, config = json.load(f) 아래 아래의 문을 추가한다. 이때, with 내부에 들어가는 print문이므로 꼭 tab을 눌러 with 안쪽에 위치하도록 적어야 한다.
print(config["해당데이터의이름"])
나는 mongoDB url을 연결했기에 다음과 같이 코드를 작성해 url 데이터를 잘 불러오는지, 해당 url에 데이터가 잘 들어가는지 테스트를 진행했다.
import json
with open("config.json", "r", encoding="utf-8") as f:
config = json.load(f)
from pymongo import MongoClient
# config 데이터 중에서 이름이 'dbUrl'인 것을 가져와 사용한다.
client = MongoClient(config["dbUrl"])
# devTest라는 이름의 db를 만든다.
db = client.dbTest
doc = {
'name':'Olivia',
'job':'web-developer'
}
# users 테이블을 만든다.
db.users.insert_one(doc)
mongoDB로 이동해 확인해보니 데이터가 잘 들어간 것을 확인할 수 있었다.
3. .gitignore에 config.json을 추가한다.
github에 숨기고 싶은 값을 보여주지 않기 위해 config.json을 따로 만들었는데 config.json이 push되어 올라가 버리면 낭패다! 꼭 .gitignore에 config.json을 추가해 해당 파일이 git에 올라가지 않도록 해야 한다. 여기까지 하면 완료!
'Back-End > Python' 카테고리의 다른 글
[Python] pymongo.errors.ServerSelectionTimeoutError (0) | 2023.03.30 |
---|