정보처리기사

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개의 각 컴포넌트는 각자의 역할을 갖고 사용자에게 서비스를 제공
        • 자료의 저장, 제어, 표현 기능을 분리하여 재사용을 증진
        • 모델: 도메인의 기능과 자료를 저장하고 보관
        • 뷰 : 사용자에게 결과를 표시
        • 컨트롤러 : 사용자로부터 입력을 받아 연산을 처리
      • 블랙보드 패턴
        • 명확히 정의된 해결전략이 알려지지않은 문제에 대해서 유용한 패턴
      • 인터프리터 패턴
        • 특정 언어로 작성된 프로그램을 해석하는 컴포넌트를 설계할 때 사용되는 패턴