테스트 사이트 - 개발 중인 베타 버전입니다

운영중인 서비스가 알지못할 에러(uncaughtException)발생으로 중지되지 않게 하기

· 2년 전 · 1040

NodeJS에서 오류가 발생하면 프로세스가 중지됩니다.

물론 개발단계에서는 서버가 오류에 의해 중지되는 현상이 큰 영향을 주지 않지만 일단 서비스를 할 때에는 사정이 다릅니다. 이러저러한 이유로 알지못할 오류가 발생해도 서비스 자체가 완전히 정지되지 말아야 할 요구가 제기됩니다.

이번글에서는 서비스 프로세스가 정지되지 않게 하는 방법을 하나 설명해드리겠습니다.

결론부터 말한다면 지금 소개하려는 방법은 알지못할 오류 즉  uncaughtException 에러 발생할때 프로세스가 정지되지 않게 하여야 합니다.

NodeJS기반으로 하는 웹프로세스의 부트파일(가령 server.js라고 가정!)의 코드 맨 밑줄에 아래와 같은 코드를 삽입합니다.

[code]

process.on('uncaughtException', function (err) {
    console.error((new Date).toUTCString() + ' uncaughtException:', err.message);
    // 알지 못할 에러 발생시 실행되어야 할 로직을 여기에 삽입!
});

[/code]

 

이렇게 하면 uncaughtException 이 발생하여 프로세스가 완전히 꺼지는 현상을 막을수 있습니다.

도움이 되길 바랍니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시판 목록

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.
글쓰기