본문 바로가기
개발/개발일기

20221117 미니프로젝트 -4[트러블슈팅편]

by 전재경 2022. 11. 17.

Flask Blueprint 라우팅 문제
프로젝트를 효율적으로 관리하기 위해서, 저희 조는 Blueprint를 사용했습니다. app.py에서 다른 Blueprint를 전부 호출하는 방식으로 사용했는데, 이 때 url_prefix를 app.py에 설정해 두었었습니다. 각자 다른 Python 파일에서 작업하는 동안 url_prefix의 기능을 몰랐거나, 까먹는 경우가 있었고 이 때문에 프론트와 백이 연결이 정상적으로 안되는 문제가 있었습니다. 이는 JS에서 url 값을 맞춰주는 것으로 간단하게 해결할 수 있었습니다.

 

1. Flask Blueprint 라우팅 문제

 

프로젝트를 효율적으로 관리하기 위해 Blueprint를 사용했다.

 

app.py에서 다른 Blueprint를 전부 호출하는 방식으로 사용했는데, url_prefix를 app.py에 설정해 두었디.

 

각자 다른 Python 파일에서 작업하는 동안 url_prefix의 기능을 잘 몰라서 까먹는 경우가 있었고

 

이 때문에 프론트와 백이 연결이 정상적으로 안되는 문제가 있었다.

app.register_blueprint(login, url_prefix="/home")
app.register_blueprint(register, url_prefix="/register")
app.register_blueprint(mainpage, url_prefix="/mainpage")
app.register_blueprint(addpage, url_prefix="/addpage")
app.register_blueprint(itempage, url_prefix="/itempage")

이때 login, url_prefix="/home" 값을 /home이 아닌 /login 값으로 줘서

 

login.py에 있는 /login값과 겹쳐서 라우트주소를 못찾았던 것이다. 모를때는 login.py와 login.js 파일에서만 계속 답을 찾으려 하다보니 찾지 못했다. 이게 문제인것 같다.

 

오류를 찾을때 무조건 맞는데,,, 무조건 이렇게 되야하잖아,,,

 

하면서 답을 찾으려다 보니 답이 안찾아졌다. 분명 무언가가 잘못 되었기에 실행이 안된거고 그곳에만 문제가 있는게 아니라 다른 그 상위에서 내려오는 곳부터 잘못이 되었을 수도 있다. 타고타고 가면서 오류를 찾는게 중요한것이라는걸 배웠다.

 

2. DB의 ID와 PW 유출 문제

 

무작정 Git에 내 정보들을 다 올려도 상관없다고 생각했다.

그런데 그것이 아니였다.

id와 password가 유출될 경우 트래픽이 증가될 수 있고, aws와 연동해 놓을 경우 많은 금액을 내야할 수도 있다는 것을 알게되었다. 이를 방지하기 위해 dotenv 모듈을 사용하였다.

그리고 이를 .env 파일을 이용해 각자의 로컬에서 안전하게 db의 정보와 JWT의 Secret key를 관리할 수 있었다.

 

 

댓글