패스잇
백엔드 개발 · 심화

Express.js에서 미들웨어 체인이 비동기 에러를 처리할 때 발생할 수 있는 문제점과 async/await 환경에서의 에러 핸들링 전략을 설명해주세요.

힌트 · 비동기 에러는 자동으로 next()로 전달되지 않으므로 express-async-handler나 try-catch로 명시적 처리가 필요합니다.

미들웨어 체인에러 핸들링async/awaitnext(err)중앙 집중식 에러 처리

모범답안

Express.js 미들웨어 체인에서 비동기 에러는 next()로 자동 전달되지 않는 문제가 있습니다. 일반적인 동기 에러는 Express가 알아서 처리하지만, async/await를 사용하는 경우 try...catch 블록으로 감싸거나, express-async-handler 같은 래퍼 함수를 사용해야 합니다.

try...catch를 사용하면 각 미들웨어에서 에러를 잡아 next(err)로 전달할 수 있습니다. express-async-handler는 이 과정을 간편하게 해줍니다.

중앙 집중식 에러 처리를 위해서는 마지막 미들웨어에서 err 인자를 받는 에러 처리 미들웨어를 정의하여 모든 에러를 한 곳에서 처리하는 것이 좋습니다. 이렇게 하면 코드 중복을 줄이고 에러 로깅, 사용자 정의 에러 페이지 표시 등을 일관되게 처리할 수 있습니다.

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

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

함께 보는 Node.js 면접 질문

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