소프트웨어 아키텍처: 기본 구조와 특징
소프트웨어 아키텍처란?
소프트웨어 아키텍처는 소프트웨어의 기본 구조로서, 전체 시스템을 지탱하는 틀을 제공합니다.
소프트웨어 아키텍처의 특징
소프트웨어 아키텍처 프레임워크 구성 요소
- 아키텍처 명세: 시스템의 전반적인 설계와 관련된 명세를 정의합니다.
- 이해관계자: 시스템에 영향을 미치는 이해관계자를 식별하고 관리합니다.
- 관심사: 아키텍처에서 중요한 측면이나 영역을 결정합니다.
- 관점: 특정 이해관계자나 목적에 따라 시스템을 볼 수 있는 관점을 제공합니다.
- 뷰: 시스템의 특정 측면을 나타내는 시각적인 표현입니다.
소프트웨어 아키텍처 4+1 뷰
- 고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근 방법
4 + 1 View Model 구성요소
- 논리적 뷰: 시스템의 논리적인 모듈 구조를 표현합니다.
- 구현 뷰: 시스템의 물리적인 구성 요소와 연결을 보여줍니다.
- 프로세스 뷰: 시스템의 동작을 프로세스와 스레드로 나타냅니다.
- 배포 뷰: 시스템의 물리적 배치와 네트워크 구조를 보여줍니다.
- 유스케이스 뷰: 시스템의 사용자 시점에서 기능을 표현합니다.
4+1 View Model 구성요소
아키텍처 패턴 종류
- 계층화 패턴: N-계층 아키텍처로도 불리며 모듈화된 계층으로 시스템을 구성합니다.
- 클라이언트-서버 패턴: 여러 클라이언트가 중앙 서버에 연결되는 아키텍처를 나타냅니다.
- 마스터-슬레이브 패턴: 마스터 구성 요소가 작업을 슬레이브 구성 요소에 분배하고 결과를 계산하는 구조입니다.
- 파이프-필터 패턴: 입력 데이터를 처리하고 결과를 다음 구성 요소로 전달하는 구조를 반복합니다.
- 브로커 패턴: 분리된 구성 요소로 구성된 분산 시스템에서 사용되는 패턴입니다.
- 피어-투-피어 패턴: 각 구성 요소가 피어로 불리는 서비스를 교환하는 패턴입니다.
- 이벤트 버스 패턴: 이벤트 버스를 통해 메시지를 발행하고 수신하는 패턴입니다.
- 모델-뷰-컨트롤러 패턴 (MVC 패턴): 모델, 뷰, 컨트롤러 세 가지 구성 요소로 시스템을 구성합니다.
- 3개의 각 컴포넌트는 각각의 역할을 갖고 사용자에게 서비스를 제공
- 모델 : 도메인(하나의기능)의 기능과 자료를 저장하고 보관
- 뷰 : 사용자에게 결과를 표시
- 컨트롤러 : 사용자로부터 입력을 받아 연산을 처리
- 블랙보드 패턴: 해결책 전략이 명확하지 않은 문제에 유용한 패턴입니다.
- 인터프리터 패턴: 특정 언어로 작성된 프로그램을 해석하는 구성 요소를 디자인할 때 사용되는 패턴입니다.
아키텍처 패턴은 소프트웨어 엔지니어링에서 발생하는 다양한 문제를 해결하는 데 도움을 줍니다.
2024년에 정보처리기사를 따기 위해 노력하는 모두에게 행운을 빕니다!