React 프로젝트 (북마크)

sam_il·2022년 11월 3일

✅ 헤로쿠 배포
https://velopert.com/594

❗ 오류사항
json-server를 사용하여 만든 프로젝트를 heroku를 통해 배포하였다. json-server를 사용하기 위해 index.js를 작성했으나 헤로쿠는 데이터를 영속적으로 저장해주지 않았다.

참고
Heroku 파일 시스템은 임시적입니다. 즉, dyno가 실행되는 동안 파일 시스템에 대한 변경 사항은 해당 dyno가 종료되거나 다시 시작될 때까지만 지속됩니다. 각 dyno는 가장 최근 배포에서 파일 시스템의 깨끗한 복사본으로 부팅됩니다. 이는 Docker와 같은 컨테이너 기반 시스템이 작동하는 수와 유사합니다.

또한 정상적인 작업에서 dyno는 "Cycling"이라는 프로세스로 매일 다시 시작됩니다.

이 두 가지 사실은 Heroku의 파일 시스템이 데이터의 영구 저장에 적합하지 않음을 의미합니다. 데이터를 저장해야 하는 경우 Postgres(데이터용)와 같은 데이터베이스 애드온 또는 AWS S3(정적 파일용)와 같은 전용 파일 스토리지 서비스를 사용하는 것이 좋습니다. AWS 계정을 설정하여 S3 버킷을 생성하고 싶지 않다면 여기에 정적 자산의 저장 및 처리를 처리하는 애드온도 있습니다.

https://stackoverflow.com/questions/51035778/why-heroky-reset-my-file-data-json-everyday

✅ 해결방안은 node.js로 서버를 구축하고 mongoDB로 데이터를 저장하는 방법과 위의 글과 같이 AWS와 같은 전용 파일 스토리지 서비스를 이용하는 방법이 있었다.

💡 수정방향
node.js(express)와 mongoDB를 사용하여 heroku로 배포?

실제 배포를 위한 프로젝트는 아니였기 때문에 잠시 보류해두기로 했다. (이러한 처리를 할 수 있다는 점만 보여주기 위한 프로젝트이기 때문)

(배포를 고려하지 않고 임시 서버로 json-server를 사용하였는데 heroku로 배포하다보니 위와 같은 문제점 발생😥, 프로젝트 계획 시 꼭 배포까지 고려하기)

profile
🍀

0개의 댓글