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

[소프트웨어 설계] 16. 아키텍처 패턴

by reve5 2022. 2. 24.

6. 파이프 필터 형태의 소프트웨어 아키텍처에 대한 설명으로 옳은 것은?
① 노드와 간선으로 구성된다.
② 서브시스템이 입력데이터를 받아 처리하고 결과를 다음 서브시스템으로 넘겨주는 과정을 반복한다.
③ 계층 모델이라고도 한다.
④ 3개의 서브시스템(모델, 뷰, 제어)으로 구성되어 있다.


>> 정답 2번

1번은 노드와 간선의 단어는 트리에서 나온다.
3번은 레이어 모델, 계층모델이다 상위와 하위끼리만 교환하며 계층적이다.
4번은 MVC모델이다. 사용자가 입력하면 컨트롤러가 입력하고 이를 모델이 처리하여 뷰를 통해 보여준다.

 

 

5. 분산 시스템을 위한 마스터-슬레이브(Master-Slave) 아키텍처에 대한 설명으로 틀린 것은?
① 일반적으로 실시간 시스템에서 사용된다.
② 마스터 프로세스는 일반적으로 연산, 통신, 조정을 책임진다.
③ 슬레이브 프로세스는 데이터 수집 기능을 수행할 수 없다.
④ 마스터 프로세스는 슬레이브 프로세스들을 제어할 수 있다.


>> 정답 3번

 


마스터는 제어 슬레이브는 프로세스, 장치를 의미한다. 

마스터 컴포넌트가 동등한 구조의 슬레이브 컴포넌트로 작업을 분산하고, 슬레이브가 결과값을 반환하면 최종 결과값을 계산하는 구조입니다.




16. 소프트웨어 아키텍처와 관련한 설명으로 틀린 것은?
① 파이프 필터 아키텍처에서 데이터는 파이프를 통해 양방향으로 흐르며, 필터 이동 시 오버헤드가 발생하지 않는다.
② 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조로 볼 수 있다.
③ 데이터 중심 아키텍처는 공유 데이터저장소를 통해 접근자 간의 통신이 이루어지므로 각 접근자의 수정과 확장이 용이하다.
④ 이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정한다.


>> 정답 1번

 

파이프 필터 패턴은 한방향이다

 

 

 

12. 서브 시스템이 입력 데이터를 받아 처리하고 결과를 다른 시스템에 보내는 작업이 반복되는 아키텍처 스타일은?
① 클라이언트 서버 구조
② 계층 구조 = 레이어 구조
③ MVC 구조 = 모델 뷰 컨트롤러 구조
④ 파이프 필터 구조

>> 정답 4번

 

 

 

 

클라이언트 서버 구조 

클라이언트는 서비스 요구자, 
버서는 서비스 제공자
클라이언트에서 요구하면 서비스가 응답한다.

계층 구조

레이어 패턴
시스템을 계층화하고 하위 레이어가 제공하는 기능을 상위 레이어가 이용함으로써 각 레이어의 구조를 단순화한다.
하위 레이어는 상위레이어하고만 상호작용을 한다.


MVC 구조

model 모델
view 뷰
controller 컨트롤러

위의 3가지고 구성된 구조
각각의 형태가 간섭 없이 독립적으로 개발함으로써 큰 효율을 낼 수 있다.

사용자가 컨트롤러를 통해 입력하고 
이 입력을 모델을 통해 처리한 후
뷰를 통해 사용자에게 보여준다.



파이프 필터 구조

파이프 필터 구조 
서브 시스템이 입력 데이터를 받아 처리하는 결과를 다른 시스템에 보애는 작업이 반복되는 구조
서브시스템 = 필터
서브시스템 사이의 관계 = 파이프


https://www.youtube.com/watch?v=4i47z89nfMs&list=PLKpxllD6C8CnkSWfqRJsHOYtbBFnvtrcY&index=16 


아키텍터 = 기본 구조
아키텍처 패턴 = 공식

이키텍처 패턴 = 문제 해결 윤곽 제시, 원칙과 지침 역할, 아키텍처 스타일, 표준 아키텍처도 같은 말

시간 단축, 품질향상, 검증 편리, 소통 원할, 이해 용이 , 예측 가능 등의 효과가 있다.

아키텍터 패턴 종류

1. 레이어(계층)패턴
각각의 상위, 하위 레이어끼리만 상호작용을 한다.
특정 레이머만 유지 보수 하여 시스템을 개선할 수 있다.

2. 클라이언트 서버 패턴
서버는 자원을 관리 제공하고
클라이언트는 자원을 요청하고 사용한다.
클라이언트는 다수고 언제 어느 상황이든 요청한다.
따라서 서버는 항상 대기해야한다. 
클라이언트와 서버는 각각 독립적이다.


3. 파이프 - 필터 패턴

데이터의 흐름 = 스트림
스트림의 각 단계를 파이프와 필터로 연결
파이트 = 라인
필터 = 파이프로 넘어온 데이터를 처리하고 캡슐화(정보은닉)하는 것

재사용성과 확장성이 좋아서 다양한 파이프라인을 생산할 수 있다.
데이터 변환, 버퍼링, 동기화 등의 작업에 유리하다

4. 모델 뷰 컨트롤러 패턴
모델 = 핵심 기능 및 데이터 보관
컨트롤러 = 입력 처리
뷰 = 처리된 정보를 표시한다. > 여러 형태 뷰를 만들 수 있다.

일반적인 어플리케이션에 적합한 패턴

5. 마스터 슬레이브 패턴

마스터가 지시한 일을 여러개의 슬레이브가 병렬로 처리한다.
중간에 슬레이브가 고장이 나고 작업에 문제가 없다.


6. 브로커 패턴
클라이언트 요청을 브로커가 적절한 서버로 연결시키는 패턴
여러개의 서버가 존재한다.
분산환경 시스템이라고 한다.


7. 피어 투 피어 패턴
서버와 클라이언트 서로 역할을 바꿀 수 있는 형태
P2P 형태 2가지 일을 병렬로 수행하는 멀티 스레딩이 특징

8. 이벤트 버스 패턴
특정 이벤트를 발행하면 해당 채널(버스)를 구독하고 있는 리스너들이 이벤트를 받아 처리한다. 

9. 블랙보드 패턴
많은 컴포넌트들이 공유데이터를 관리하는 블랙보드에 접근하여 우너한느 데이터를 찾는 형식
음석인식, 차량 식별, 신호 해석 등의 기술에서 사용한다.

댓글