본문 바로가기
CS/SW공학

[SW공학] 리팩토링과 소프트웨어 역공학(리버스 엔지니어링)

by jangThang 2023. 4. 28.
반응형

 기존 소프트웨어의 유지보수를 용이하게 하기위해, 리팩토링과 소프트웨어 역공학을 수행합니다. 이러한 작업에 대해서 알아보겠습니다.

 

[ Contents ]

     

     

    1. 리팩토링 (Refactoring)

    기능(동작) 변경 없이, 코드 가독성 향상이나 유지보수가 용이하도록 하는 작업 

     

     리팩토리는 성능 향상을 위해 하는 작업이 아닙니다. '코드 다듬기'에 가까우며, 복잡하거나 중복된 코드를 개선하거나 주석을 덧붙이는 작업입니다.

     따라서 개발 중에 리팩토링을 하는 건, 사실상 아무런 진전이 되지 못합니다. 다만 추후에 유지보수할 때에는 큰 도움이 될 수 있겠죠. 물론 처음부터 코드를 잘 짜는 게 좋겠지만, 그게 안된다면 틈날 때마다 코드를 다듬어주는 게 좋습니다.

     

     

     

    2. 소프트웨어 역공학 (Reverse Engineering)

    기존 소프트웨어와 데이터를 통해, 코드와 설계서, 요구분석서를 도출해내는 작업

     

     '리버스 엔지니어링'이라고 불립니다. 주로 문서화가 잘 되어있지 않은 옛 프로그램(레거시 시스템)에서 유지보수나 재구축을 하기 위해 행하는 작업입니다. 사용자들은 예전 시스템에 익숙하기 때문에, 새로운 시스템을 구축하더라도 예전 시스템의 기능과 요구는 그대로 충족시켜야 합니다.

     그래서 리버스 엔지니어링을 통해서 시스템 설계와 기능, 요구를 분석하는 작업을 수행합니다.

     

     

     

    star가 되고나서 Tistory

    반응형

    댓글