본문 바로가기

CS BASIC/정보시스템 일반

[CS BASIC] 현행 시스템 분석

현행 시스템 분석이란?

  • 현행 시스템이 어떤 하위 시스템으로 구성되어 있는지 파악하는 절차
  • 현행 시스템의 제공 기능과 타 시스템과의 정보 교환 분석을 파악
  • 현행 시스템의 기술 요소와 소프트웨어 하드웨어를 파악

*목적 : 개발시스템의 개발범위를 확인하고, 이행 방향성을 설정.

 

현행 시스템 파악 절차

  • 1단계 : 시스템 구성 파악 → 시스템 기능 파악 → 시스템 인터페이스 현황 파악
  • 2단계 : 아키텍처 파악 → 소프트웨어 구성 파 악
  • 3단계 : 시스템 하드웨어 현황 파악 → 네트워크 구성 파악

 

시스템 아키텍처

  • 시스템 내 상위 시스템과 하위 시스템들이 어떠한 관계로 상호작용하는지 각각의 동작 원리와 구성을 표현한 것
  • 단위 업무 시스템 별로 아키텍처가 다른 경우 핵심 기간 업무 처리 시스템을 기준으로 한다.
  • 시스템의 전체 구조, 행위, 그리고 행위 원리를 나타내며 시스템이 어떻게 작동하는지 설명하는 틀이다.
  • 시스템의 목적 달성을 위해 시스템에 구성된 각 컴포넌트를 식별하고 각 컴포넌트의 상호작용을 통하여 어떻게 정보가 교환되는지 설명한다.

 

시스템 인터페이스 현황파악

시스템 구성 파악

  • 조직 내의 주요 업무를 기간 업무와 지원 업무로 구분하여 기술한다.
  • 모든 단위 업무를 파악할 수 있도록 하며, 시스템 내의 명칭, 기능 등 주요 기능을 명시한다.

 

시스템 기능 파악

  • 단위 업무 시스템이 현재 제공하고 있는 기능을 주요 기능과 하부 기능으로 구분하여 계층형으로 표시한다.

 

인터페이스 현황 파악

  • 현행 시스템의 단위 업무 시스템이 타 단위 업무 시스템과 서로 주고받는 데이터의 연계 유형, 데이터 형식과 종류, 프로토콜 및 주기 등을 명시한다.

 

인터페이스 현황 파악 시 고려 사항

  • 데이터를 주고받는 형식(XML, JSON) 등이 무엇인지 파악
  • 데이터를 주고받는 형식 프로토콜(TCP/IP, X.25 등)이 무엇인지 파악
  • 데이터들의 연계 유형(EAI, FEP 등)은 무엇인지 파악

 

EAI(기업 어플리케이션 통합, Enterprise Application Intergration)

  • 기업 내의 컴퓨터 애플리케이션들을 현대화, 통합, 조정하는 것을 목표로 세운 계획, 방법 및 도구 등을 의미한다.

 

FEP(전위 처리기, Front-End Processor)

  • 입력 데이터를 프로세서가 처리하기 전에 미리 처리하여 프로세서가 처리하는 시간을 줄여주는 프로그램이나 하드웨어이다.
  • 여러 통신 라인을 중앙 컴퓨터에 연결하고 터미널의 메시지(Message)가 보낼 상태로 있는지 받을 상태로 있는지 검색한다.
  • 통신 라인의 에러를 검출한다.

 

소프트웨어, 하드웨어, 네트워크 현황 파악

소프트웨어 구성 파악

  • 시스템 내의 단위 업무 시스템의 업무 처리용 소프트웨어의 품명, 용도, 라이선스 적용 방식, 라이선스 수를 명시한다.
  • 시스템 구축 시 많은 예산 비중을 차지하므로 라이선스 적용 방식과 보유한 라이선스 수량 파악이 중요하다.

*라이선스 적용 방식 단위 : 사이트, 서버, 프로세서, 코어, 사용자 수

 

하드웨어 구성 파악

  • 각 단위 업무 시스템의 서버 위치 및 주요 사양, 수량, 이중화 여부를 파악해야 한다.
  • 현행 시스템에 이중화가 적용되어 있다면 대부분 목표 시스템도 이중화가 요구되므로 그에 따른 기술 난이도, 비용 증가 가능성을 파악한다.

 

*서버 사양 : CPU 처리 속도, 메모리 크기, 하드 디스크 용량

*서버 이중화

  • 장애 시 서비스의 계속 유지를 위해 운영하고 있는지 점검
  • 기간 업무의 장애 대응 정책에 따라 필요 여부가 달라진다.

 

네트워크 구성 파악

  • 현행 업무 처리 시스템의 네트워크 구성 형태를 그림으로 표현한다.
  • 장애 발생 시 추적 및 대응 등의 다양한 용도로 활용된다.
  • 서버의 위치, 서버 간 연결 방식 등을 파악한다.
  • 물리적인 위치, 관계, 조직 내 보안 취약성 분석 및 대ᅟᅳᆼ 방안을 파악한다.

 

개발 기술 환경 분석

  • 개발 대상 시스템의 플랫폼, OS, DBMS, Middle Ware 등을 분석

 

플랫폼(Platform) 파악

플랫폼이란?

  • 응용 소프트웨어 + 하드웨어 + 시스템 소프트웨어
  • 다양한 어플리케이션이 작동하는 데 기본이 되는 운영체제 소프트웨어를 의미

종류 : JAVA 플랫폼, .NET 플랫폼, iOS, Android, Windows

기능 : 개발/운영/유지보수 비용의 감소, 생산성 향상, 동일 플랫폼 간 네트워크 효과

 

플랫폼 성능 특성 분석

  • 현행 시스템의 사용자가 요구사항을 통하여 시스템 성능 상의 문제를 요구할 경우 플랫폼 성능 분석을 통하여 사용자가 느끼는 속도를 파악하고 개선 방향을 제시할 수 있다.

*특성 분석 항목 : 응답 시간(Response Time), 가용성(Availibility), 사용률(Utiliztion), 정확성(Accuracy)

 

플랫폼 성능 특성 분석 방법

① 기능 테스트(Performance Test)

  • 현재 시스템의 플랫폼을 평가할 수 있는 기능 테스트를 수행한다.

 

② 사용자 인터뷰

  • 사용자를 대상으로 현행 플랫폼 기능의 불편함을 인터뷰한다.

 

③ 문서 점검

  • 플랫폼과 유사한 플랫폼의 기능 자료를 분석한다.

 

현행 시스템의 OS 분석

OS(운영체제, Operating System)란?

  • 운영체제(Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
  • HW/SW 자원 관리 및 공통 서비스 제공, 사용자와의 인터페이스를 제공한다.

종류 : Windows, Android, iOS, UNIX, LINUX, Mac OS

 

현행 시스템의 OS 분석 항목 및 고려사항

① 분석항목

  • 현재 정보 시스템의 OS 종류와 버전, 패치 일자, 백업 주기 분석

② 고려사항

  • 가용성, 성능, 기술 지원, 주변기기, 구축비용(TCO)

③ 메모리 누수

  • 실행 SW가 정성 종료되지 않고 남아 있는 증상

*TCO(Total Cost of Onwership)란?

  • 일정 기간 자산 획득에 필요한 직/간접적인 총비용으로서 하드웨어, 소프트웨어 구매 비용 및 운영, 교육, 기술 지원, 유지보수, 손실, 에너지 등의 사용 비용

 

오픈소스 라이선스 종류

  • 소스 코드가 공개되어 누구나 특별한 제한 없이 소스를 사용할 수 있는 것으로 대표적으로 LINUX가 있다.

① GNU(GNU’s Not Unix)

  • 컴퓨터 프로그램은 물론 관련 정보를 돈으로 주고 구매하는 것을 반대하는 것이 기본 이념이다 (LINUX)

② GNU GPLv1(Genral Pulbic License)

  • 소스코드를 공개하지 않으면서 바이너리만 배포하는 것을 금지하며, 사용할 수 있는 쉬운 소스 코드를 같이 배포해야 한다.

③ BSD(Berkeley Software Distribution)

  • 아무나 개작할 수 있고, 수정한 것을 제한 없이 배포할 수 있다.
  • 단, 수정본의 재배포는 의무적인 사항이 아니다.
  • 공개하지 않아도 되는 상용 소프트웨어에서도 사용할 수 있다.

④ Apache 2.0

  • Apache 재단 소유의 SW 적용을 위해 제공하는 라이선스이다.
  • 소스 코드 수정 배포 시 Apache 2.0을 포함해야 한다.

ex) Android, HADOOP 등

 

현행 시스템 DBMS 분석

DBMS(DataBase Management System)란?

  • 종속성과 중복성의 문제를 해결하기 위해서 제안된 데이터 베이스 시스템
  • 응용 프로그램과 데이터의 중재자로서 모든 응용 프로그램들이 데이터 베이스를 공유할 수 있도록 관리
  • 데이터베이스의 구성, 접근 방법, 관리 유지에 대한 모든 책임을 수행

종류 : Oracle, IBM DB2, Microsoft SQL Server, MySQL, SQLite, MongoDB, Redis 등

 

 

현행 시스템 DBMS 분석

  • DBMS의 종류, 버전, 구성방식, 저장용량, 백업 주기, 제작사의 유지보수 여부 가능성을 분석한다.
  • 테이블 수량, 데이터 증가 추이, 백업 방식 등을 분석한다.
  • 논리/물리 테이블의 구조도를 파악하여 각 테이블의 정규화 정도, 조인, 난이도, 각종 프로시저, 트리거 등을 분석한다.

 

DBMS 분석 시 고려사항

 가용성 : 장시간 운영 시 장애 발생 가능성, 패치 설치를 위한 재 기동 시간과 이중화 및 복제 지원, 백업 및 복구 편의성 등을 고려한다.

 성능 : 대규모 데이터 처리 성능(분할 테이블의 지원 여부), 대량 거래 처리 성능 및 다양한 튜닝 옵션 지원, 비용 기반 최적화 지원 및 설정의 최소화 등을 고려한다.

 기술 지원 : 제조업체의 안정적인 기술 지원, 같은 DBMS 사용자들 간의 정보 공유 여부와 오픈소스 여부 등을 고려한다.

 상호 호환성 : 설치 가능한 운영체제 종류를 파악하여 다양한 운영체제에서 지원되는지 확인한다. JDBC, ODBC 등 상호 호환성이 좋은 제품을 선택한다.

 구매 비용 : 라이선스 정책 및 비용, 유지 또는 관리 비용, 총소유 비용(TCO)을 고려한다.