리엔지니어링 패턴의 8장 중복 코드 감지는 소프트웨어 시스템에서 중복된 코드를 탐지하고 관리하는 패턴에 초점을 맞추고 있으며, 소프트웨어의 품질과 유지 보수에 미치는 중요성과 영향을 강조한다.

  1. 중복 코드 감지의 중요성: 중복 코드는 소프트웨어 개발에서 주요한 "코드 스멜"로 강조되며, 일반적으로 산업용 소프트웨어의 8%에서 12%를 차지한다. 15% 이상은 심각하다고 고려할 수 있다. 이는 유지 관리 비용과 복잡성을 증가시키며, 미래의 변경을 더욱 오류가 발생하기 쉽고 어렵게 만든다.
  2. 중복 코드 식별 방법:
    • 기계적 비교: 모든 코드 줄을 기계적으로 비교하여 중복을 탐지한다. 코드 줄을 정규화(주석, 공백 등 제거)하고 해싱을 사용하여 효율적인 비교를 수행한다.
    • 도트 플롯을 이용한 코드 시각화: 도트 플롯은 다른 파일 또는 동일 파일 내에서 동일하거나 유사한 줄의 발생을 표시함으로써 중복 코드 세그먼트를 시각적으로 식별하는 수단을 제공한다.
  3. 중복 코드의 함의:
    • 중복 코드는 모든 인스턴스의 중복 기능을 수정해야 하므로 변경을 구현하기 어렵게 만들며 버그 발생 가능성을 높인다.
    • 시스템 로직을 중앙 집중화하기보다는 여러 부분에 흩어지게 함으로써 시스템 이해와 유지 보수를 복잡하게 만든다.
  4. 탐지 후 전략: 중복된 코드를 식별한 후에는 "메소드 추출"과 "데이터 가까이 작업 이동"과 같은 여러 리팩터링 패턴을 적용하여 시스템의 설계를 개선하고 향후 유지 보수 부담을 줄일 수 있다.

이 문서는 엔지니어와 관리자가 중복 코드를 인식하고 처리하는 데 도움을 주며, 소프트웨어의 유지 보수성을 향상시키고 복잡성을 줄이는 데 기여한다.

 

참고 문헌
[1] Serge Demeyer et al., "Object-oriented Reengineering Patterns"
[2] https://github.com/blcktgr73/OORP

+ Recent posts