일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 백준알고리즘
- 알고리즘 공부
- 프로그래머스 알고리즘 공부
- C++
- 자바
- 화장품
- 독서
- C
- JavaScript
- 책을알려주는남자
- 주식
- 성분
- Java
- 돈
- algorithmTest
- 서평
- 경제
- 책알남
- 다독
- algorithmtraining
- 지혜를가진흑곰
- 채권
- 독후감
- 알고리즘트레이닝
- 알고리즘공부
- 자바스크립트
- 재테크
- 투자
- algorithmStudy
- 프로그래밍언어
- Today
- Total
탁월함은 어떻게 나오는가?
[Computer Science] Middleware란 무엇인가? 본문
[Computer Science] Middleware란 무엇인가?
Snow-ball 2022. 11. 21. 20:29미들웨어의 정의..
미들웨어(middleware)는 컴퓨터 제작 회사가 사용자의 특정한 요구대로 만들어 제공하는 프로그램으로, 운영 체제와 응용 소프트웨어(application software)의 중간에서 조정과 중개의 역할을 수행하는 소프트웨어이다. 응용 소프트웨어가 운영 체제로부터 제공받는 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어이다. "소프트웨어 글루"(software glue)로 이야기된다. 응용 소프트웨어는 유연하고 확장, 축소가 편리하여야 하며 이러한 장점을 충족하기에 개발자의 다른 기종 간 플랫폼을 다시 구축할 필요가 없어야 한다. 이를테면 데이터베이스 시스템, 전자 통신 소프트웨어, 메시지 및 쿼리 처리 소프트웨어를 들 수 있다.
- 위키 백과 -
그렇다면 application 이란?
응용 소프트웨어란 말이 바로 이 application software의 번역으로, 운영체제를 제외한 나머지 소프트웨어/프로그램을 말한다.
프로그램이란 거시적으로는 명령 코드의 집합체를 의미하고, 이를 세분화 하면 크게 시스템 프로그램과 응용 프로그램으로 나뉜다. 시스템 프로그램은 운영체제를 의미하고 응용 프로그램이 애플리케이션을 의미한다. 정리하자면, 애플리케이션은 운영체제 위에서 실행되는 모든 소프트웨어를 뜻한다.
응용 프로그램이란 시스템 프로그램을 이용하고 응용해서 특정 기능만 하도록 새로 만들어낸 프로그램인 것이다. 따라서, 워드프로세서, 스프레드시트, 웹브라우저들 뿐만 아니라 컴파일러나 링커등도 응용 소프트웨어에 속한다.
애플리케이션은 스마트폰 시대에 새로 나온 새로운 개념의 프로그램이 아니다. 애플리케이션을 준말로 앱(app)으로 부른다.
미들웨어의 역할이란..
미들웨어는 운영 체제(OS)와 응용 소프트웨어(application)의 양 쪽을 연결하여 데이터를 주고 받아서 실행 가능하도록 중간에서 매개 역할로 존재하는 소프트웨어이다. 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해 주는 소프트웨어를 말하며, 기본적으로 숨겨진 변환 계층으로 기능하는 미들웨어는 분산 애플리케이션의 통신 및 데이터 관리를 가능하게 한다. 데이터와 데이터베이스가 "파이프" 사이를 쉽게 통과할 수 있도록 두 가지 애플리케이션을 함께 연결하기 때문에 배관이라고도 한다. 미들웨어를 사용하면 사용자가 웹 브라우저에서 양식을 제출하거나 웹 서버가 사용자의 프로필을 기반으로 동적 웹 페이지를 반환하도록 요청할 수 있다.
일반적으로, 3계층 클라이언트/서버 구조에서 미들웨어가 존재하는데, 일반적 웹 브라우저에서 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있게 중간에 미들웨어가 존재하게 된다. 그 외에도 애플리케이션 서버 미들웨어, 메시지 지향 미들웨어, 웹 미들웨어 및 트랜잭션 처리 모니터가 있다.
각 프로그램은 일반적으로 SOAP(Simple Object Access Protocol), 웹 서비스, REST(Representational State Transfer) 및 JSON(JavaSCript Object Notation)과 같은 메시징 프레임워크를 사용하여 서로 다른 애플리케이션이 통신할 수 있도록 메시지 서비스를 제공한다. 모든 미들웨어가 통신 기능을 수행하지만 회사가 사용하기로 선택한 형식은 사용 중인 서비스와 통신해야 할 정보 형식에 따라 다르다. 여기에는 보안 인증, 트랜잭션 관리, 메시지 큐, 애플리케이션 서버, 웹 서버 및 디렉터리가 포함될 수 있다. 미들웨어는 데이터를 앞뒤로 보내지 않고 실시간으로 발생하는 작업으로 분산 처리에도 사용할 수 있다.
클라우드의 발달로 미들웨어는 서로 다른 애플리케이션이 서로 통신하는 데 사용되고 있다. 미들웨어는 개발자들이 애플리케이션을 보다 효율적으로 더욱 빠르게 혁신할 수 있도록 애플리케이션을 지원하며, 연결하는 기능을 제공한다.
미들웨어는 단일 시스템에 원할하게 통합 후 이 단일 시스템은 사용자에게 통합된 서비스를 제공한다. 예를 들어 Windows 프런트엔드 애플리케이션은 Linux 백엔드 서버에서 데이터를 송수신하지만, 애플리케이션 사용자(User)는 그 차이를 인식하지 못한다. 개발자는 미들웨어를 사용하여 초기 코드를 다시 쓰지 않고도 새 프로그램을 초기 시스템과 통합하는 용도로 사용하였지만, 현재 미들웨어는 분산 시스템의 중요한 통신 및 데이터 관리 도구가 되었다.
개발자는 미들웨어를 사용하여 애플리케이션 개발을 지원하고 디자인 프로세스를 단순화 한다. 이렇게 하면 서로 다른 소프트웨어 구성 요소 사이를 연결하지 않고 자유롭게 비즈니스 로직 및 기능에 중점을 둘 수 있다. 미들웨어가 없으면 개발자는 애플리케이션에 연결된 각 소프트웨어 구성 요소의 데이터 교환 모듈을 구축해야 한다. 이 구축 작업은 상당히 어렵다. 현대적 애플리케이션은 여러 마이크로서비스 또는 서로 통신하는 작은 소프트웨어 구성 요소로 구성되기 때문이다.
멀티 클라우드 및 컨테이너화된 환경을 갖춘 조직의 경우 미들웨어를 사용하면 스케일에 따라 비용 효율적으로 애플리케이션을 개발하고 실행할 수 있다.
referance