[TIL] Swagger, Naver Login 연동, 게시판 프론트 & 백엔드 연결

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/)