본문 바로가기
정보처리기사

소프트웨어 아키텍처 패턴

by mooyou 2021. 6. 2.
728x90
300x250

 

 

소프트웨어 아키텍처 패턴 (Software Architecture Pattern) 개념

설계할때 참조할 수 있는 전형적인 해결방식

 

패턴은 공식같은걸 뜻하고 소프트웨어 아키텍처 에서 일반적으로 발생하는 문제점 들에대한 일반적이고 재사용 가능한 솔루션을 말한다.

 

 

소프트웨어 아키텍처 패턴 유형

유형 설명 개념도
계층화 패턴
(Layered Pattern)
시스템을 계층으로 구분 하여 구성하는 패턴
서로 마주 보는 두 개의 계층 사이에서만 상호 작용
대표적으로 OSI
클라이언트 - 서버 패턴
(Client-Server Pattern)
하나의 서버와 다수의 클라이언트로 구성
서버는 클라이언트로부터 요청을 받을때까지 24시간 대기 해야 한다.
서로 독립적이다.
게임에서 서버는 계속 몬스터를 만들고 클라이언트는 몬스터를 잡는것 처럼
파이프-필터 패턴
(Pipe-Filter Pattern)
데이터 스트림(흐름)을 생성하고 처리하는 시스템에서 사용가능
서브 시스템이 입력데이터를 받아 처리하고, 결과를 다음서브 시스템으로 넘겨주는 과정 반복
데이터가 흘러갈때 파이프 필터로 연결한다.
데이터 변환 버퍼링 동기화 등에 주로 사용
대표적인게 UNIX의 쉘
브로커 패턴
(Broker Pattern)
분리된 컴포넌트들로 이루어진 분산 시스템에서 사용된다.
서버는 자신의 기능들을 브로커에 넘겨주며 클라이언트가 브로커에 서비스를 요청하면 브로커는 적합한 서비스로 리다이렉션 한다.
사용자가 원하는 서비스 특성을 요청하면 ->
브로커가 요청에 맞는 서버와 사용자를 연결한다.
모델-뷰-컨트롤러 패턴
(MVC:Model View
Controller Pattern)
모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 패턴

모델 : 핵심 기능과 데이터 보관
뷰 : 사용자에게 보여지는 화면
컨트롤러 : 사용자로 부터 받은 요청을 처리

각 부분이 분리 되어있어서 서로 영향을 받지 않고 작업할 수 있고 효율적인 재사용이 가능하다.

DBMS와 DATA 이런것도 MVC패턴이라고 볼 수 있다.
피어-투-피어 패턴
(P2P : Peer to Peer Pattern)
하나의 컴포넌트가 클라이언트 또는 서버가 될수도 있다.
파일공유네트워크
 
728x90
반응형

댓글