이번 게시글을 보기 전에 지난 게시글에서 Web API Framework가 제공하는 여러가지 기능들에 관해 알아보았으니,
먼저 읽어보는 것이 좋다.
우리는 전공 과정을 공부하며 파이프라이닝이라는 단어를 자주 들어봤을 것이다. (CPU 파이프라이닝 등..)
어느 파트에서 등장하느냐에 따라 의미가 조금씩 다르지만, 시사하는 바는 비슷하다. 어떤 절차, 단계적으로 진행되는 작업의 흐름인 것이다.
컴퓨터 공장에서 컴퓨터를 생산하는 과정을 한번 떠올려보자, 한 명의 사람이 부품을 분류, 조립, 점검, 포장을 한번에 작업하지 않는다. 각 과정을 세분화하여, 이를 책임지고 수행하는 담당자를 라인마다 배치하고 이에 맞춰 수행하게 될 것이다. 이 실생활의 흐름을 잘 기억하고 다음 그림을 살펴보자.
지난 시간에 Web API Framework를 설명하는 과정에서 Request - Response의 중간 과정에 해당했던 모델 바인딩, 라우팅, 모델 유효성 검사, 요청 인증 & 인가이 일련의 과정이 기억해보자.
이 일련의 절차 또한 하나의 파이프라인과 유사하지 않은가?
각각의 단계를 책임지는 요소(Component = 담당자)들이 존재하며, 요청에 들어왔을 때 단계별로 수행하게 된다.
Microsoft 사에서는 이 흐름에 관해 Middleware Pipeline라는 단어로 정의한다. 그리고 각 과정을 담당하는 요소에 관해 미들웨어 컴포넌트(Middleware Component) 혹은 이를 줄여 미들웨어(Middleware) 라고 부른다.
이 미들웨어는 ASP.Net Core에서 함수로 제공하기도 하지만, 우리 개발자가 직접 개발하여 추가할 수도 있다.
이 미들웨어의 중요한 역할은, 어떤 사용자의 요청에 관해 잘못된 부분이 있으면 이를 엔드 포인트로 도달시키기 이전에
예외를 처리하여, Response를 별도로 반환할 수 있다. 또한 사용자의 요청에 관해 추가적인 가공을 수행할 수도 있다.
필자의 경우, 모 기업의 산학협력을 수행하며 사용자의 요청을 검증하는 미들웨어를 직접 구현해 추가해본 경험이 있다.
아마 미들웨어에 관해 궁금하여 조사해본 사람은 이 그림을 자주 접했을 것이다. 하지만 이 그림만 처음보면 미들웨어가 도대체 뭐하는 것인지 감이 안잡혔을 것이다.
하지만 앞서 설명한 내용을 바탕으로 살펴보면 아주 쉽고 직관적인 그림처럼 느껴질 것이다.
ASP.Net Core 프레임워크에서 기본적으로 UseOOO 형태의 메소드가 지원된다. 이를 통해 용도에 맞는 미들웨어를 추가할 수 있다. 다음 시간에는 Controller 와 Minimal API와 관련된 개념에 관해 다뤄보겠다.
'Server' 카테고리의 다른 글
[Concurrency] 동시성 개요 (0) | 2024.12.18 |
---|---|
[Concurrency] 스레드 개요 (0) | 2024.07.11 |
[Web 서버 기초] Web API Framework와 ASP.Net Core (0) | 2024.05.31 |
[Web 서버 기초] Web API는 어떻게 동작하는가? (Feat. CRUD) (1) | 2024.05.29 |
[Web 서버 기초]API 와 Web API (1) | 2024.05.29 |