python 프로젝트 클라우드에 올리기(Render)
학교 사이트를 크롤링하여 과제를 확인 후, 슬랙 봇으로 메시지를 보내는 기능을 파이썬으로 구현했는데 이걸 매일 아침 9시에 실행시키고 싶었다. 내 가상머신에 배포하면 가상머신을 내가 부팅시키지 않는 이상 실행시킬 수 없어서 안 됐고, AWS를 쓰자니 이 간단한 거 하나 돌리자고 괜히 리소스 할당하고 복잡하게 설정하고 싶진 않았다. 찾아보니 Render라는 클라우드 서비스가 있었는데 그냥 깃허브에 올린 프로젝트 가져와서 바로 배포할 수 있었다. 어차피 나만 쓰려고 만든거고 그냥 빨리 올려서 돌리고 싶었기 때문에 딱 적합하다 생각하여 Render에 올렸다.
Render 대시보드에서 Cron Job 만들기
- Render 대시보드 접속
https://dashboard.render.com/ - 왼쪽 상단 "New +" → Scheduled Job 클릭
- 설정 입력
| Name | assign-alarm |
| Schedule | 0 0 * * * ← 한국 시간 오전 9시 |
| Runtime | Python |
| Build Command | pip install -r requirements.txt |
| Start Command | python main.py |
| Region | Singapore |
Environment Variables 등록
- 아래쪽 Environment 섹션에 .env에 있던 값들 환경변수 등록
이렇게 등록 후 빌드했는데 빌드 실패.

ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory
'/C:/b/abs_.../aiobotocore...'
이런 에러 남.
requirements.txt 안에 Windows 경로가 섞여 있어 Render (리눅스 환경)가 인식 못 해서 생긴 에러.
그래서 기존 requirements.txt 삭제 후 새로 requirements.txt 생성해야했다.
rm requirements.txt
pip freeze --exclude-editable > requirements.txt
위와 같이 pip freeze 명령어로 생성할 수도 있지만 난 내가 직접 필요한 패키지만 추가했다.
다시 git commit & push 하고 보니 build error는 나지 않았다.
그리고 쿼리가 잘 실행되는지 테스트해보기 위해 run했다.
근데 코드 안에 분명 결과가 잘 나오는지 테스트해보기 위해 print문을 적어놨는데 로그에 빈 배열이 출력됐다.
그래서 코드에 각 단계마다 로그를 추가했다.
출력된 로그를 확인해보니 원인은 다음과 같았다.
내가 직접 사이트에 접속했을 때는 태그 안 text의 값이 한글이었는데 render로 돌렸을 때는 태그 안의 text 값이 영어라서 문제가 생겼었다.
위에서 Render에 프로젝트를 올릴 때 Region이 싱가포르였는데, 이 때문에 언어 설정이 영어로 세팅이됐나보다.
그에 따라 코드를 수정하니 문제 없이 정상적으로 잘 동작했다.

이제 학교 사이트를 들어가지 않아도 매일 아침 9시에 핸드폰으로 과제 알림을 받을 수 있게 됐다.
https://github.com/choeunbin03/assign_alarm