Spreky(스프레키) 프로젝트-Django Heroku 배포하기
기숙사 기상송 신청 웹사이트 개발하기
Spreky 프로젝트
한민고등학교에는 보통 다른 일반 학교에는 없는 ‘정보과제연구’라는 과목이 있다. 정보과학과 관련된 주제를 직접 선정해서 1년동안 탐구를 진행하는 과목이다. 마침 겨울방학동안 선물받은 ‘Do it Django’라는 책으로 열심히 django를 팠던 터라 주제로 Django를 이용한 웹사이트 개발을 골랐다.
AWS vs Heroku
AWS는 아마존에서 제공하는 서버호스팅 상품이다. 처음에는 do it django 책에 따라서 AWS lightsail을 이용해 웹사이트를 돌렸지만 물 3개월 이후에는 월 4000정도의 비용이 나오고 물질적인 상품을 구매하는 것이다 보니 학교에서 지원 절차가 까다로울 듯 했다. 유료 서비스다 보니 서버 백업이든 뭐든 추가비용이 청구된다. 같은 과목을 듣는 친구도 뭐 설정 잘못했다가 30만원이 증발했다나 뭐라나 무섭다…;; 가장 중요한 것은 어렵다….. 로그파일 보기도 어렵고 ningx랑 gunicorn이랑 제대로 웹사이트를 만들기 위해서는 공부해야될 것들이 너무 늘어난다. 어렵긴 하지만 그만큼 배울게 많아서 시간 여유가 있었느면 AWS를 고집할 생각이였으나, 당장 기숙사와 2학기 중간고사 이후에 기숙사 신청곡 기능을 Spreky 사이트에서 제공하겠다고 약속해 놓은 상태여서 Heroku를 이용하는 방식으로 바꾸기로 했다.
Heroku 배포과정에서 ERROR
어느 것 하나 쉬운게 없다…
결국 선배한테 SOS처서 같이 2시간은 끙끙댄 것 같다. 미래의 나를 위해 해결한 문제들 중 기억나는 것들을 기록해두겠다.
venv를 gitignore에 작성하지 않음
venv는 내 로컬(컴퓨터)의 가상환경 설정에 대한 파일인데 이게 github에 실수로 올라간 것이다. 이렇게 된 경우, heroku도 github에서 파일을 받은 뒤 venv 가상환경을 만들게 되는데 이 과정에서 실수로 원격저장소에 올라간 내 컴퓨터의 venv폴더와 중첩되어 오류가 발생할 가능성이 있다.
static 로드 문제
settings.py에서 DEBUG = True
일 경우 django에서 알아서 static을 잘 찾도록 도와주지만 DEBUG = False
일 경우 collectstatic을 통해 정적 파일을 모두 특정 폴더에 모은 뒤 서버를 런시킨다고 한다. 사실 어디서 문제였던건지는 잘 기억나지 않는다.
어쨋든 정상적인 배포에 성공했다. 별거없는 웹사이트인데 내가 이것저것 되는대로 하다보니 여러부분에서 뭐가 많이 꼬여있었나보다,,,, 아침에 일어나서부터 계속 에러만 잡다가 멘탈이 빠게져서 프로젝트를 던져버릴뻔한 나를 구원해준 ssingunkim
에게 감사를 표한다.