헤로쿠(heroku)를 사용하다보면 매우 쉽게 만날 수 있는 H10 App Crashed의 다양한 오류 해결 방법 중 2가지에 관한 내용을 정리해 봅니다.
#1 오류 메시지 확인
분명 local에서는 잘 작동하던 것들도 heroku에 업로드하면 위와 같이 어플리케이션 에러를 쉽게 만날 수 있는데, 위에서 알려주는 다음 명령어인 "heroku logs --tail"을 작업중인 터미널에서 입력하여 원인을 찾아봅니다.
날짜 어쩌구 저쩌구 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=sws-wiki.herokuapp.com request_id=4a1aba64-a4c0-4a1e-8bb4-231d3cc51bbb fwd="95.180.36.112" dyno= connect= service= status=503 bytes= protocol=https
날짜 어쩌구 저쩌구 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=bicute.herokuapp.com request_id=44a1adc6-1f14-4434-b8f7-514216845fdd fwd="95.180.36.112" dyno= connect= service= status=503 bytes= protocol=https
#2 오류 발생 원인과 해결 방법
원인은 말 그대로 응용 프로그램의 충돌입니다.
여러가지 이유가 있겠으나 다음과 같은 경우에 발생하기도 합니다.
1. Procfile의 오류
procfile은 어떤 파일을 실행할지 정의하는 파일로 app.js 등이 있는 루트 디렉토리에 확장자 없이 생성한 후,
다음과 같이 실행할 파일명을 지정해 줍니다.
이 실행되는 파일의 이름(주로 많이 사용되는 server.js/ index.js / app.js)이 사람마다 다르기 때문에 잘못된 이름이 작성되었을 경우 오류가 발생할 수 있습니다.
(※ web:과 node 사이에 공백이 들어오지 않습니다. 공백이 있을경우 오류가 발생하므로 주의)
web:node app.js
2. 환경변수가 누락된 경우
데이터 베이스 등 로컬에서 작성하던 env 파일에 있는 필수 환경변수가 누락된 경우입니다.
설정하는 방법은 다음과 같습니다
(1) 진행중인 프로젝트 페이지로 이동하여 Settings를 클릭합니다.
(2) Config Vars 항목의 Reveal Config Vars를 클릭합니다.
(3) 사용중이던 환경변수의 Key값과 Value 값을 넣어줍니다.
이렇게 설정한 후 다시 업데이트를 진행해 보면 App Crash가 조금은 나아졌을지도...?