본문 바로가기
IT 자격증/정보처리기사 실기

[정보처리기사 실기] 01. 요구사항 확인 - 현행 시스템 분석

by 가든가든 2022. 9. 23.
728x90

1-1. 현행 시스템 파악

- 사용하고 있는 소프트웨어 및 하드웨어는 무엇인지, 네트워크의 구성은 어떻게 되어 있는지 파악하는 활동이다.

1-2. 현행 시스템 파악 절차

1단계 2단계 3단계
       구성/기능/인터페이스 파악       ➡      아키텍처 및 소프트웨어 구성 파악      ➡      하드웨어 및 네트워크 구성 파악

1-3. 소프트웨어 아키텍처

소프트웨어 아키텍처(Software Architecture) 개념

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

소프트웨어 아키텍처 프레임워크(Software Architecture Framework) 개념

- 소프트웨어 아키텍처 프레임워크는 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준이다.

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

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

- 4 + 1 에서 1은 유스케이스 뷰이며 나머지 구조를 요구사항을 충족시키는지 체크하는 방법으로 유스케이스를 사용한다.

  • 소프트웨어 아키텍처 4 + 1 구성요소
    • 논리 뷰 (Logical View) : 시스템의 기능적 요구사항 설명 // 설계자, 개발자 관점
    • 프로세스 뷰 (Process View) : 시스템의 비기능적 요구사항 설명
    • 구현 뷰 (Implementation View) : 정적인 소프트웨어 모듈의 구성을 보여주며 컴포넌트 구조와 의존성을 보여주고 컴포넌트에 관한 부가적인 정보 정의
    • 배포 뷰 (Deployment View) : 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 보여주는 뷰
    • 유스케이스 뷰 (Usecase View) : 다른 뷰(4)를 검증하는데 사용

유스케이스(Usecase) : 시스템 요구사항이자, 사용자의 입장에서 바라본 시스템의 기능

소프트웨어 아키텍처 패턴

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

소프트웨어 아키텍처 패턴 유형

  • 계층화 패턴 (Layered Pattern) : 시스템을 계층으로 구분해 구성하는 패턴
  • 클라이언트-서버 패턴 (Client-Server Pattern) : 하나의 서버와 다수의 클라이언트로 구성된 패턴
  • 파이프-필터 패턴 (Pipe-Filter Pattern) : 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 패턴
  • 브로커 패턴 (Broker Pattern) : 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 이 컴포넌트들은 원격 서비스 실행을 통해 상호작용이 가능한 패턴
  • 모델-뷰-컨트롤러 패턴 (MVC; Model-View-Controller Pattern) : MVC 패턴은 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 패턴
    • 모델(Model) : 핵심 기능과 데이터 보관
    • 뷰(View) : 사용자에게 정보 표시
    • 컨트롤러(Controller) : 사용자로부터 요청을 입력받아 처리

소프트웨어 아키텍처 패턴 유형

  • SAAM (Software Architecture Analysis Method) : 변경 용이성과 기능성에 집중, 경험이 없는 조직에서도 활용 가능한 비용 평가 모델
  • ATAM (Architecture Trade-off Analysis Method) : 아키텍처 품질 속성을 만족시키는지 판단하는 모델
  • CBAM (Cost Benefit Analysis method) : ATAM 바탕의 분석 중심으로 경제적 의사결정에 대한 요구를 충족하는 비용 평가 모델
  • ADR (Active Design Review) : 소프트웨어 아키텍처 구송요소 간 응집도를 평가하는 모델
  • ARID (Active Reviews for Intermediate Designs) : 전체 아키텍처가 아닌 특정 부분에 대한 품질요소에 집중하는 비용 평가 모델

1-4. 디자인 패턴

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

디자인 패턴의 유형

  • 목적
    • 생성 : 객체 인스턴스 생성에 관여, 클래스 정의와 객체 생성 방식 구조화, 캡슐화 수행
    • 구조 : 클래스나 객체의 조합을 다루는 패턴
    • 행위 : 클래스나 객체들이 상호작용하는 방법과 역할 분담을 다루는 패턴
  • 범위 : 클래스, 객체

디자인 패턴 종류

  • 생성 패턴
    • Builder : 복잡한 인스턴스를 조립해 만드는 구조, 복합 객체 생성 시 방법 분리, 서로 다른 표현 결과 만들 수 있음
    • Prototype : 처음부터 일반적인 원형을 만들어 놓고, 그것을 복사한 후 필요한 부분만 수정해 사용하는 패턴
    • Factory Method : 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식
    • Abstract Factory : 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
    • Singleton : 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 디자인 패턴
  • 구조 패턴
    • Bridge : 기능의 클래스 계층구현의 클래스 계층연결, 구현부에서 추상 계층 분리
    • Decorator : 기존에 구현되어 있는 클래스필요한 기능 추가해 나감
    • Flyweight : 메모리 절약, '클래스의 경량화' 목적
    • Composite : 객체들의 관계를 트리 구조로 구성, 부분-전체 계층 표현
    • Adabter : 기존에 생성된 클래스재사용할 수 있도록 중간에서 맞춰주는 역할
  • 행위 패턴
    • Mediator : 객체 간의 원활한 통신을 위해 중간에 통제, 중재자 역할
    • Interpreter : 언어의 다양한 해석, 구체적으로 구문을 나누고분리된 구문의 해석을 맡는 클래스를 각각 작성하여 여러 형태의 언어 구문을 해석할 수 있게 만드는 디자인 패턴
    • Iterator : 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공
    • Template Method : 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화,
      상위(추상) 클래스에는 추상 메서드를 통해 기능의 골격을 제공, 하위(구체) 클래스의 메서드에는 세부 처리를 구체화하는 방식으로 사용하는 디자인 패턴
    • Observer : 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 방법
    • State : 객체의 상태에 따라 다르게 처리할 수 있도록 행위 내용 변경
    • Visitor : 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업 수행
    • Command : 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행되는 디자인 패턴
    • Strategy : 알고리즘 군 정의, 행위를 클래스로 캡슐화해 동적으로 행위 자유롭게 바꿀 수 있게 해주는 디자인 패턴
    • Memento : Undo 기능을 개발할 때 사용하는 디자인 패턴
    • Chain of Responsibility : 정적으로 어떤 기능에 대한 처리의 연결이 하드 코딩 되어 있을 때, 이를 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결한 디자인 패턴

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

현행 시스템 관련 자료 수집 ➡ 수집 자료의 분석 ➡ 분석한 결과를 기반으로 산출물 작성 ➡ 산출물에 대한 검토 수행

분석 산출물 작성 사례

  • 정보시스템 구성 현황
  • 정보시스템 기능 구성도
  • 인터페이스 현황
  • 현행 시스템 아키텍처 구성도

  • 소프트웨어 구성도

  • 하드웨어 구성도

  • 네트워크 구성도


2-1. 개발 기술 환경 정의

운영체제(Operating System)

- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스 담당

- 사용자가 컴퓨터를 좀 더 쉽게 사용하기 위해 지원하는 소프트웨어

운영체제 종류 및 특징

  • PC
    • 윈도즈 (Windows / Microsoft) : 중/소규모 서버, 일반 PC 등 유지, 관리 비용 장점
    • 유닉스 (UNIX / IBM, HP, SUN) : 대용량 처리, 안정성 높은 엔터프라이즈급 서버
    • 리눅스 (Linux / Linus Torvalds) : 중/대규모 서버 대상, 높은 보안성 제공, 가장 저렴
  • 모바일
    • 안드로이드 (Android / Google) : 리눅스 운영체제 위에서 구동하는 리눅스 모바일 운영체제
    • iOS / Apple : 스마트폰, 태블릿PC의 높은 보안성과 고성능 제공

네트워크(Network)

- 컴퓨터 장치들의 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환할 수 있도록 하는 기술

OSI 7 계층(Layer) - 물데네전세표응

- OSI 7계층은 네트워크 통신에서 생긴 여러 가지 충돌 문제를 완화하기 위해 국제 표준화 기구(ISO)에서 제시한 네트워크 기본 모델이다.

 

1. 물리 계층(Pysical Layer)

 - 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의함.

 - 표준: RS-232C, X.21

 - 관련 장비: 리피터, 허브

 

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

 - 두 개의 인접한 개방 시스템들 간의 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함.

 - 송신측과 수신측의 속도 차이를 해결하기 위한 흐름 제어 기능을 함.

 - 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능을 함.

 - 오류 제어

 - 순서 제어 기능

 - 표준: HDLC, LLC, LAPB, LAPD, PPP

 - 관련 장비: 랜카드, 브리지, 스위치

 

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

 - 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터 교환 및 중계 기능을 함.

 - 네트워크 연결을 설정, 유지, 해체

 - 경로 설정, 트래픽 제어, 패킷 정보 전송, 데이터 교환&중계

 - 표준: X.25, IP

 - 관련 장비: 리피터, 허브

 

4. 전송 계층(Transport Layer)

 - 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템(End-to-End)간에 투명한 데이터 전송을 가능하게 함.

 - 연결 해제, 주소 설정, 다중화, 오류&흐름 제어

 - 표준: TCP, UDP

 - 관련 장비: 게이트 웨이

 

5. 세선 계층(Session Layer)

 - 송.수신 측 간의 관련성을 유지하고 대화 제어를 담당하는 계층임.

 - 대화 구성 및 동기 제어, 데이터 교환 관리

 

6. 표현 계층(Presentation Layer)

 - 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태를 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 함.

 

 7. 응용 계층(Application Layer)

 - 사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공함.

 

OSI TCP/IP 기능
응용계층
표현 계층
세션 계층
응용 계층 HTTP, FTP, SMTP, DNS, TELNET
전송 계층 전송 계층 TCP, UDP
네트워크 계층 인터넷 계층 IP, ICMP, IGMP, ARP, RARP
데이터 링크 계층
물리 계층
네트워크 액세스 계층 Etherner, IEEE 802, HDLC, X.25, RS232C, ARQ

요약

  • OSI 7계층 >> 물-데-네-전-세-표-응
  • 데이터 전송 단위 >> 물리-비트, 데이터-프레임, 네트웤-패킷, 전송-세그먼트, 그 외-데이터
  • 물리 : 비트 정보를 전기적 신호로 변환 | RC-232C
  • 데이터 : 데이터 전송, 오류/흐름 제어 | HDLD
  • 네트워크 : 노드 간 데이터 전송, 최적 경로 설정(라우팅) | IP
  • 전송 : 데이터 분할/재조립, 혼잡/흐름 제어 | TCP
  • 세션 : 연결 접속 및 동기 제어 | RPC
  • 표현 : 암호화/복호화 | JPEG
  • 응용 : 응용 서비스 연결, 정보 교환 등 | HTTP

DBMS 현행 시스템 분석

- DBMS : 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램

DBMS의 기능

  • 중복 제어 : 동일 데이터 여러 위치에 중복 저장 방지
  • 접근 통제 : 권한에 따라 데이터 접근 제어
  • 인터페이스 제공 : 사용자에 SQL, CLI, GUI 등 다양한 인터페이스 제공
  • 관계표현 : 서로다른 데이터간 다양한 관계 표현
  • 샤딩/파티셔닝 : 구조 최적화 위해 작은 단위로 나눔
  • 무결성 제약조건 : 무결성 제약조건 정의/검사 기능
  • 백업 및 회복 : DB장애 발생 시 데이터 보존 기능

DBMS 현행 시스템 분석

- DB의 가용성, 성능, 기술지원, 호환성, 구축 비용을 분석한다.

DBMS 현행 시스템 분석 시 고려 사항

  • 성능측면
    • 가용성(비기능): 장기간 시스템운영 시 장애 발생 가능성, 백업/복구 편의성, DBMS 이중화 및 복제 지원 여부
    • 성능(기능): 대규모 데이터 처리 성능, 대량 거래 처리 성능, 다양한 튜닝옵션 지원 여부, 비용기반 최적화 지원 및 설정의 최소화 지원 여부
    • 상호호환성: 설치가능한 OS종류.. 다양한OS지원되는 JDBC, ODBC
  • 지원측면
    • 기술 지원: 공급업체들의 안정적 기술지원 여부, 사용자간 정보 공유 여부, 오픈 소스 여부
    • 구축 비용: 라이선스 정책 및 비용, 유지관리 비용, 총 소유비용

JDBC : 자바(Java)에서 데이터베이스를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스

ODBC : 데이터베이스를 엑세스하기 위한 표준 개방형 응용 프로그램 인터페이스


미들웨어(Middleware)

- 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어

- 운영체제와 소프트웨어 애플리케이션 사이에 위치하고 있음

- 대표적인 미들웨어로는 WAS가 있음

웹 애플리케이션 서버 (WAS; Web Application Server)

- 웹 애플리케이션 서버(WAS)는 서버계층에서 애플리케이션이 동작할 수 있는 환경을 제공, 안정적인 트랜잭션 처리와 관리, 다른 이기종 시스템과의 애플리케이션 연동을 지원하는 서버이다.

728x90