정보처리기사 실기

[ 정처기 실기 ] 요구사항 확인 #2 / 현행 시스템 분석

Josh 2022. 4. 18. 09:21
반응형

 

1. 소프트웨어 아키텍처

- 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체

 

2. 소프트웨어 아키텍처 4+1 뷰

- 고객의 요구사항을 정리해둔 시나리오를 4개의 관점에서 바라보는 소프트웨어적 접근 방법

 

[4+1 뷰]

1) 유스케이스 뷰 (Usecase View)

- 유스케이스 또는 아키텍처를 도출하고 설계하며 다른 뷰를 검증하는데 사용되는 뷰 / 사용자, 설계자, 개발자, 테스트 관점

2) 논리 뷰 (Logical View)

- 시스템의 기능적 요구사항이 어떻게 제공되는지 설명 / 설계자, 개발자 관점

3) 프로세스 뷰 (Process View)

- 시스템의 비기능적인 속성으로서 자원의 효율, 병행 실행, 비동기, 이벤트 처리 등을 표현 / 개발자, 시스템 통합자 관점

4) 구현 뷰 (Implementation View)

- 정적인 소프트웨어 모듈의 구성을 보여주는 뷰

5) 배포 뷰 (Deployment View)

- 컴포넌트가 물리적인 아키텍처에 어떻게 배치된 느지 매핑해서 보여주는 뷰 

 

3. 소프트웨어 아키텍처 패턴 (Software Architecture Pattern)

- 소프트웨어를 설계할 때 참조할 수 있는 전형적인 해결 방식

 

[종류]

1) 계층화 패턴 (Layered Pattern)

- 시스템을 계층으로 구분하여 구성하는 패턴

2) 클라이언트 - 서버 패턴 (Client - Server Pattern)

- 하나의 서버와 다수의 클라이언트로 구성된 패턴

3) 파이프 - 필터 패턴 (Pipe-Filter Pattern)

- 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 페턴

4) 브로커 패턴 (Broker Pattern)

- 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용 / 원격 서비스 실행을 통해 상호작용이 가능한 패턴

5) 모델-뷰-컨트롤러(MVC Pattern)

- 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 패턴

 

4. 소프트웨어 아키텍처 비용 평가 모델

- 품질 속성에 미치는 영향을 판단하고 아키텍처의 적합성 평가

 

[종류]

1) SAMM(Software Architecture Analysis Method)

- 변경 용이성과 기능성에 집중, 평가가 용이 

2) ATAM (Architecture Trade-off Analysis Method)

- 아키텍처 품실 속성을 만족시키는지 판단 / 품질 속성들의 이해 상충관계까지 평가

3) CBAM (Cost Benefit Analysis Method)

- ATRM 바탕의 시스템 아키택처 분석 중심 / 경제적 의사결정

4) ADR (Active Design Review)

- 구성요소간 응집도

5) ARID (Active Reviews for Intermediate Designs)

- 특정 부분에 대한 품질요소에 집중

 

5. 디자인 패턴 유형

디자인 패턴

- 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 사용하는 설계 방법을 정리한 패턴

[목적에 따른 디자인 패턴 유형]

1) 생성

[종류]

(1) Builder

- 복잡한 인스턴스를 조립하여 만드는 구조 / 객체 생성 방법과 객체 구현 방법 분리 / 생성과 표기를 분리하여 복잡한 객체를 생성

(2) Prototype

- 기존 객체를 복제함으로써 객체를 생성

(3) Factory Method

- 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고 하위 클래스에서 인스턴스를 생성 / 생성할 객체의 클래스를 국한하지 않고 객체를 생성 / 오버 로딩

(4) Abstract Factory

- 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴 / 동일한 주제의 다른 팩토리를 묶음

(5) Singleton

- 한 클래스에 한 객체만 존재하도록 제한

 

2) 구조

[종류]

(1) Bridge

- 기능 클래스와 구현 클래스 연결 / 구현부에서 추상 계층을 분리 / 구현뿐만 아니라 추상화된 부분까지 변경해야 하는 경우 활용

(2) Decorator

- 구현되어있는 클래스에 필요 기능을 추가해 나가는 설계 패턴 / 객체의 결합을 통해 기능을 동적으로 유연하게 확장

(3) Facade

-  사용자와 시스템 간 또는 여타 시스템과의 결합도 낮추어 시스템 구조에 대한 파악을 쉽게 하는 패턴 / 통합된 인터페이스 제공

(4) Flyweight

- 클래스의 경량화를 목적으로 함 / 여러 개의 가상 인스턴스 제공하여 메모리 절감

(5) Proxy

- '실체 객체에 대한 대리 객체' / 특정 객체로의 접근을 제어하기 위한 용도로 사용

(6) Composite

- 객체들의 관계를 트리구조로 구성 / 복합 객체와 단일 객체를 동일하게 취급

(7) Adapter

- 기존 클래스를 재사용할 수 있도록 중간에 맞춰주는 역할을 하는 인터페이스를 만드는 패턴

 

3) 행위

[종류]

(1) Mediator

- 중재자를 두고 중재자에게 모든 것을 요구하여 통신의 빈도수를 줄여 객체 지향의 목표를 달성하게 해주는 디자인 패턴 / 상호작용의 유연한 변경을 지원

(2) Interpreter

- 언어의 다양한 해석, 구체적으로 구문을 나누고 분리된 구문의 해석을 맡는 클래스를 각각 작성하여 여러 형태의 언어 구문을 해석할 수 있게 만드는 디자인 패턴 / 문법 자체를 캡슐화하여 사용

(3) Iterator

- 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공하는 디자인 패턴 / 내부 구조를 노출하지 않고 복잡한 객체의 원소를 순차적으로 접근 가능하게 해주는 행위 패턴

(4) Template Method

- 상위 작업의 구조를 바꾸지 않으면서 서브 클래스로 작업의 일부분을 수행 / 기능의 골격 제공 /  코드 양 줄이고 유지보수 용이

(5) Observer

- 객체의 상태 변화에 따라 다른 객체의 상태도 연동, 일대다 의존

(6) State

- 객체의 상태에 따라 행위 내용을 변경

(7) Visitor

- 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 수행하도록 만드는 패턴 / 특정 구조를 이루는 복합 객체의 원소 특성에 따라 동작을 수행할 수 있도록 지원하는 행위

(8) Command

- 요구사항을 객체로 캡슐화

(9) Strategy

- 행위 객체를 클래스로 캡슐화해 동적으로 행위를 자유롭게 변환 / 서로 교환해서 사용

(10) Memento

- 객체의 정보를 저장할 필요가 있을 때 적용하는 디자인 패턴 / undo 기능 개발할 때 사용

(11) Chain of Responsibility

- 한 요청을 2개 이상의 객체에서 처리

 

6. OSI 7 계층

- 네트워크 통신에서 생긴 여러 가지 충돌 문제를 완화하기 위해 국제 표준화 기구에서 제시한 네트워크 기본 모델

[종류]

(7) 응용 계층 - Application Layer

- 사용자와 네트워크 간 응용서비스 연결, 데이터 생성 / HTTP, FTP / 데이터(Data)

(6) 표현 계층 - Presentation Layer

- 데이터 형식 설정과 부호 교환, 암/복호화 / JPEG, MPEG / 데이터(Data)

(5) 세선 계층 - Session Layer

- 연결 접속 및 동기제어 / SSH, TLS / 데이터(Data)

(4) 전송 계층 - Transport Layer

- 신뢰성 있는 통신 보장, 데이터 분할과 재조립, 흐름 제어, 오류 제어, 혼잡 제어 등을 담당 / TCP, UDP / 세그먼트(Segment)

(3) 네트워크 계층 - Network Layer

- 단말 간 데이터 전송을 위한 최적화된 경로 제공 / IP, ICMP / 패킷(Packet)

(2) 데이터 링크 계층 - Data Link Layer

- 인접 시스템 간 데이터 전송, 전송 오류 제어, 동기화 흐름 제어 등의 전송 기능 제공 , 오류 검출 , 재전송 등 기능 제공 / 이더넷 / 프레임(Frame)

(1) 물리 계층 - Physical Layer

- 0과 1 비트 정보를 회선에 보내기 위한 전기적 신호 변환 / RS-232C / 비트 (bit)

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형