로그(Log) 미들웨어

윤태규·2024년 1월 4일

1) [게시판 프로젝트] 로그(Log) 미들웨어

👉 로그 미들웨어(Log Middleware)는 클라이언트의 모든 요청 사항을 기록하여 서버의 상태를 모니터링하기 위한 미들웨어입니다.

로그 미들웨어는 클라이언트의 요청을 기록하여 어플리케이션을 모니터링하고 문제가 발생할 때 빠르게 진단할 수 있습니다. 또한, 로그 데이터는 사용자의 행동을 분석하는 등 데이터 분석 작업에도 활용할 수 있습니다.

규모가 큰 프로젝트를 진행하게 되면, 화면에 표시되는 모든 로그를 일일이 확인하는 것은 불가능에 가깝습니다. 이런 경우를 대비해 로그 기능을 지원하는 morgan, winston과 같은 라이브러리를 사용하거나 AWS CloudWatch, Datadog와 같은 외부 모니터링 솔루션 서비스를 이용해 로그를 수집하거나 관리할 수 있습니다.

→ 최근에는 Datadog과 같은 서비스를 이용해 로그 수집, 로그 분석과 같은 서비스를 전문 지식 없이 빠르게 구현할 수 있답니다!

로그 레벨(level)로그의 중요도를 나타냅니다. 저희는 단순히 클라이언트의 요청 사항을 기록하기 위해 “info” 레벨을 사용하지만, “error”, “warn”, “debug"등 다양한 로그 레벨이 있으며, 같은 특정 상황에 따라 출력하는 레벨을 다르게 구현할 수 있습니다.

로그 미들웨어는 클라이언트의 요청이 발생하였을 때, 가장 먼저 실행되어야 하는 미들웨어 입니다. 그렇기 때문에, app.use를 이용한 전역 미들웨어 중에서 가장 최상단에 위치한 것입니다.

에러 처리 미들웨어는 클라이언트의 요청이 실패하였을 때, 가장 마지막에 실행되어야 하는 미들웨어 입니다. 따라서, app.use를 이용한 전역 미들웨어 중 가장 최하단에 위치한 것입니다.

에러 처리 미들웨어는 모든 에러를 관리하는 미들웨어, 서버 내부에서 발생한 에러를 상세하게 클라이언트에게 제공한다면 악의적인 사용자에게 공격의 표적이 될 수 있습니다.

그렇기 때문에, 에러 처리 미들웨어에서는 “서버에서 에러가 발생하였습니다.”와 같은 추상적인 내용을 클라이언트에게 전달하도록 구현해야합니다.

profile
끝까지 가자

0개의 댓글