상세 컨텐츠

본문 제목

[정보처리기사 실기 공부] 소프트웨어 유지 보수

정보처리기사 공부지식

by 소란한소란 2024. 3. 4. 14:27

본문

728x90

소프트웨어 유지 보수에 대해

 

안녕하세요, 여러분! 오늘은 소프트웨어 유지보수에 대해 알아보려고 합니다. 소프트웨어 개발 이후에도 끊임없이 진행되는 이 활동은 어떤 개념일까요?

 

소프트웨어 유지 보수란?

소프트웨어 유지보수는 간단히 말해 소프트웨어의 수명을 연장하기 위한 활동입니다. 개발이 완료된 소프트웨어가 새로운 환경에서 계속해서 효과적으로 동작할 수 있도록 보장하는 과정이라고 할 수 있습니다. 이는 전체 소프트웨어 생명주기 중에서 가장 많은 비용이 소모되는 단계 중 하나로 꼽힙니다.

소프트웨어 유지 보수의 중요성

요즘에는 소프트웨어 예산에서 유지보수 비용이 더욱 높아지고 있는 추세입니다. 신규 프로젝트보다는 기존 소프트웨어의 개선에 더 많은 투자가 이루어질 것으로 예측되고 있습니다. 그만큼 소프트웨어 유지보수는 기업이 지속적으로 경쟁력을 유지하기 위해 핵심적인 역할을 하고 있다고 볼 수 있죠.

유지 보수의 어려움

그렇다면 소프트웨어 유지보수가 왜 어려울까요? 먼저, 업무 프로세스와 시스템 구조를 완전히 이해해야 한다는 점이 어려움의 한 요인입니다. 또한, 유지보수를 담당하는 업체가 소프트웨어를 처음 개발한 업체와 다를 경우, 소프트웨어 구조를 이해하기 어려워 가독성이 떨어지는 경우가 있습니다.


 

  • 소프트웨어 유지보수
    • 개념
      • 소프트웨어의 수명을 연장하기 위한 활동
      • 소프트웨어 생명주기 동안 가장 많은 비용이 소모되는 단계
    • 중요성
      • 소프트웨어 예산에서 유지보수 비용의 비중이 증가하고 있다.
      • 신규 프로젝트보다는 기존 소프트웨어 개선에 더 많은 투자할 것이라는 전망
    • 어려운 이유
      • 업무 프로세스와 구축된 시스템을 이해해야 함
      • 유지보수 계약 업체가 개발 업체와 별개인 경우 소프트웨어 구조파악이 어렵고, 가독성이 떨어짐
    • 유지보수의 구분
      • 수정 보수(Corrective Maintenance)
        • 소프트웨어 구축 시 테스트 단계에 미처 발견하지 못한 잠재적인 오류를 찾아 수정한다.
      • 적응 보수(Adaptive Maintenance)
        • 운영체제, 하드웨어와 같은 프로그램 환경변화에 맞추기 위해 수행하는 유지보수
      • 향상 보수(Perfective Maintenance)
        • 기존 기능과 다른 새로운 기능을 추가하거나 기존 기능을 개선
      • 예방 보수(Preventive Maintenance)
        • 장래에 유지보수성 또는 신뢰성을 보장하기 위해 선제적으로 하는 유지보수
    • 유지보수 비용 예측 방법
      • 주먹구구식 방법
      • Belady와 Lehman의 방법
      • COCOMO 방법
      • SMI(Software Maturity Index, 소프트웨어 성숙 색인)
    • 유지보수 관련 용어
      • 레거시 시스템(Legacy System)
        • 낡은 기술이나 방법론, 컴퓨터 시스템, 소프트웨어 등을 말한다.
        • 더 이상 쓰이지 않더라도 현대의 기술에 영향을 주는 경우도 포함
      • 외계인 코드(Alien Code)
        • 아주 오래되거나 참고 문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램 코드
      • 스파게티 코드(Spaghetti Code)
        • 복잡한 프로그래밍 소스코드

소프트웨어 유지보수는 매우 중요하며 복잡한 작업이지만, 올바른 전략과 접근으로 효과적으로 수행될 수 있습니다. 앞으로도 소프트웨어 유지보수에 대한 다양한 정보를 공유해 나가겠습니다. 감사합니다! 2024년에 정보처리기사를 따기 위해 노력하는 모두에게 행운을 빕니다!

 

728x90

관련글 더보기