본문 바로가기
CERTIFICATE/정보처리기사

[정보처리기사 실기] 1-2 현행 시스템 분석

by 안녕나는현서 2021. 9. 9.
728x90

1. 현행 시스템 파악

  • 현행 시스템에 대해 아래와 같은 항목을 파악
    : 하위 시스템 구성 / 제공 기능 및 연계 정보/ 기술 요소 / 사용하는 소프트웨어, 하드웨어 / 네트워크 구성

 

- 현행 시스템 파악 절차

  • 구성/기능/인터페이스 파악 - 아키텍처 및 소프트웨어 구성 파악 - 하드웨어 및 네트워크 구성 파악

 

- 소프트웨어 아키텍처

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

 

- 소프트웨어 아키텍처 프레임워크

  • 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계 제공하는 아키텍처 기술 표준
  • 구성 요소 : 아키텍처 명세서, 이해관계자, 관심사, 관점, 뷰, 근거, 목표, 환경, 시스템

 

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

  • 고객의 요구사항 정리한 시나리오를 4개의 관점에서 바라보는 접근 방법
  • 4개 구조의 충돌 여부, 요구사항 충족 여부 체크를 위해 유스케이스 사용
    • 유스케이스 (Usecase) : 시스템이 액터에게 제공하는 기능, 시스템 요구사항, 사용자 입장에서의 시스템 기능
  • 4+1 에서 1은 유스케이스 뷰, 4는 논리 뷰, 구현 뷰, 프로세스 뷰, 배포 뷰
    • 유스케이스 뷰 : 유스케이스/아키텍처 도출 및 설계, 다른 뷰를 검증하는데 사용
    • 논리 뷰 : 시스템의 기능적인 요구사항이 어떻게 제공되는지 설명
    • 프로세스 뷰 : 시스템의 비기능적인 속성으로 자원의 효율적인 사용, 병행 실행, 비동기, 이벤트 처리 등을 표현
    • 구현 뷰 : 개발 환경 안에서 정적인 소프트웨어 모듈의 구성 보여줌
    • 배포 뷰 : 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여줌

* 컴포넌트 : 재사용이 가능한 각각의 독립된 모듈

 

 

- 소프트웨어 아키텍처 패턴

  • 소프트웨어를 설계할 때 참조할 수 있는 전형적인 해결 방식
  • 일반적으로 발생하는 문제점에 대한 일반화되고 재사용 가능한 솔루션
  • 고객의 요구사항 만족, 개발 생산성과 품질 확보 가능
  • 유형
    1. 계층화 패턴 (Layered Pattern)
      • 시스템을 계층으로 구분하여 구성, 서로 마주보는 두 개의 계층에서만 상호작용
      • 각 하위 모듈은 특정 수준의 추상화 제공, 각 게층은 다음 상위 계층에 서비스 제공
    2. 클라이언트 - 서버 패턴 (Client-Server Pattern)
      • 하나의 서버와 다수의 클라이언트로 구성
      • 사용자가 클라이언트를 통해 서버에 서비스 요청 / 서버는 클라이언트에게 서비스 제공
      • 서버는 계속 클라이언트의 요청 대기
    3. 파이프 - 필터 패턴 (Pipe-Filter Pattern)
      • 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능
      • 서브 시스템이 입력 데이터를 받아 처리하여 결과를 다음 서브 시스템으로 넘겨줌
      • 필터 컴포넌트는 재사용성 좋고 추가 쉬움 → 확장 용이
    4. 브로커 패턴 (Broker Pattern)
      • 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용, 컴포넌트들은 원격 서비스 실행을 통해 상호작용
      • 브로커 컴포넌트는 컴포넌트 간의 통신 조정
      • 서버는 기능, 서비스를 브로커에게 넘겨줌 / 클라이언트가 브로커에 서비스 요청 / 브로커는 클라이언트를 적합한 서비스로 리다이렉트(redirect)
    5. 모델-뷰-컨트롤러 패턴 (MVC; Model View Controller Pattern)
      • 대화형 어플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화
        • 모델 : 핵심 기능, 데이터 보관
        • 뷰 : 사용자에게 정보 표시
        • 컨트롤러 : 사용자로부터 요청 입력받아 처리
      • 각 부분이 별도의 컴포넌트로 분리되어 서로 영향 받지 않고 개별 작업 수행
      • 코드의 효율적인 재사용

 

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

  1. SAAM (Software Architechure Analysis Method)
    • 변경 용이성과 기능성에 집중
    • 평가 용이하여 경험 없는 조직에서도 활용 가능
  2. ATAM (Architechure Trade-off Analysis Method)
    • 아키텍처 품질 속성 만족시키는지 판단, 품질 속성들의 이해 상충관계 평가
  3. CBAM (Cost Benefit Analysis Method)
    • ATAM 바탕, 경제적 의사결정에 대한 요구 충족
  4. ADR (Active Design Review)
    • 소프트웨어 아키텍처 구성요소 간 응집도 평가
  5. ARD (Active Reviews for Intermediate Designs)
    • 전체 아키텍처가 아닌 특정 부분에 대한 품질요소에 집중

 

- 디자인 패턴 (Design Pattern)

  • 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴
  • 개발 효율성, 유지보수성, 운용성, 프로그램 최적화에 도움
  • 유형
    • 목적에 따라 : 생성, 구조, 행위
    • 범위에 따라 : 클래스, 객체

 

- 디자인 패턴 종류

  • 생성 패턴 : 객체 인스턴스 생성에 관여, 클래스 정의/ 객체 생성 방식 구조화, 캡슐화 수행
    1. Builder
      • 복잡한 인스턴스를 조립하여 만드는 구조
      • 생성과 표기를 분리하여 복잡한 객체 생성
    2. Factory Method
      • 상위 클래스에서 객체를 생성하는 인터페이스 정의, 하위 클래스에서 인스턴스 생성
      • 상위 클래스에서는 인스턴스를 만드는 방법만 결정
      • 하위 클래스에서 데이터의 생성을 책임지고 조작하는 함수들을 오버로딩하여 인터페이스와 실제 객체를 생성
      • 생성할 객체의 클래스를 국한하지 않고 객체를 생성
    3. Singleton
      • 전역 변수 사용하지 않고, 객체를 하나만 생성하여 생성된 객체를 어디에서든지 참조
      • 한 클래스에 한 객체만 존재
  • 구조 패턴 : 더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다루는 패턴
  • 행위 패턴 : 클래스나 객체들이 상호 작용하는 방법과 역할 분담을 다루는 패턴
    1. Template Method
      • 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으며 특정 단계에서 수행하는 내역을 바꾸는 패턴
      • 상위 클래스에는 추상 메서드를 통해 기능의 골격 제공
      • 하위 클래스의 메서드에는 세부 처리를 구체화
    2. Observer
      • 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용 갱신
      • 일대다의 의존성
      • 상호작용하는 객체 사이에서는 가능하면 느슨하게 결합
    3. Strategy
      • 알고리즘 군을 정의하고 같은 알고리즘을 각각 하나의 클래스로 캡슐화해, 필요할 때 서로 교환해서 사용
      • 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 함

 

- 현행 시스템 분석서 작성 및 검토

  1. 현행 시스템 관련 자료 수집
    • 정보시스템 구성/기능 및 인터페이스 자료 수집팀
    • 현행 시스템 아키텍처 및 소프트웨어 자료 수집팀
    • 하드웨어 및 네트워크 자료 수집팀
    • 위의 3개의 팀으로 구성
  2. 수집 자료의 분석
    • 수집된 정보 취합/정제
    • 중복되거나 유효하지 않은 정보 삭제
    • 불명확한 부분 체크 후 분석 및 설계 단계에서 구체적으로 조사
    • 현행 시스템의 이슈 및 문제점 파악
  3. 분석한 결과를 기반으로 산출물 작성
    • 정보시스템 구성 현황
    • 정보시스템 기능 구성도
    • 인터페이스 현황
    • 현행 시스템 아키텍처 구성도
    • 소프트웨어 구성도
    • 하드웨어 구성도
    • 네트워크 구성도
  4. 산출물에 대한 검토 수행
    • 팀별로 산출물 상호검토하여 수정 후 최종 완료

 

2. 개발 기술 환경 정의

- 운영체제 현행 시스템 분석

  • 운영체제 (Operating System)
    • 컴퓨터 시스템이 제공하는 모든 하드/소프트웨어 사용할 수 있도록 해주고 사용자와 컴퓨터 하드웨어 간의 인터페이스 담당
    • PC 운영체제 : Windows, UNIX, Linux
    • 모바일 운영체제 : Android, IOS
  • 고려 사항
    • 품질 측면 : 신뢰도, 성능
    • 지원 측면 : 기술 지원, 주변 기기, 구축 비용

 

- 네트워크 현행 시스템 분석

  • 네트워크 (Network)
    • 컴퓨터 장치들의 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환할 수 있도록 하는 기술
    • 데이터 링크는 유선 매체(광케이블), 무선 매체(Wi-Fi)를 통해 확립
  • OSI 7계층
계층 설명 프로토콜 전송 단위
응용 계층
(Application Layer)
사용자와 네트워크 간 응용서비스 연결, 데이터 생성 HTTP, FTP 데이터
(Data)
표현 계층
(Presentation Layer)
데이터 형식 설정, 부호 교환, 암/복호화 JPEG, MPEG
세션 계층
(Session Layer)
연결 접속 및 동기제어 SSH, TLS
전송 계층
(Transport Layer)
신뢰성 있는 통신 보장, 데이터 분할과 재조립, 흐름/오류/혼잡 제어 TCP, UDP 세그먼트
(Segment)
네트워크 계층
(Network Layer)
단말 간 데이터 전송위한 경로 제공 IP, ICMP 패킷
(Packet)
데이터 링크 계층
(Data Link Layer)
인접 시스템 간 데이터 전송, 전송 오류 제어,
동기화/흐름제어 등 전송 기능, 오류 검출, 재전송
이더넷 프레임
(Frame)
물리 계층
(Physical Layer)
0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환 RS-232C 비트
(Bit)

 

- DBMS 현행 시스템 분석

  • DBMS (Database Management System)
    • 데이터 베이스라는 데이터의 집합의 생성, 저장, 관리 등 기능을 제공하는 응용 프로그램
    • 중복 제어, 접근 통제, 인터페이스 제공, 관계 표현 등을 제공
  • 고려 사항
    • 성능 측면 : 가용성, 성능, 상호 호환성
    • 지원 측면 : 기술 지원, 구축 비용

 

- 미들웨어 현행 시스템 분석

  • 미들웨어 (Middleware)
    • 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램 운영 환경 간에 원만한 통신이 이루어질 수 있도록 제어
    • 운영체제와 소프트웨어 어플리케이션 사이에 위치
    • 대표적인 미들웨어는 WAS (Web Application Server)
      • 서버 계층에서 애플리케이션이 동작할 수 있는 환경 제공
      • 안정적인 트랜젝션 처리, 관리
      • 이기종 시스템과의 애플리케이션 연동 지원
  • 고려 사항
    • 성능 측면 : 가용성, 성능
    • 지원 측면 : 기술 지원, 구축 비용

 

- 개발 기술 환경 요구사항 파악

  1. 기술 환경 정의를 위한 자료 수집
    • 수집 자료 목록 및 조사 항목 설정
    • 기초 자료 조사 항목
      • 온라인 트랜잭션 처리 (OLTP) 시스템 : 시스템 구축 형태, 사용자 수, 트랜잭션 수
      • 웹/웹 애플리케이션 서버 (WEB/WAS) : 시스템 용도 및 서비스 형태, 시스템 구성 형태, 접속자 수
  2. 조사 자료 분석 및 개발 기술 환경 설정
    • 운영체제(OS), 데이터베이스(DBMS), 웹 애플리케이션 서버(WAS) 등을 결정
  3. 요구사항 정의서, 목표 시스템 구성도 반영 및 검토

* 트랜잭션 (Transaction)

: 인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야 하는 특성, 데이터 베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위

728x90

댓글