스물두줄

정보관리기술사 · 개념서 · 소프트웨어 공학

3R

설명 영상 3R 정리 (정보관리기술사) · 2:13

왜 배우는가: 3R은 레거시 소프트웨어를 이해하고 개선해 유지보수 비용을 낮추는 실무 전략이며, 정보관리기술사 시험에서 1교시 용어와 4교시 논술로 반복해서 출제된다. 역공학·재공학·재사용의 관계를 정확히 잡아야 두 문항을 모두 답할 수 있다.

출제 이력: 제133회 1교시 11번, 제119회 4교시 2번

1. 한 줄 정의와 핵심 키워드

3R은 기존 소프트웨어를 분석(역공학)하고 재구축(재공학)하며 자산을 재활용(재사용)하여 유지보수성과 비용 효율을 높이는 활동이다.

  • 역공학(Reverse Engineering)
  • 재공학(Re-Engineering)
  • 재사용(Re-use)
  • 재구조화(Restructuring)
  • 레거시 시스템(Legacy System)
  • 기술 부채(Technical Debt)
  • 순공학(Forward Engineering)
  • 리팩토링(Refactoring)

2. 개념 풀이

쉬운 말로 하면 3R은 낡은 시스템을 "알아보고, 고치고, 다시 쓰는" 세 가지 활동이다. 시스템을 처음부터 새로 만들지 않고 기존 자산에서 출발한다는 점이 핵심이다.

정식 정의는 다음과 같다. 역공학은 개발이 끝난 시스템에서 구성요소와 구성요소 간 관계를 식별하고, 그 결과를 상위 추상 수준의 표현으로 만드는 과정이다. IEEE(1990)는 소프트웨어 역공학을 대상 시스템을 분석해 구성요소와 상호관계를 식별하고, 다른 형태 또는 더 높은 추상 수준에서 표현을 만드는 과정이라고 정의했다. 역공학은 대상 시스템을 수정하지 않는다는 점에서 재공학이나 재구조화와 구분된다.

재공학은 역공학으로 얻은 설계 정보를 바탕으로 시스템을 새 환경이나 기술 기반에서 다시 구축하는 활동이다. 재구조화는 외부 동작을 바꾸지 않고 내부 구조를 개선하는 활동이다. 재사용은 기존 컴포넌트나 산출물을 다른 시스템에서 다시 쓰는 활동이다.

핵심 용어를 정리하면 다음과 같다.

  • 역공학(Reverse Engineering): 소스코드, 실행 파일, 데이터베이스에서 설계 사양과 구조를 추출하는 과정이다.
  • 재구조화(Restructuring): 외부 동작을 유지하면서 내부 구조를 개선하는 과정이다.
  • 재공학(Re-Engineering): 역공학, 재구조화, 순공학을 거쳐 시스템을 재구축하는 과정이다.
  • 재사용(Re-use): 기존 산출물을 새 시스템에 다시 활용하는 과정이다.

3. 등장 배경과 필요성

기존 정보시스템은 오래 운영되면서 문제가 쌓인다. 레거시 시스템은 흔히 오래된 언어로 작성되고, 문서가 부족하며, 여러 해 변경을 거치며 구조가 나빠지고, 소수 전문가에게 의존한다. 이런 시스템은 어느 시점에 기술 부채가 누적되어 유지보수가 경제적이지 않게 된다.

이때 선택지는 동결, 아웃소싱, 전면 재개발, 래핑 등이 있다. 그러나 전면 재개발은 작동하는 시스템을 버리는 비효율이 있고, 래핑은 내부 유지보수 문제를 해결하지 못한다. 3R은 이 중간에서 기존 자산을 이해하고 선별적으로 고쳐 쓰는 방법이다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기