노마드 코더/유튜브 클론

[JavaScript, Node.js] 유튜브 클론 정리 3장 (2) - Middlewares, Morgan

LooanCheong 2023. 4. 6. 22:35
반응형

머리글

이번 시간에는 Middelware은 무엇인지 알아보자

Middleware?

Middleware란 request와 response 사이에 있는 소프트웨어다.
즉 브라우저가 request를 하고 서버가 response를 하기 전에 이루어지는 무언가를 뜻한다.

우선 Middleware를 하나 생성해 보자.

const testMiddleware = (req, res, next) => {
	console.log("middleware");
   	next();
};

이전에 만들었던 handleHome 함수와 크게 차이가 없어 보인다.
하지만 차이점은 next라는 인수를 받고 있다는 것인데,
이는 다음 함수를 호출하기 위해 사용한다.

예시를 보자.

app.get("/", testMiddleware, hanldeHome);

이런 식으로 미들웨어를 사용할 수 있고,
미들웨어는 console.log를 수행하고 next()를 통해 handleHome을 호출한다.

물론 미들웨어를 더 많이 사용할 수도 있다.

app.get("/", testMiddleware, testMiddleware, hanldeHome);

이러한 예시도 가능하다.

그렇다면 이 미들웨어를 모든 URL에 사용하려면 어떻게 해야 할까?
일일이 추가를 해주어야 할까?
그렇지 않다.

app.use(testMiddleware);
app.get("/", handleHome);

이런 식으로 app.use를 사용하여 전역으로 미들웨어를 사용할 수 있다.
하지만 두 문장의 순서가 바뀌면 "/" 라우터에선 미들웨어가 작동하지 않는다.
순서에 유의하자.

미들웨어를 통해 로그인하지 않은 유저를 특정 콘텐츠에 접근하지 못하게 하는 등의 다양한 기능을 구현할 수 있다.

Morgan?

Morgan은 node.js용 'request logger middleware'이다.
우선 설치부터 해보자.

npm i morgan

그리고 사용을 해보자.

import logger from "morgan";

app.use(logger("dev"));

미들웨어를 설정해 주고, 아무 URL로 이동하게 되면 다음과 같이 동작한다.

이런 식으로 로그를 조금 더 편리하게 확인할 수 있다.
미들웨어를 만드는 방법도 있지만,
이미 존재하는 미들웨어를 굳이 사용하지 않을 이유도 없다.

 

마무리

이번 시간에는 미들웨어의 역할과 미들웨어를 더 편하게 사용할 수 있는 Morgan에 대해서 알아보았다.

다음 시간에는 라우터에 대해서 알아보자.

반응형