Express.js는 Node.js 기반의 웹 애플리케이션 개발을 위한 강력한 프레임워크입니다. Express.js를 사용하면 손쉽게 라우팅 및 미들웨어 개발이 가능해집니다. 이번 포스트에서는 Express.js의 미들웨어 개념에 대해 알아보도록 하겠습니다.
미들웨어란 무엇인가?
미들웨어(Middleware)는 Express.js 애플리케이션에서 요청과 응답 사이에 위치하여 중간 처리를 담당하는 함수입니다. Express.js에서 요청이 들어올 때 미들웨어가 순차적으로 실행되며, 요청과 응답을 처리하고, 다음 미들웨어로 제어를 전달합니다.
미들웨어 함수의 구조
미들웨어 함수는 일반적으로 3개의 매개변수를 가집니다. req
, res
, next
입니다.
function middlewareName(req, res, next) {
// 미들웨어 처리 로직
next();
}
req
는 요청(Request) 객체를 나타냅니다.res
는 응답(Response) 객체를 나타냅니다.next
는 다음 미들웨어로 제어를 넘기는 함수입니다.
주의: 미들웨어 함수에서 next()
를 호출하지 않으면 다음 미들웨어로 제어가 넘어가지 않고 응답이 클라이언트로 전송됩니다.
미들웨어 사용하기
미들웨어를 사용하기 위해서는 app.use()
함수를 사용하여 애플리케이션에 등록해야 합니다.
app.use(middlewareName);
미들웨어 함수를 사용하는 순서에 따라 요청과 응답이 처리되므로, 등록된 순서에 따라 미들웨어 함수가 실행됩니다.
예시: Logger 미들웨어 구현
function logger(req, res, next) {
console.log('[' + new Date().toISOString() + '] ' + req.method + ' ' + req.url);
next();
}
app.use(logger);
위 예시는 요청이 들어올 때마다 로그를 출력하는 미들웨어 함수입니다. logger
함수는 현재 시간, HTTP 메서드, 요청 URL을 로그로 출력한 후 next()
를 호출하여 다음 미들웨어로 제어를 넘깁니다. 이렇게 사용자 정의 미들웨어 함수를 만들어 Express.js 애플리케이션에 등록하면 원하는 처리를 수행할 수 있습니다.
결론
Express.js의 미들웨어 개념을 이해하고, 미들웨어 함수를 작성하여 필요한 처리를 수행할 수 있게 되었습니다. Express.js는 다양한 내장 미들웨어와 함께 제공되며, 필요한 경우에는 사용자 정의 미들웨어를 만들어 추가할 수도 있습니다. 미들웨어를 통해 웹 애플리케이션 개발이 더욱 간편해지고 유연성을 갖추게 됩니다.