현행 시스템 분석
- 개발하고자 하는 응용 소프트웨어에 대한 이해를 높이기 위해, 현행 시스템의 적용현황을 파악함으로써 개발범위와 향후 개발될 시스템으로의 이행방향성을 분석할 수 있다.
- 개발하고자 하는 응용소프트웨어와 관련된 운영체제, 데이터베이스관리시스템, 미들웨어 등의 요구사항을 식별할 수 있다.
- 현행 시스템을 분석하여, 개발하고자 하는 응용소프트웨어가 이후 적용될 목표시스템을 명확하고 구체적으로 기술할 수 있다.
현행 시스템 파악
현행 시스템 파악이란?
- 하위시스템 구성요소, 제공 기능, 연계요소 파악
- 적용 기술요소, 소프트웨어, 하드웨어, 네트워크 구성요소 파악
현행 시스템 파악 목적
- 향후 개발 시스템 개발 범위
- 이행 방향 설정에 도움
현행 시스템 파악 절차
1단계 구성 / 기능 / 인터페이스 파악
-
시스템 구성 현황 파악
-
조직의 주요 업무를 처리하는 '기간 업무'와 '지원 업무'로 구분하여 파악
-
각 업무에 속하는 단위 업무 정보시스템의 명칭, 주요 기능을 명시
-
조직 내 존재하는 모든 정보시스템의 현황 파악 필요
-
시스템 인터페이스 현황 파악
- 단위 업무 시스템과 주고받는 데이터 종류, 데이터 형식, 프로토콜 등 명시
- Format, 통신규약, 연계유형, EAI, FEP 등 고려하여 작성
2단계 아키텍처 및 소프트웨어 구성 파악
3단계 하드웨어 및 네트워크 구성 파악
-
시스템 하드웨어 현황 파악
-
네트워크 구성 파악
구성도
기간 업무 수행 기술 요소를 최상위 기준에서 그림으로 표현
단위 업무 시스템별 아키텍처가 상이할 경우 가장 핵심이 되는 기간 업무를 기준으로 작성

단위 업무 시스템의 업무 처리를 위해 설치된 소프트웨어 제품명, 용도, 라이센스 적용 방식, 라이센스 수 등 명시
시스템 구축 시 인프라 구축 비용에서 하드웨어 비용 뿐만 아니라 소프트웨어 비용이 적지 않기 때문에 사용 소픞트웨어의 경우에는 라이센스 적용 방식의 기준 ( 사이트, 서버, 프로세서, 코어, 사용자 수 등)과 보유한 라이센스 수량 파악이 중요

서버의 주요 사양, 수량, 이중화 등의 적용 여부 명시

하드웨어 구성도 작성 시 고려사항
-
기간 업무의 서비스 기간, 장애 대응 정책에 따라 이중화 필요성 여부가 결정
-
현행 시스템에서 이중화가 적용된 경우에는 목표 시스템에서도 이중화가 필요한 경우가 대부분이며, 이에 따라 인프라 구축 기술 난이도 및 비용 증가 가능성이 존재
-
"네트워크 구성도"
-
업무처리 시스템들의 네트워크 구성 현황 표현
-
고려사항 : 네트워크 구성도의 작을 통해 서버의 위치, 서버간의 네트워크 연결 방식을 파악
-
조직 내 서버들의 물리적인 위치 관계 파악, 조직 내 보안 취약성 분석 및 대응, 네트워크 장애 발생 추적 및 대응 등의 다양한 용도로 활용


개발 기술 환경 정의 요소
"개발 기술 환경 정의할 때의 고려사항"
운영체제 --> DBMS --> 미들웨어 --> 오픈소스
"운영체제 ( OS, Operating System ) 정의"
- 하드웨어와 소프트웨어 리소스를 관리하고 컴퓨터 프로그램을 위한 공통 서비스를 제공하는 소프트웨어
"운영체제( OS ) 특징 및 종류"
- 주요 운영체제는 마이크로소프트 윈도우즈 ( Microsoft Windows ), 유닉해( UNIX ), 리눅스 ( Linux ), 아이오에스( iOS ), 안드로이드 ( Android ) 등
- 구축 시스템의 용도에 최적화된 운영체제를 선택하여 적용

"정보시스템 구축시 OS 고려사항"
-
신뢰도
- 장기간 시스템을 운영할 때 운영체제 고유의 장애 발생 가능성
- 특정 응용프로그램으로 메모리 누수로 인한 성능 저하 및 재기동
- 운영체제의 보안상 허점으로 인한 반복적인 패치 설치를 위한 재기동
- 운영체제의 버그 등으로 인한 패치 설치를 위한 재기동
-
성능
- 대규모 동시 사용자 요청 처리
- 대규모 및 대량 파일 작업 처리
- 지원 가능한 메모리 크기( 32bit, 64bit )
-
기술 지원
- 공급 벤더들의 안정적인 기술 지원
- 다수의 사용자들 간의 정보 공유
- 오픈 소스 여부( Linux )
-
주변 기기
- 설치 가능한 하드웨어
- 다수의 주변 기기 지원 여부
-
구축 비용
- 지원 가능한 하드웨어 비용
- 설치할 응용프로그램의 라이선스 정책 및 비용
- 유지 및 관리 비용
- 총 소유 비용 ( TCO : Total Cost of Ownership )

DBMS 주요 특징 및 고려사항
"DBMS ( Database Management System) 정의"
- 사용자, 다른 어플리케이션, 데이터베이스와 상호 작용하여 데이터를 저장하고 분석하기 위한 컴퓨터 소프트웨어
- 주요 기능 : 데이터베이스 생성, 조회, 변경 등
"DBMS의 종류"
- Oracle, DB2, Microsoft SQL Server, MySQL, MongoDB 등
- 각각의 특장점에 따라 비용적인 측면, 사용용도 등을 고려하여 선택
- 대규모 데이터의 안정적 처리 : Oracle, DB2 등
- 오픈소스 : MySQL, MongoDB 사용 확대

"정보 시스템 구축 시 DBMS 고려사항"
-
가용성
- 장기간 시스템을 운영할 때 장애 발생 가능성
- DBMS의 버그 등으로 인한 패치 설치를 위한 재기동
- 백업 및 복구 편의성
- DBMS 이중화 및 복제 지원
-
성능
- 대규모 데이터 처리 성능 ( 분할 테이블의 지원 여부 )
- 대량 거래 처리 성능
- 다양한 튜닝 옵션 지원
- 비용 기반 최적화 지원 및 설정의 최소화
-
기술 지원
- 공급 벤더들의 안정적인 기술 지원
- 다수의 사용자들 간의 정보 공유
- 오픈소스 여부
-
상호 호환성
- 설치 가능한 운영체제 종류
- 다양한 운영체제에서 지원되는 JDBC, ODBC
-
구축 비용
- 라이센스 정책 및 비용
- 유지 및 관리 비용
- 총 소유 비용 ( TCO )
미들웨어 주요 특징 및 고려사항
"미들웨어 ( Middleware ) 정의"
- 운영체제와 소프트웨어 어플리케이션 사이에 위치하는 '미들웨어'는 소프트웨어 어플리케이션에게 운영체제가 제공하는 서비스를 '추가 및 확장'하여 제공하는 컴퓨터 소프트웨어
- 주요 사례 : 웹 어플리케이션 서버 ( WAS : Web Application Server )
"WAS의 정의"
- 동적인 웹 사이트, 웹 어플리케이션, 웹 서비스의 개발을 지원하기 위하여 설계된 소프트웨어
- 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리를 제공

"정보 시스템 구축 시 WAS 고려사항"
-
가용성
- 장기간 시스템을 운영할 때 장애 발생 가능성
- 안정적인 트랜잭션 처리
- WAS의 버그 등으로 인한 패치 설치를 위한 재기동
- WAS 이중화 지원
-
성능
- 대규모 거래 요청 처리 기능
- 다양한 설정 옵션 지원
- 가비지 컬렉션 ( GC : Garbage Collection ) 의 다양한 옵션
-
기술 지원
- 공급 벤더들의 안정적인 기술 지원
- 다시의 사용자들 간의 정보 공유
- 오픈소스 여부
-
구축비용
- 라이센스 정책 및 비용
- 유지 및 관리 비용
- 총 소유 비용 ( TCO )
"오픈 소스 ( Open Source ) 정의"
- 소스 코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는 오픈 소스 소프트웨어 ( OSS , Open Source Software )
- 자유로운 사용의 강점
- 시스템 구축 시 적용 여부를 신중하게 결정
"오픈소스 사용 시 고려사항"
- 라이센스의 종류
- 사용자 수
- 기술의 지속 가능성
- 라이센스 문제에 대한 판단 여부가 어렵다면 ( 전자정부 표준 프레임워크 OSS 참조 )
정리
-
현행 시스템 파악
-
응용 소프트웨어 엔지니어링의 현행 시스템 파악 절차 및 세부 시스템의구성 요소를 도출
-
구성요소
-
현행 시스템 아키텍처 구성도
-
소프트웨어 구성도
-
하드웨어 구성도
-
네트워크 구성도
-
개발기술 환경 정의
-
기술 개발 환경에 대한 정의 및 기술 요소별 특징 및 고려사항을 인지
-
기술 환경 요소
-
운영체제
-
DBMS
-
미들웨어
-
오픈 소스 소프트웨어