반응형
1과목. 소프트웨어 구축
📒 06. 소프트웨어 아키텍처
계획 - 요구사항 분석 - 소프트웨어 설계 - 구현 - 테스트 - 유지보수
1. 소프트웨어 아키텍처
(1) 소프트웨어 아키텍처 개념
- a) 정의 : 소프트웨어의 기본 구조로, 시스템의 컴포넌트와 이들 간의 관계 기술
- b) 목적 : 시스템의 골격을 제공하고, 고수준에서의 설계 지침 제공
(2) 소프트웨어 아키텍처 특징
- 간략성, 추상화, 가시성, 관점 모형, 의사소통 수단
(3) 소프트웨어 아키텍처 프레임워크 구성요소
- 아키텍처 명세서, 이해 관계자, 관심사, 관점, 뷰
(4) 소프트웨어 아키텍처 4+1 뷰
- 시나리오를 다양한 관점에서 분석하고 표현하여 여러 이해 관계자가 이해할 수 있도록 함
- a) 논리적 관점
- 시스템의 기능적 요구사항을 표현
- 최종 사용자에게 제공되는 기능을 나타냄 - b) 구현 관점
- 소프트웨어 모듈의 구성과 개발자의 관점을 반영 - c) 프로세스 관점
- 프로그램 실행 시의 시스템을 표현 - d) 배치 관점
- 시스템의 물리적 배치와 네트워크 연결을 표현 - e) 유스케이스 뷰
- 4가지의 관점을 아우르는 것으로 아키텍처 설계 및 검증을 주도
- 사용자의 관점으로 유스케이스 다이어그램을 사용하여 다른 뷰를 검증
(5) 소프트웨어 아키텍처 품질속성
- a) 정확성
- 요구한 기능을 정확히 수행 - b) 신뢰성
- 오차나 오류 없이 기능이 안정적으로 동작해야 함 - c) 효율성
- 자원을 적절하게 활용하여 기능 수행 - d) 무결성
- 인가된 사용자만이 변경할 수 있어야 함 - e) 사용 용이성
- 사용자가 쉽게 배우고 사용할 수 있어야 함 - f) 유지보수성
- 오류 수정 및 변경 용이 - 이 외 : 시험 용이성, 유연성, 이식성, 재사용성, 상호 운용성, 확장성, 보안
2. 소프트웨어 아키텍처 패턴 종류
(1) 계층화 패턴(Layered Pattern)
- 소프트웨어를 여러 계층으로 구분하여 각 계층이 하위 계층의 기능을 사용하도록 하는 구조
(2) 클라이언트-서버 패턴(Client-Server Pattern)
- 서버가 여러 클라이언트에 서비스를 제공하는 구조로 대부분이 사용
(3) 마스터-슬레이브 패턴(Master-Slave Pattern)
- 마스터 컴포넌트가 작업을 여러 슬레이브에 분산시키고, 슬레이브의 처리 결과를 종합하는 구조
(4) 파이프-필터 패턴(Pipe-Filter Pattern)
- 필터 컴포넌트가 각 단계의 처리를 수행하고 파이를 통해 결과를 전달하는 구조
- 일처리 한 것을 다음으로 보내고 그것이 반복되는 시스템
(5) 브로커 패턴(Broker Pattern)
- 분산 시스템에서 컴포넌트 간의 통신을 중재하는 브로커 컴포넌트 사용
(6) 피어 투 피어 패턴(Peer to Peer Pattern)
- 모든 컴포넌트(피어)가 서버와 클라이언트의 역할을 동시에 수행
(7) 이벤트-버스 패턴(Event-Bus Pattern)
- 이벤트 버스를 통해 메시지를 발행하고 리스너가 이를 구독하는 구조
(8) 모델-뷰-컨트롤러 패턴(MVC Pattern)
- 모델(데이터 처리), 뷰(사용자 인터페이스), 컨트롤러(입력 처리)로 구성
(9) 블랙보드 패턴(Blackboard Pattern)
- 복잡하고 명확한 해결 전략이 정의되지 않은 문제에서 사용
(10) 인터프리터 패턴(Interpreter Pattern)
- 특정 프로그래밍 언어의 해석과 실행을 위한 컴포넌트 설계에 사용
더보기
소프트웨어 아키텍처는 전반적인 구조이고 그 안에 시스템 아키텍처가 포함
시스템 아키텍처는 물리적인 서버의 구성
참고자료
흥달쌤, '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
반응형
댓글