
171
10
장
미들웨어
우리는 이미 미들웨어를 사용해본 경험이 있습니다.
body
-
parser
,
cookie
-
parser
,
static
등의 기존 미들웨어를 사용했고, 템플릿 콘텍스트에 날씨 데이터를 추가하거나 플래시 메시지
를 사용할 때 직접 만들어보기도 했습니다. 그런데 미들웨어는 정확히 무엇일까요?
개념적으로 말한다면
미들웨어
는 기능, 구체적으로 애플리케이션으로 들어오는
HTTP
요청 위
에서 동작하는 기능을 캡슐화하는 방법입니다. 현실적으로 말한다면 미들웨어는 요청 객체, 응
답 객체,
next
()
함수의 세 가지 매개변수를 받는 함수입니다(오류 처리를 위해 네 번째 매개
변수를 받는 형태도 있는데 이번 장 뒷부분에서 설명합니다 ).
미들웨어는
파이프라인
pipeline
안에서 실행됩니다. 파이프라인은 송수관이라고 생각해도 됩니
다. 송수관의 한쪽 끝에서는 펌프로 물을 끌어올리고, 송수관 중간에는 게이지와 밸브가 있습
니다. 이 비유에서 잊지 말아야 할 것은 순서가 중요하다는 겁니다. 밸브 앞에 압력 게이지가
있을 때와, 밸브 다음에 압력 게이지가 있을 때 결과는 다릅니다. 마찬가지로 밸브를 통해 물에
무언가를 넣는다면 그 밸브 ‘다음’에는 항상 물에 물질이 섞여 있습니다. 익스프레스 앱에서는
app
.
use
를 호출해 파이프라인에 미들웨어를 삽입합니다. ...