소프트웨어 개발 환경 분석

기존 시스템을 새 시스템으로 교체하는 프로젝트에서 가장 먼저 하는 일은 코드를 짜는 게 아니라 “지금 뭐가 돌아가고 있는지”부터 파악하는 것이다. 예를 들어 낡은 사내 회계 시스템을 새로 구축한다고 하면, 기존 시스템이 어떤 기능을 제공하는지도 모른 채 새로 만들면 기존에 있던 세금계산서 발행 기능 하나를 통째로 빠뜨리는 식의 사고가 난다. 이 글은 그 “현행 시스템 파악” 절차를 단계별로 정리한다.

  • 현행 시스템 파악

개요

  • 현재 운영되는 시스템의 구성 파악
  • 파악 대상:
    • 기능
    • 정보
    • 소프트웨어
    • 하드웨어
    • 네트워크 구성

현행 시스템 파악 절차

1단계

  • 시스템 구성
  • 기능
  • 인터페이스 현황

2단계

  • 아키텍처 현황
  • 소프트웨어 구성 현황

3단계

  • 하드웨어 현황
  • 네트워크 현황

시스템 구성 및 기능 파악

업무 구분

  1. 기간업무
    • 주요업무 담당
  2. 지원업무
    • 기간업무 지원 역할

시스템 기능 현황 파악

  • 단위업무 시스템이 제공하는 기능 조사
  • 계층형 구조로 표현:
    • 주요 기능
    • 세부 기능

시스템 인터페이스 파악

  • 파악 요소:
    • 데이터 종류
    • 데이터 형식
    • 프로토콜
    • 연계 유형
    • 연계 주기
  • 주의: 시스템 인터페이스는 서로 다른 시스템 간의 연결을 의미

현행 시스템 아키텍처 및 소프트웨어 파악

시스템 아키텍처 구성도 파악

  • 기술요소의 계층별 구성
  • 다중 아키텍처 존재 시 주요 업무 기준으로 파악

소프트웨어 구성도 파악

  • 파악 요소:
    • 소프트웨어 사양
    • 라이선스 방식
    • 개수
  • 중요성: 소프트웨어 비용의 큰 비중 때문

하드웨어 및 네트워크 파악

하드웨어 파악

  • 파악 요소:
    • 주요 사양
    • 수량
    • 이중화 적용 여부(복사 백업)
  • 이중화 적용 시 고려사항:
    • 목표 시스템에도 구축 필요
    • 구축 기술 및 난이도 상승

네트워크 구성도 파악

  • 확인 가능 사항:
    • 조직 내 서버들의 물리적 위치관계
    • 보안 취약성 분석
    • 네트워크 장애 발생 추적
    • 대응 방안 수립

개발 기술 환경 식별

운영체제

  • 역할:
    • 리소스 관리
    • 공통 서비스 제공

식별 시 고려사항

  1. 신뢰도
  2. 성능
  3. 기술 지원
  4. 주변 기기
  5. 구축 비용

DBMS (Database Management System)

  • 정의: 데이터 저장, 관리, 상호작용 시스템

주요 DBMS

  • Oracle
  • MS-SQL
  • MySQL
  • MongoDB

식별 시 고려사항

  1. 가용성
  2. 성능
  3. 기술 지원
  4. 상호 호환성
  5. 구축 비용

미들웨어

  • 정의: 소프트웨어와 애플리케이션 사이의 중간 계층
  • 특징: 표준화된 인터페이스 제공

식별 시 고려사항

  1. 가용성
  2. 성능
  3. 기술 지원
  4. 구축 비용

오픈소스 소프트웨어

  • 정의: 소스코드(설계도)를 무료로 공개한 소프트웨어

식별 시 고려사항

  1. 기술의 지속 가능성
  2. 라이선스 종류 확인:
    • 개인용
    • 기업용
    • 학생용
    • 주의: 모든 경우가 무료는 아님

핵심 정리

현행 시스템 파악은 “위에서 아래로” 순서를 따르면 자연스럽다 — ①시스템이 어떤 기능을 제공하는지(기능·인터페이스) → ②그 기능이 어떤 구조 위에서 돌아가는지(아키텍처·소프트웨어) → ③그 구조가 어떤 물리 자원 위에 있는지(하드웨어·네트워크). 마지막으로 운영체제·DBMS·미들웨어·오픈소스 같은 기술 요소를 신뢰도·성능·비용 기준으로 식별하면, 새 시스템이 “무엇을 반드시 유지해야 하는지”와 “무엇을 개선할 수 있는지”를 구분할 수 있는 기초 자료가 완성된다.