정보처리기사
6. 소프트웨어 아키텍처
nayeonee__
2023. 3. 29. 09:57
https://www.njobler.net/product/lecture/show/prod/10810
1억뷰 N잡
[연장 미포함] 흥나게 합격달성! 정보처리기사 실기
www.njobler.net
본 강의를 듣고 내용을 정리하며 적은 게시글 입니다.
- 소프트웨어 아키텍처
- 소프트웨어 아키텍처 개념
- 소프트웨어의 골격이 되는 기본 구조
- 특징
- 간략성
- 추상화
- 가시성
- 관점 모형
- 이해 당사자의 관심사에 따른 모형 제시
- 의사소통 수단
- 프레임워크 구성요소
- 아키텍처 명세서
- 이해관계자
- 관심사
- 관점
- 뷰(View)
- 소프트웨어 아키텍처 4+1뷰
- 개념
- 고객의 요구사항을 정리해놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근방법
- 복잡한 소프트웨어 아키텍처를 다양한 이해관계자들이 바라보는 관점
- 등등
- 구성요소
- 논리적 관점
- 분석사/설계자 클래스나 컴포논트의 종류나 관계
- 구현 관점
- 프로그래머, 서브시스템의 모듈구조와 관계
- 개발자 관점
- 프로세스 관점
- 시스템 통합자, 시스템의 성능, 확장성, 효율등을 표현
- 배치 관점
- 시스템 엔지니어, 시스템의 구성
- 가용성, 신뢰성, 성능, 확정성등의 시스템의 비기능적인 요구사항 고려
- 배치다이어그램으로 표현
- 유스케이스 관점
- 사용자 기능
- 유스케이스가 나머지 4개 뷰에 모두참여하면서 영향을 준다.
- 논리적 관점
- 개념
- 품질 속성
- 정확성
- 신뢰성
- 효율성
- 무결성
- 자료는 인가된 사용자만 변경할 수 있다.
- 사용 용이성
- 유지보수성
- 시험 용이성
- 유연성
- 요구사항을 쉽게 적용할 수 있어야한다.
- 이식성
- 다양한 플랫폼 및 하드웨어에서 동작이 가능해야한다.
- 재사용성
- 상호 운용성
- 다른 소프트웨어와 상호교류가 용이해야한다.
- 소프트웨어 아키텍처 평가
- 등등
- 소프트웨어 아키텍처 개념
- 소프트웨어 아키텍처 패턴
- 패턴의 개념
- 소프트웨어 아키텍처의 공통적인 발생 문제에 대한 재사용 가능한 해결책
- 패턴의 종류
- 계층화 패턴
- N-티어 아카텍처 패턴으로 부른다
- 클라이언트-서버 패턴
- 다수의 클라이언트와 하나의 서버로 구성
- 마스터-슬레이브 패턴
- 마스터 컴포넌트가 동등한 구조의 슬레이브 컴포넌트로 작업을 분산하고, 슬레이브가 결과값을 반환하면 최종 결과값을 계산하는 구조
- 파이프-필터 패턴
- 데이터 스트림을 생성하고 처리하는 시스템에서 사용가능한 패턴
- 필터 컴포넌트에서 각 처리과정을 실행하며, 처리된 데이터는 파이프를 통해 전송
- 브로커 패턴
- 분리된 컴포넌트로 구성된 분산 시스템에서 사용되는 패턴
- 피어 투 피어 패턴
- 피어라 부르는 각 컴포넌트 간에 서비스를 주고 받는 패턴
- 피어 객체 하나가 클라이언트, 서버의 역할을 모두 수행하는 구조
- 이벤트-버스 패턴
- 이벤트 버스를 통해 특정 채널로 메시지를 발행
- 리스너가 구독한 채널에 소스가 서비스를 제공하면 채널이 리스너에게 서비스를 제공
- 모델 - 뷰 - 컨트롤러 패턴
- 3개의 각 컴포넌트는 각자의 역할을 갖고 사용자에게 서비스를 제공
- 자료의 저장, 제어, 표현 기능을 분리하여 재사용을 증진
- 모델: 도메인의 기능과 자료를 저장하고 보관
- 뷰 : 사용자에게 결과를 표시
- 컨트롤러 : 사용자로부터 입력을 받아 연산을 처리
- 블랙보드 패턴
- 명확히 정의된 해결전략이 알려지지않은 문제에 대해서 유용한 패턴
- 인터프리터 패턴
- 특정 언어로 작성된 프로그램을 해석하는 컴포넌트를 설계할 때 사용되는 패턴
- 계층화 패턴
- 패턴의 개념