미들웨어(Middleware)란?

미들웨어(Middleware)란?

미들웨어는 컴퓨터 제작 회사가 사용자의 특정한 요구대로 만들어 제공하는 프로그램으로, 운영 체제(OS)와 응용 소프트웨어의 중간에서 조정과 중개의 역할을 수행하는 소프트웨어이다     

-위키백과-

 

미들웨어는 운영 체제(OS)와 응용 소프트웨어 중간에서 중간 매개체 역할을 하는 소프트웨어이다. 

이러한 미들웨어는 애플리케이션, 데이터, 사용자를 연결하는 요소처럼 동작한다. 

 

AWS는 미들웨어를 서로 다른 애플리케이션이 서로 통신하는 데 사용되는 소프트웨어라고 말한다. 즉 애플리케이션들이 효율적으로 연결되는 것을 돕는 소프트웨어라는 것이다.

 

 

미들웨어의 유형

메시지 지향 미들웨어(Message Oriented Middleware)

메시지 지향 미들웨어는 서로 다른 메시징 프로토콜을 사용하는 애플리케이션 구성요소가 서로 통신하며 메시지를 교환할 수 있도록 한다. 예를 들어 메시지 대기열 또는 메시지 브로커 등이 있다.

 

 

원격 프로시저 호출 미들웨어

원격 프로시저 호출 미들웨어는 하나의 애플리케이션이 동일한 컴퓨터 혹은 다른 컴퓨터에서 실행되는 다른 애플리케이션에서 프로시저를 트리거 할 수 있도록 한다.

 

 

데이터베이스 미들웨어

데이터베이스 미들웨어는 백엔드 데이터베이스에 대한 접근 및 상호 작용들 단순화한다. 일반적으로 일종의 SQL 데이터베이스 서버들을 데이터베이스 미들웨어라고 한다.

 

 

API 미들웨어

API 미들웨어는 애플리케이션을 위한 API를 생성, 노출 및 관리하는데 사용할 수 있는 툴을 제공하여 다른 사용자가 이러한 API에 연결할 수 있도록 한다. 

 

 

트랜잭션 미들웨어

트랜잭션 미들웨어는 분산 네트워크 환경에서 데이터 트랜잭션 실행을 지원한다.

 

 

비동기 데이터 스트리밍 미들웨어

비동기 데이터 스트리밍 미들웨어는 중간 저장소에서 데이터 스트림을 복제하여 어러 애플리케이션 간 데이터 공유를 지원한다. 대표적으로 Apache Kafka가 있다.

 

 

미들웨어의 활용 사례

1. 신규 애플리케이션 개발

미들웨어는 현대적인 런타임(Runtime)을 지원한다. 개발자는 기반 런타임, 프레임워크 및 프로그래밍 언어 세트 등을 지원하는 다양한 플랫폼 전반에서 작업할 수 있다. 또한 웹서버, SSO, 메시징 및 인메모리 캐싱등 일반적으로 사용되는 기능도 제공한다.

 

 

2. 기존 애플리케이션 최적화

미들웨어는 이식성과 향상된 성능을 지원하여 개발자들이 다양한 툴을 활용하며 레거시 애플리케이션을 최적화하도록 도와준다.

 

 

3. 포괄적인 통합

미들웨어 통합 툴은 내부 및 외부 시스템을 연결할 수 있다. 트랜스포메이션, 연결성, 결합성 및 엔터프라이즈 메시징과 같은 통합 기능이 SSO 인증과 결합되어 다양한 애플리케이션 전체에 기능을 보다 쉽게 확장할 수 있도록 돕는다.

 

 

4. API

많은 미들웨어 서비스는 애플리케이션 간 통신을 지원하는 툴, 정의 및 프로토콜 세트인 API를 통해 접근할 수 있다. API를 활용해 공통 레이어를 통해 완전히 다른 서비스를 연결할 수 있다.

 

API 연결을 지원하는 서비스는 일종의 미들웨어라고 할 수 있다. API를 통해 소프트웨어를 통합하고, 하나의 애플리케이션이 다른 서비스와 통신할 수 있도록 지원할 수 있다. 

 

 

5. 데이터 스트리밍

널리 사용되는 오픈소스 미드웨어 툴 중 Apache Kafka가 있다. 이처럼 미들웨어는 비동기 데이터 스트리밍을 지원한다. 따라서 데이터가 여러 애플리케이션 간 공유될 수 있도록 중간 저장소에 데이터 세트를 복제하는 기능을 제공할 수 있다.

 

 

 

미들웨어의 중요성

미들웨어를 사용하면 애플리케이션 개발을 손쉽게 할 수 있고 디자인 프로세스를 단순화할 수 있다. 미들웨어가 없다면 개발자는 애플리케이션에 연결된 각 소프트웨어 구성요소의 데이터 교환 모듈을 직접 구축해야만 한다. 하지만 미들웨어를 통한다면 자유롭게 비즈니스 로직 및 기능에 중점을 둘 수 있다.

 

특히 여러 마이크로서비스로 이루어진 애플리케이션에서 미들웨어는 큰 힘을 발휘할 수 있다. 작고 흩어진 소프트웨어 구성요소에 일일이 데이터 교환 모듈을 구축하는 것은 매우 까다로운 작업이기 때문이다.

 

 

 

 


참고

 

1. https://ko.wikipedia.org/wiki/%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4

2. https://www.redhat.com/ko/topics/middleware/what-is-middleware

3. https://aws.amazon.com/ko/what-is/middleware/

4. https://www.ibm.com/kr-ko/topics/middleware

 

반응형

댓글

Designed by JB FACTORY