IT world

미들웨어 본문

그 외

미들웨어

엄킹 2019. 6. 10. 00:06

미들웨어(Middleware)


미들웨어란 응용소프트웨어가 운영체제로부터 제공받는 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 소프트웨어이다. 

독립적으로 동작하는 자신만의 소프트웨어일 수도 있으며 함수들의 집합으로 사용될 때도 있으며 서로 다른 종류의 응용 프로그램 사이에서 조정 및 중개 역할을 하는 프로그램을 의미한다. 


이름처럼 중간에 껴서 요청에 대한 응답을 처리해주는 프로그램이다. Express에 요청이 들어올 때 응답을 보내기 전에 미들웨어가 지정한 동작을 수행한다. 


미들웨어는 서로 다른 소프트웨어를 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어로 어떤 기능을 사용할 수 있도록 연결해주는 소프트웨어이다.


사용자 프로그램과 서버 프로그램 사이에 존재하면서 클라이언트와 서버간에 연결을 관리하면서 클라이언트의 작업 처리요구를 서버에 전달하는 일을 한다. 


노드에서는 미들웨어를 사용하여 필요한 기능을 순차적으로 실행 할 수 있다. Express에서는 미들웨어 이외에도 라우터도 사용하는데 미들웨어나 라우터는 하나의 독립된 기능을 가진 함수라고 할 수 있다. 미들웨어 함수는 요청객체, 응답객체, 요청도중 다음 미들웨어 함수에 대한 엑세스 권한을 갖는 함수이다. 즉 거쳐가는 함수들을 의미한다. next 함수를 이용해서 다음 미들웨어로 현재 요청을 넘길 수 있으며 순차적으로 처리되는 것을 통해 순서가 중요함을 확인할 수 있다.



[미들웨어의 예]

app.use안에 작성된 것들은 미들웨어이며 use()메소드를 사용해서 미들웨어로 등록해두면 모든 클라이언트 요청을 받아드리고 각각의 미들웨어는 next()메소드를 호출하여 그 다음 미들웨어가 처리할 수 있도록 순서를 넘길 수 있다. 요청이 올때마다 이 미들웨어를 거치고 next 함수를 통해 다음 미들웨어로 넘어간다.

미들웨어는 순차적으로 시작됨을 확인해야하고 reqest와 response를 매개변수로 받아 조작할 수 있음을 확인해야 한다. 

next함수를 사용하지 않으면 더 이상 진행되지 않기 때문에 사용해야 한다.



미들웨어의 종류로는 데이터베이스 미들웨어, TP-모니터 미들웨어, RPC 미들웨어, MOM 미들웨어 등이 있다.


미들웨어는 변경 사항이 있는 경우에 오직 서버만 변경되기 때문에 관리와 유지보수가 간편해지고 확장성이 좋다. 




'그 외' 카테고리의 다른 글

Next.js  (0) 2024.03.27
템플릿 엔진(Template Engine)  (0) 2019.05.19
Comments