[정보처리기사실기] 소프트웨어 아키텍처 / 아키텍처 패턴

    반응형

    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 정보처리기사 실기 클래스'
     

    1억뷰 N잡

    [1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스

    www.njobler.net

     

     

    반응형

    댓글