<오늘 한 일/>
- 배포
- 사실 배포는 진작 성공했었다
- 근데 데이터 업데이트 시 중복 데이터가 들어가는 것도 문제였고, json 파일을 받아서 loaddata 하는 방식으로는 자동화가 어려웠다
- 전시 데이터 담당한 팀원분이 어제 전시 데이터를 받아서 중복 데이터를 거르고 데이터베이스에 저장하는 로직을 구현했다
- 나는 오늘 배포 담당 팀원이랑 같이 업데이트 된 백엔드를 git pull 해서 배포환경에 맞게 설정하는 작업을 했다
- 일단 전시 데이터는 매주 토요일에 업데이트 되고, 필드가 추가돼서 기존에 받아뒀던 데이터를 다시 삭제하고 받아야 하는 상황이었다
- 이전엔 loaddata 해서 받았지만 이제는 python 파일을 실행하면 데이터가 데이터베이스에 저장되는 방식으로 바꼈기 때문에 해당 파일을 실행시켜야 했다
- 원래는 실행 부분이 이렇게 되어 있는데
# exhibitions/utils.py
schedule.every().saturday.at("12:00").do(update_exhibition) # 매주 토요일 12시에 실행됩니다.
while True:
schedule.run_pending()
time.sleep(60) # 1분마다 실행되는 작업을 확인합니다.
- 초기 데이터를 넣는 게 필요해서 해당 부분을 주석처리 하고 이렇게 수정했다(우분투에서)
# exhibitions/utils.py
if __name__=="__main__":
update_exhibition()
- 이거 맞나..? 여튼 이렇게 하면 인터프리터 내에서 직접 실행하는 경우에 if문 아래 코드를 실행하라는 거라고 한다
- 그리고 yml 파일에 python manage.py migrate 다음에 && 붙이고 python exhibitions/utils.py 를 했다
- 근데 데이터베이스에 담기지 않았다
- 그래서 열심히 또 서칭을 한 결과 백엔드 도커 컨테이너 내부에 들어가서 utils.py를 실행해보는 거였다
- 그렇게 했더니 데이터베이스에 API로 가져온 전시 데이터가 잘 들어왔다
- 하지만 난관은 지금부터..
- 우리 페이지에 들어가니 콘솔창에는 아래 경고창이 뜨고 백엔드 주소로 들어가니 502 Bad Gateway가 나왔다
Access to fetch at 'https://www.b4-exhibitions.shop/api/exhibitions/'
from origin 'https://b4-exhibitions-now.netlify.app' has been blocked by
CORS policy: No 'Access-Control-Allow-Origin' header is present on the
requested resource. If an opaque response serves your needs, set the
request's mode to 'no-cors' to fetch the resource with CORS disabled.
- 502는 많은 이유가 있어서 도대체 우리에게 맞는 해결법을 찾을 수가 없었다
- 한 1시간 반인가 2시간을 고민하다가 튜터님을 찾아갔다
- 튜터님이랑 같이 디버깅을 하다보니 yml 파일이 문제였다
- 아까 써놓은 python exhibitions/utils.py때문이었다,,,,,,,
- 그걸 지우니까 제대로 서버에서 응답을 했고 그렇게 배포에 성공했다...!
- 디테일 수정
- 진짜 아주 소소한 작업을 했다
- 본격적으로 사용자 테스트를 받기 전에 금방 수정할 수 있었던 것들..!
- 메인페이지에서 이미지 클릭 시 상세페이지로 이동하는 기능
- 전시 카드 가운데 정렬
- og tag 이미지 경로 수정
<느낀 점/>
- 드디어...!! 배포에 성공...!!!! 드디어 피드백을 받는다...!!!!!!
- 조금 아쉬운 점들을 뒤로하고 이제 사용자 피드백에 집중해 보려고 한다
- 그나저나 오늘도 알고리즘 문제를 풀지 못 했다는 점이...내 마음을 무겁게 한다....ㅎ...
<내일 목표/>
- 알고리즘 문제 풀기
- 사용자 피드백 바탕으로 프로젝트 개선하기