패스잇
백엔드 개발 · 중급

Express.js에서 미들웨어의 실행 순서와 next() 함수의 역할에 대해 설명해주세요.

힌트 · 미들웨어는 등록 순서대로 실행되며, next()를 호출해야 다음 미들웨어로 제어권이 넘어갑니다.

미들웨어 스택요청-응답 주기next()실행 순서제어 흐름

모범답안

Express.js에서 미들웨어는 요청이 들어왔을 때 실행되는 함수들의 스택이라고 생각하시면 됩니다. 이 미들웨어들은 app.use()나 app.get(), app.post() 등을 통해 등록된 순서대로 실행됩니다.

각 미들웨어는 요청 객체(req), 응답 객체(res), 그리고 next() 함수를 인자로 받습니다. next() 함수는 현재 미들웨어의 작업을 마치고 다음 미들웨어로 제어 흐름을 넘겨주는 역할을 합니다. 만약 next()를 호출하지 않으면 요청은 거기서 멈추게 되고, 응답이 클라이언트로 전송되지 않을 수 있습니다.

예를 들어, 로깅 미들웨어, 인증 미들웨어, 그리고 최종 라우트 핸들러가 있다면, 요청이 들어왔을 때 로깅 미들웨어가 먼저 실행되고, next()를 호출하면 인증 미들웨어가 실행됩니다. 인증이 성공하면 다시 next()를 호출하여 최종 라우트 핸들러가 실행되는 방식으로 진행됩니다.

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

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

함께 보는 Node.js 면접 질문

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