미들웨어는 운영체제에서 제공하지 않는 일반적인 서비스와 기능을 애플리케이션에 제공하는 소프트웨어입니다.
애플리케이션의 규모가 커지고 복잡해 지면서 미들웨어의 활용은 개발에서 점점 더 중요해지고 있습니다.
미들웨어는 애플리케이션을 보다 효율적으로 구축할 수 있도록, 다양한 계층을 연결하는 도구로 사용됩니다.
클라우드와 컨테이너를 활용한 개발이 보편화 되면서 미들웨어의 중요성 역시 커지고 있습니다.
- 표준화된 인터페이스 제공
- 다양한 환경 지원
- 부하의 분산 가능
- 분산 시스템 구축 지원
- 자료의 일관성 유지
- 운영의 용이성
- 간편하고 뛰어난 확장성
미들웨어의 단점은 명확합니다.
애플리케이션의 기능을 분산하고 확장하는 역할에 문제가 생기는 경우입니다.
예를 들어 디비 접속 미들웨어의 버그로 애플리케이션 전체 서비스에 문제가 생기는 경우도 있습니다.
따라서 미들웨어는 확실히 검증된 소프트웨어만 사용해야 합니다.
미들웨어는 애플리케이션에 필요한 기능을 제공하며 그 종류는 무수히 많습니다.
아래는 미들웨어의 대분류 리스트입니다.
- 데이터베이스 미들웨어 (Database Middleware)
- 메시지 지향 미들웨어 (Message Oriented Middleware, MOM)
- 원격 프로시저 호출 (Remote Procedure Call, RPC)
- 객체 미들웨어 (Object Request Broker, ORB)
- 트랜잭션 처리 모니터 (TP Monitor)
- 웹 애플리케이션 서버 (Web Application Server)
- 엔터프라이즈 서비스 버스 (Enterprise Service Bus)
- SOAP (Simple Object Access Protocol)
- 웹 서비스
- REST (Representational State Transfer)
- JSON (JavaScript Object Notation)
- XML (Extensible Markup Language)
미들웨어는 단순히 설명하면 시스템을 연결해 주는 도구입니다.
아래 그림을 보면 미들웨어를 쉽게 이해할 수 있습니다.