패스잇
백엔드 개발 · 중급

Express.js에서 에러 핸들링 미들웨어의 특징과 구현 방법을 설명해주세요.

힌트 · 에러 핸들링 미들웨어는 4개의 매개변수(err, req, res, next)를 가지며 마지막에 등록해야 합니다.

오류 우선 콜백next(err)중앙 집중식 오류 처리미들웨어 체인로깅

모범답안

Express.js에서 에러 핸들링 미들웨어는 애플리케이션 내에서 발생하는 오류를 중앙 집중적으로 처리하는 데 사용됩니다. 일반 미들웨어와 달리 (err, req, res, next) 네 개의 매개변수를 받습니다. err 매개변수가 있다는 것이 특징이죠.

에러 핸들링 미들웨어는 미들웨어 체인의 가장 마지막에 등록하는 것이 중요합니다. Express는 위에서부터 아래로 미들웨어를 실행하기 때문에, 에러 핸들링 미들웨어가 먼저 등록되면 다른 미들웨어에서 발생한 에러를 제대로 잡을 수 없습니다.

구현 방법은 간단합니다. 다음과 같이 함수를 정의하고 app.use()를 사용하여 등록하면 됩니다.

app.use((err, req, res, next) => {
  console.error(err.stack); // 에러 로깅
  res.status(500).send('Something broke!'); // 에러 응답
});

next(err)를 호출하면 Express는 에러 핸들링 미들웨어를 찾아서 실행합니다. 이를 통해 애플리케이션 전체에서 발생하는 오류를 일관되게 처리하고, 사용자에게 적절한 응답을 제공할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Node.js 면접 질문

← Node.js 면접 질문 전체 보기