파이프-필터 구조에서는 파이프가 데이터를 전달하는 통로를 맡고 필터가 데이터를 처리하거나 변환한다. 데이터 스트림이 필터를 순차적으로 거치며 변환되므로 배치 처리에 적합하고, 데이터는 파이프를 통해 필터 간에 전달된다. 이때 필터 사이를 이동하는 데 따른 부담이 발생할 수 있다는 점도 함께 본다.
MVC에서는 모델이 뷰와 컨트롤러의 결합도를 낮추기 위해 중앙에 위치한다. 뷰마다 모델이 각각 연결되는 것이 아니라 단일 모델에 연결된다는 점이 설명의 관문이다.
품질 속성으로는 가용성, 변경 용이성, 사용성 등이 시스템 품질을 결정하는 범주로 제시되고, 독립성은 표준적인 품질 속성에 포함되지 않는다. 설계 지침에서는 모듈 간 결합도가 낮을수록 모듈 독립성과 유지보수 용이성이 높아진다고 정리한다.
미들웨어는 운영체제와 응용 소프트웨어 사이에서 애플리케이션 간, 시스템 간 통신과 데이터 교환을 지원하는 소프트웨어다. 분산 환경 전반의 통신을 쉽게 만드는 역할이 핵심이다.
재공학과 역공학은 구분해서 본다. 재공학은 기존 소프트웨어를 재구성하거나 재개발하는 활동을 포함하는 상위 개념이므로 재개발과 같은 의미가 아니다. 역공학은 기존 소프트웨어를 분석해 설계 정보와 구조를 추출하는 활동이며, 대상 시스템이 없는 상태의 신규 개발은 역공학적 접근이 아니다. 재공학의 주요 활동 중 원시코드에서 설계 정보와 구조를 추출하는 일이 역공학에 해당한다.
예제
출제 패턴은 다섯 가지다. ① 파이프-필터 — 데이터 스트림을 필터가 순차 처리하고 배치 처리에 적합하며, 필터 간 이동에 부담이 생길 수 있다. ② 품질 속성 — 가용성·변경 용이성·사용성은 포함되고 독립성은 포함되지 않는다. ③ MVC — 모델은 중앙에 위치해 뷰·컨트롤러의 결합도를 낮추고, 뷰마다 모델이 붙는 것이 아니라 단일 모델에 연결된다. ④ 미들웨어 — 분산 환경에서 애플리케이션·시스템 간 통신과 데이터 교환을 지원한다. ⑤ 재공학·역공학 — 재공학은 재구성과 재개발을 포함하는 상위 개념이고, 역공학은 기존 코드에서 설계 정보·구조를 추출하며 신규 개발은 해당하지 않는다.
대표 기출 3문항
파이프 필터 형태의 소프트웨어 아키텍처에 대한 설명으로 옳은 것은?
노드와 간선으로 구성된다.
서브시스템이 입력데이터를 받아 처리하고 결과를 다음 서브시스템으로 넘겨주는 과정을 반복한다.
계층 모델이라고도 한다.
3개의 서브시스템(모델, 뷰, 제어)으로 구성되어 있다.
정답과 해설 보기
정답 ② · 파이프 필터 아키텍처의 동작 방식과 핵심 특징을 묻는 문제이다. 파이프 필터 아키텍처는 데이터 스트림을 각 서브시스템(필터)이 입력받아 가공 및 변환한 뒤 다음 서브시스템으로 순차적으로 넘겨주는 과정을 반복하는 구조이다.
파이프-필터 아키텍처는 데이터 스트림을 필터가 순차적으로 처리하는 구조로, 배치 처리에 적합하다.
바람직한 소프트웨어 설계 지침이 아닌 것은?
적당한 모듈의 크기를 유지한다.
모듈 간의 접속 관계를 분석하여 복잡도와 중복을 줄인다.
모듈 간의 결합도는 강할수록 바람직하다.
모듈 간의 효과적인 제어를 위해 설계에서 계층적 자료 조직이 제시되어야 한다.
정답과 해설 보기
정답 ③ · 모듈화 설계 시 지켜야 할 품질 향상 지침을 묻는 문제이다. 좋은 소프트웨어 설계는 독립성을 극대화하기 위해 모듈 간의 결합도(Coupling)를 낮추고 모듈 내부의 응집도(Cohesion)를 높이는 것을 기본 원칙으로 한다.
모듈 간 결합도는 낮을수록 유지보수가 용이하므로 강할수록 바람직하다는 설명은 틀린 설계 지침이다.
소프트웨어 아키텍처 설계에서 시스템 품질속성이 아닌 것은?
가용성 (Availability)
독립성 (Isolation)
변경 용이성 (Modifiability)
사용성(Usability)
정답과 해설 보기
정답 ② · 소프트웨어 아키텍처 설계에서 다루는 시스템 품질속성이 아닌 것을 고르는 문제이다. 가용성, 변경 용이성(Modifiability), 사용성은 ISO/IEC 25010 품질 모델 등에서 정의되는 대표적인 시스템 품질속성으로, 아키텍처 설계 시 품질 요구에 따른 트레이드오프 분석의 대상이 된다.
시스템 품질 속성은 ISO/IEC 25010 기준에 따라 가용성, 변경 용이성, 사용성 등이 포함되나 독립성은 품질 속성이 아니다.
파이프가 데이터를 전달하고 필터가 데이터를 처리·변환하며, 데이터 스트림이 필터를 순차적으로 거치는 흐름형 구조입니다. 배치 처리에 적합하고 데이터는 파이프를 통해 필터 간에 전달되며, 필터 사이를 이동하는 데 따른 부담이 발생할 수 있습니다.
MVC에서 모델과 뷰는 어떻게 연결되나요?
모델은 뷰와 컨트롤러의 결합도를 낮추기 위해 중앙에 위치합니다. 뷰마다 모델이 각각 연결되는 것이 아니라 단일 모델에 연결된다는 점이 옳은 설명입니다.
재공학과 역공학은 어떻게 다른가요?
재공학은 재구성과 재개발을 포함하는 상위 개념으로 재개발과 같은 의미가 아닙니다. 역공학은 기존 소프트웨어를 분석해 설계 정보와 구조를 추출하는 활동이며, 대상 시스템이 없는 신규 개발은 역공학에 해당하지 않습니다. 미들웨어는 분산 환경에서 애플리케이션·시스템 간 통신과 데이터 교환을 지원하는 소프트웨어입니다.