SOOJLE의 데이터베이스는 저번 주 의사결정에 의하여 최종 MongoDB로 결정되었다. 따라서 앞으로의 개발을 위해 서버에 MongoDB를 연결하는 작 업이 필요하다.
MongoDB 와 Pymongo 연결
Python에서 MongoDB를 컨트롤하기 위하여 Pymongo를 이용.
init_database.py
서버 구조 파일(.py) 중 어디에서나 DB에 접근할 수 있도록, Flask 모듈의 'g' 전역 변수 MongoDB의 커서를 연결시켜 두었다. 이로써 Flask가 import된 곳이라면 언제든지 DB의 커서에 접근을 할 수 있다.
SOOJLE application.py의 DB관련 Decorator
단, g 전역 변수는 Flask의 내부 변수이므로 Request 시에만 사용할 수 있다. 따라서 데코레이터를 이용하여 서버에 요청이 올 때마다 전역변수 g에 DB 커서를 연결을 해줌으로써 위 코드와 같이 바로 DB 커넥션에 연결할 수 있게 된다. 또한 요청이 끝나게 되면 DB 연결을 해지한다.
MongoDB 관리자 계정 잠금
MongoDB는 초기 관리자 계정 잠금 기능이 비활성화되어있다. 따라서 데이터 보안을 위해, 관리자 계정만 DB에 접근할 수 있도록 계정 설정을 해야 한다. MongoDB Server에 관리자 계정이 설정되었기 때문에 Pymongo 접속 또한 관리자 계정을 통해서 접속을 해야 DB에 접근이 가능하다.