본문 바로가기
CS/SW공학

[SW공학] 소프트웨어 아키텍처: MVC, 이벤트 기반, 파이프 필터

by jangThang 2023. 4. 27.
반응형

 소프트웨어 아키텍처는 전체 시스템 구조도로, 소프트웨어 성향에 따라 다양한 아키텍처 패턴을 사용합니다. 그중 많이 쓰이는 MVC 패턴, 이벤트 기반(Event-driven) 패턴, 파이프 필터 패턴을 알아보겠습니다.

 

[ Contents ]

     

     

    1. 소프트웨어 아키텍처

    소프트웨어의 구성요소와 (외부) 특성, 그리고 구성 요소 간 관계를 표현한 시스템 구조도

    시스템 아키텍처 (영상 분석 프로그램)

     

     소프트웨어 아키텍처는 구성요소(컴포넌트) 간 인터페이스와 인터랙션을 한눈에 보기에 좋습니다. 전체적인 시스템 구조를 표현하며, 사용자의 요구를 바탕으로 시스템을 설계하는 중요한 단계입니다. 

     위 예시는 클라이언트 서버(Client-Server) 아키텍처로, 사용자와 서버와의 인터페이스와 인터랙션을 중심으로 그려진 설계도입니다. 이외에도 MVC, 이벤트 기반, 파이프 필터 아키텍처 등이 있으며, 소프트웨어의 성향에 맞게 채택해서 설계하시면 되겠습니다.

     

     ※ 컴포넌트(Component): 세부 기능을 모듈(module)이라고 하며, 이 모듈을 기능별로 모아둔 집합

     

     

     

    2. MVC(Model View Controller) 아키텍처

    MVC 아키텍처 (멀티미디어 빅데이터 플랫폼)

    - 모델(Model): 데이터, 도메인
    - 뷰(View): UI(User Interface) 
    - 컨트롤러(Controller): (사용자 입력을 토대로) 뷰와 모델 제어

     

     어떤 아키텍처를 써야할지 모르겠으면, MVC를 쓰면 될 정도로 인기있는 패턴입니다. 그만큼 간단 명료하면서도 여러 분야에 통용적으로 쓰기 좋습니다.

     Front-end는 뷰, Back-end는 모델과 컨트롤러를 담당한다고 생각하면 편합니다. 모델은 쉽게 말해 DB이며, 컨트롤러는 서버입니다. 어느 소프트웨어든 대부분 갖추고 있는 요소들로 구성되어 있죠.

     물론 동일 모델에 대해 다양한 뷰를 가진 대화형 애플리케이션에 더 적합하다고는 합니다.

     

     

     

    3. 이벤트 기반(Event-Driven) 아키텍처

    컴포넌트들이 이벤트 기반으로 상호작용하는 시스템 아키텍처

     

     이벤트 컨트롤러와 이벤트를 받는 여러 컴포넌트들로 구성된 시스템 아키텍처입니다. 컴포넌트들은 컨트롤러에 이벤트를 보고하고, 컨트롤러는 시스템 상태에 따라 처리하고 컴포넌트에게 명령을 하달합니다.

     컴포넌트는 외부로부터 입력을 받는 '센서(Sensor)' 역할을 수행하며, 이 때문에 IoT나 전자기기에서 주로 사용하는 패턴입니다. 

     

     

     

    4. 파이프 필터 아키텍처

     어떠한 기능을 하는 필터들이 파이프 형태로 쭉 연결되어있는 구조로, 이전 필터에서 가공한 데이터를 다음 필터에서 가공하는 순차적 배치 처리 시스템

     

      파이프라인처럼 일련의 작업이 순차적으로 진행되는 시스템에 적합한 아키텍처입니다. 입력 데이터를 받아 처리한 결과를 다음 필터에 넘기는 작업이 반복되며, 이러한 서브시스템을 '필터'라고 하고 필터 사이의 관계를 '파이프'라고 합니다.

     배치 프로그램에 적합한 패턴이며, 간단한 프로그램이나 임베디드 시스템에도 많이 사용됩니다.

     

     

    star가 되고나서 Tistory

    반응형

    댓글