[TIL] Swagger, Naver Login 연동, 게시판 프론트 & 백엔드 연결
in TIL on Til Last modified at:
2025-02-14 TIL
📝 TIL (Today I Learned)
🔗 원본 이슈: #17
📅 작성일: 2025-02-14
🔄 최종 수정: 2025년 02월 17일
🍀 새롭게 배운 것
- Swagger를 통한 API gateway 문서 작업
- Naver Login 연동
- 게시판 프론트 작업 (HTML, CSS, JS)
- 게시판 프론트와 백엔드 연결
- DB 연동 후 게시판 리스트 및 이미지만 가진 포토 후기 게시판 연결
🍎 오늘의 문제 상황
- Render를 통해 Flask 서버를 배포했는데, 일정 시간 동안 요청이 없으면 500 Internal Server Error가 발생하는 문제가 있었다.
- 오랫동안 요청이 없을 경우 서버가 다운된 것처럼 작동하지 않는 문제가 반복적으로 발생했다.
원인 분석
Render
의 무료 플랜에서는 일정 시간이 지나면 자동으로 서버가 sleep 상태로 전환된다.- 이후 요청이 들어오면 다시 실행되지만, Cold Start(서버가 다시 실행되는 과정) 때문에 첫 번째 요청에서 오류가 발생할 가능성이 높다.
- Flask의 경우 실행 중이던 특정 환경 변수나 세션 정보가 초기화되면서 예기치 않은 500 에러가 발생할 수 있다.
해결 과정
UptimeRobot
을 활용하여 일정 주기로 서버에 요청을 보내는 방법을 적용했다.- UptimeRobot에서 5초마다 서버의 엔드포인트에 GET 요청을 보내도록 설정
- 주기적인 요청을 통해 서버가 계속 활성 상태를 유지하도록 유도
- 결과적으로 서버가 유지되었다.
🦄 느낀 점
- 무료 배포 플랫폼에서는 서버 유지 문제를 고려해야겠다.
- glitch도 같은 문제를 가지고 있다.
- 이를 위해 주기적으로 요청을 보내는 방식을 사용해야 겠다.
- 다음에는 AWS의 배포 서비스를 이용해 더 적절한 솔루션을 찾아야 겠다.
🐬 참고 자료
- [Swagger 문서] (https://banana-flask-app.onrender.com/apidocs/)