현재 선택한 정보처리 과정

정보처리기사 필기 이론 학습

이론 목록으로 돌아가기

소프트웨어 아키텍처 패턴과 품질 속성

주요 소프트웨어 아키텍처 패턴의 구조와 장단점을 품질 요구사항에 맞춰 비교한다.

예상 읽기 4

소프트웨어 아키텍처

소프트웨어 아키텍처는 시스템의 주요 구성요소, 각 구성요소의 책임, 관계와 인터페이스, 적용 제약을 정하는 상위 설계다. 기능뿐 아니라 성능·가용성·보안·변경 용이성 같은 품질 요구와 기술·조직 제약도 고려한다.

좋은 아키텍처 설명에는 다음이 드러난다.

  • 주요 구성요소와 책임
  • 구성요소 사이의 데이터·제어 흐름
  • 외부 시스템과의 경계
  • 배치·통신·저장 방식의 주요 결정
  • 선택한 구조의 장점과 위험

대표 아키텍처 패턴

아키텍처 패턴 비교도를 설명하는 교육용 도식
아키텍처 패턴 비교도를 설명하는 교육용 도식

아키텍처 패턴 비교도

계층형(Layered)

기능을 책임 수준에 따라 여러 계층으로 나눈다. 일반적인 예는 표현·업무·데이터 접근 계층이다.

  • 장점: 책임 분리, 이해·변경·시험 용이
  • 단점: 계층을 많이 거치면 성능 저하, 부적절한 우회 의존 가능

Layer는 논리적 책임 구분이고, Tier는 물리적 실행·배포 구분이다. 논리 3계층이 반드시 서버 3대에 배포되는 것은 아니다.

클라이언트-서버

클라이언트가 서비스를 요청하고 서버가 이를 제공한다.

  • 장점: 자원·서비스의 중앙 관리, 역할 구분
  • 단점: 서버 병목·장애 영향, 네트워크 의존

클라이언트와 서버는 역할이며 특정 장비 종류만을 뜻하지 않는다.

파이프-필터

데이터를 처리하는 독립된 필터를 파이프로 연결한다. 한 필터의 출력이 다음 필터의 입력이 된다.

  • 장점: 단계 재사용·교체, 병렬 처리 가능
  • 단점: 공통 데이터 형식 필요, 대화형 처리에는 부적합할 수 있음

컴파일러의 어휘·구문·의미 분석이나 데이터 변환 처리에 적용할 수 있다.

MVC

  • Model: 데이터와 업무 상태·규칙
  • View: 사용자에게 보이는 표현
  • Controller: 입력을 해석해 모델과 뷰의 흐름 조정

관심사를 분리하여 UI 변경과 업무 로직 변경의 영향을 줄이는 것이 핵심이다. MVC는 계층형 전체와 같은 개념은 아니다.

저장소(Repository)

여러 구성요소가 중앙 데이터 저장소를 공유한다.

  • 장점: 데이터 일관성·공유·통합 용이
  • 단점: 저장소 구조 변경의 파급, 중앙 장애·병목 가능

블랙보드(Blackboard)

공유된 문제 상태를 여러 지식 원천이 관찰하고 부분 해를 추가하여 점진적으로 해결한다. 단순히 중앙 DB를 공유하는 구조보다 여러 해법이 협력해 불완전한 문제를 해결하는 데 초점이 있다.

브로커(Broker)

분산된 서비스 요청자와 제공자 사이에서 위치·호출·결과 전달을 중개한다.

  • 장점: 통신 세부와 위치 의존 감소
  • 단점: 브로커 장애·성능·운영 복잡성

피어투피어(Peer-to-Peer)

각 노드가 요청자와 제공자 역할을 모두 수행할 수 있다. 중앙 서버 의존을 줄일 수 있지만 검색·일관성·보안 관리가 복잡해질 수 있다.

품질 요구와 선택

요구도움이 될 수 있는 설계 방향함께 확인할 위험
변경 용이성계층화, 책임 분리계층 간 과도한 의존
성능호출 단계 축소, 병렬 처리결합 증가, 복잡성
가용성중복 구성, 장애 격리비용, 데이터 일관성
보안경계와 권한 분리관리 복잡성

패턴은 품질 속성을 자동 보장하는 제품이 아니다. 요구와 제약에 맞게 조합하고 trade-off를 검토한다.

패턴 비교

패턴핵심 단서
계층형책임 수준과 의존 방향
클라이언트-서버서비스 요청자와 제공자
파이프-필터연속된 독립 변환 단계
MVC모델·표현·입력 제어 분리
저장소중앙 데이터 공유
블랙보드여러 지식원이 공유 문제 상태를 발전
브로커분산 요청과 서비스 중개
P2P노드가 대등하게 요청·제공 역할 수행