ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [인프라] 미들웨어, 무엇인가?
    AWS, Infra/기타 2022. 4. 22. 01:30

    [인프라] 미들웨어, 무엇인가?

    미들웨어의 구성

     


    1. 미들웨어가 무엇인가요? 😲

    🏫 CS 공부를 하거나 면접을 준비하면서, 미들웨어 (middleware)라는 용어가 익숙하지 않았다. 학생때는 OS, DBMS는 들어봤어도 미들웨어라는 용어는 많이 듣지 못하기 때문이다. 현업에서도 많이 듣는 편은 아니지만, 모르면 부끄러우니 짚고 넘어가자.

    middleware

    미들웨어는 기본적으로 데이터 변환을 위해서 사용된다.
    JSON, XML등 다양한 데이터 형식을 사이에서 (Middle)에서 연결해주는 역할을 수행한다.
    예로는 데이터베이스 미들웨어, 애플리케이션 서버 미들웨어, 메시지 지향 미들웨어, 웹 미들웨어 및 트랜잭션 처리 모니터가 있다.
    각 프로그램은 일반적으로 SOAP(Simple Object Access Protocol), 웹 서비스, REST(Representational State Transfer) 및 JSON(JavaScript Object Notation)과 같은 메시징 프레임워크를 사용하여 서로 다른 애플리케이션이 통신할 수 있도록
    메시징 서비스를 제공합니다.

    광범위한 범위를 가지고 있고, 실제로 광범위 하다고 느낀다.
    우리가 사용하는 Tomcat, Kafka도 미들웨어 중 하나이다.
    즉 아래와 같이 이해할 수 있을 것이다.

    • Tomcat : Middleware + Java Application Server (WAS)
    • Kafka : Middleware + Message Broker (MOM이라고 할 수 있음)
    • Middleware : 시스템 간의 송수신 다리 역할.

    Apache Kafka is a popular open source stream processor / middleware tool that can also be used as a message broker.
    💬 -> Apache Kafka는 메시지 브로커로도 사용할 수 있는 널리 사용되는 오픈 소스 스트림 프로세서/ 미들웨어 도구입니다.
    [What is Apache Kafka] (https://www.openlogic.com/blog/what-apache-kafka)


    2. 미들웨어를 왜 쓸까? 🤔

    서로 상호 데이터 변환을 위해서 사용한다. 그리고 표준화된 인터페이스 덕분에 신뢰성을 보장받을 수 있다. 데이터 교환에 있어서, 중간 역할을 하는 대부분이 미들웨어인 셈이다.

    • 미들웨어는 표준화된 인터페이스를 제공하며 시스템 간의 데이터 교환에 일관성을 보장한다.
    • 미들웨어 종류로는 DB, RPC, MOM, TP-Monitor, ORB, WAS 등이 있다.

    찾아보니까, 분류 법에 따라서 종류가 다르다.
    -> 즉 앞으로도 변화할 것이다.

    middleware

    1. RPC (Remote Procedure Call, 약칭 RPC) — 클라이언트가 원격에서 동작하는 프로시저를 호출하는 시스템. 동기 또는 비동기 지원.
    2. MOM (Message Oriented Middleware, 약칭 MOM) — 클라이언트가 생성한 메시지는 저장소에 요청할 때 저장하면서, 다른 업무를 지속할 수 있도록 하는 비동기식 미들웨어.
    3. ORB (Object Request Broker) — 객체지향 시스템에서 객체 및 서비스를 요청하고 전송할 수 있도록 지원하는 미들웨어.
    4. DB Middleware — 애플리케이션과 데이터베이스 서버를 연결해주는 미들웨어.
    5. TP-Monitor (Transaction Processing(TP) monitor) — 분산 시스템의 애플리케이션을 지원하는 미들웨어. 주로 C/S 시스템에 사용됨.
    6. WAS (Web Application Server) — 웹 애플리케이션을 지원하는 미들웨어.
    7. EBS (Enterprise Service Bus) — 메시지 기반으로 느슨한 결합형태의 표준 인터페이스 통신을 지원하는 미들웨어로 기업 안팎에 있는 모든 시스템 환경을 연동하는 미들웨어.

    3. 너무 모호하지 않나? 💢

    출처 : https://stackoverflow.com/questions/2904854/what-is-middleware-exactly

     

    What is middleware exactly?

    I have heard a lot of people talking recently about middleware, but what is the exact definition of middleware? When I look into middleware, I find a lot of information and some definitions, but wh...

    stackoverflow.com

     

    Middleware is a terribly nebulous term. What is "middleware" in one case won't be in another. In general, you can expect something classed as middleware to have the following characteristics:

    • Primarily (usually exclusively) software; usually doesn't need any specialized hardware.

    • If it weren't there, applications that depend on it would have to incorporate it as part of their application and would experience a lot of duplication.

    • Almost certainly connects two applications and passes data between them.


    You'll notice that this is pretty much the same definition as an operating system.
    So, for instance, a TCP/IP stack or caching could be considered middleware. But your OS could provide the same features, too. Indeed, middleware can be thought of like a special extension to an operating system, specific to a set of applications that depend on it. It just provides a higher-level service.

    미들웨어는 모호한 개념이고, 경우마다 다르다.. 솰라솰라
    아키텍처의 설계에 따라서, 다르다는 말씀이시다..!

    📎 결론적으로 모호한 개념이라고 한다. (~> 설계된 아키텍처에 따라서 미들웨어일 수도 아닐수도 있다.)

    즉 웹 서버를 정적 컨텐츠 뿐이 아니라, Proxy 같은 기능을 쓰면 미들웨어라고 할 수도 있겠다 

     


    4. 후기 ⌛

    어떤 글은 웹 서버가 미들웨어가 아니라고 하지만, WIKI 백과에는 웹 서버도 미들웨어라고 한다.
    (즉 웹 서버를 정적 컨텐츠 뿐이 아니라, Proxy 같은 기능을 쓰면 미들웨어라고 할 수도 있겠다 ☺️)

    😅 분류 기준이 경우마다 다르지만, 상호 데이터 변환을 위해서 사용한다는 것만 기억하면 될 것 같다.


    출처

    반응형
Designed by Tistory.