객체지향 코드 리팩토링이 소프트웨어 품질에 미치는 영향 연구 현황과 과제
초록
본 논문은 2017년까지 발표된 142개의 실증 연구를 체계적으로 분석하여, 객체지향 코드 리팩토링이 다양한 품질 속성에 미치는 영향을 종합적으로 조명한다. 학술 환경에서는 긍정적인 효과가 더 많이 보고되었으며, 리팩토링이 모든 품질 속성을 일관되게 향상시키지는 않는다는 점을 강조한다.
상세 분석
본 연구는 기존 실증 연구들을 메타‑분석적 관점에서 재조명함으로써, 리팩토링 활동과 소프트웨어 품질 사이의 복합적인 관계를 명확히 드러낸다. 먼저, 연구자는 2000년대 초부터 2017년 말까지 발표된 논문을 키워드와 인용 네트워크를 활용해 1,284건의 후보 논문을 추출하고, 다단계 검토 과정을 거쳐 142건의 1차 연구를 선정하였다. 이 과정에서 연구 설계(실험, 설문, 사례 연구), 대상 시스템(오픈소스 vs. 상용), 그리고 사용된 리팩토링 도구(리팩터링 자동화 도구 vs. 수동) 등을 기준으로 세밀히 분류하였다.
분류 결과, 학술적 실험 환경에서 수행된 연구는 78% 이상이 리팩토링이 품질을 향상시킨다고 결론짓는 반면, 산업 현장에 기반한 연구는 긍정적 결과가 45%에 불과했다. 이는 실제 개발 현장에서 리팩토링 적용 시 비용, 일정, 팀 역량 등의 제약이 결과에 크게 작용함을 시사한다.
품질 속성별로는 결합도(cohesion), 복잡도(complexity), 상속(inheritance), 결함 발생 가능성(fault‑proneness), 전력 소비(power consumption) 등 다섯 가지 속성에서 일관된 방향성을 찾기 어려웠다. 예를 들어, ‘Extract Method’와 같은 구조적 리팩토링은 복잡도와 결합도를 감소시키는 경향이 있지만, 동시에 메모리 사용량을 증가시켜 전력 소비에 부정적 영향을 미칠 수 있다. 반면, ‘Move Method’는 재사용성을 높이고 결함률을 낮추는 효과가 보고되었지만, 코드 라인 수가 늘어나면서 유지보수 비용이 상승한다는 부정적 측면도 존재한다.
또한, 연구자는 투표‑집계(vote‑counting) 방식을 적용해 각 품질 속성에 대한 긍정·부정·중립 결과를 정량화하였다. 그 결과, ‘성능(performance)’과 ‘가독성(readability)’은 대다수 연구에서 긍정적 영향을 받았으나, ‘확장성(scalability)’과 ‘보안(security)’은 연구가 부족해 결론을 내리기 어려웠다.
도구 지원 측면에서는 Eclipse Refactoring, IntelliJ IDEA, JDeodorant 등 몇몇 자동화 도구가 널리 사용됐지만, 전체 연구의 30% 미만만이 도구 기반 실험을 수행했다. 이는 리팩토링 효과를 정량화하기 위한 측정 인프라가 아직 충분히 정착되지 않았음을 의미한다.
마지막으로, 저자는 현재 연구의 한계와 향후 과제로 다음을 제시한다. 첫째, 산업 현장에서의 장기적 추적 연구가 절실히 필요하다. 둘째, 리팩토링 활동을 세분화하여 ‘리팩터링 종류·빈도·시점’에 따른 품질 변화를 정밀히 분석해야 한다. 셋째, 자동화 도구와 정량적 메트릭을 연계한 표준화된 실험 프레임워크 구축이 요구된다. 이러한 과제들을 해결하면, 리팩토링이 단순히 코드 정돈을 넘어 실제 비즈니스 가치와 품질 향상에 기여할 수 있는 근거 기반을 마련할 수 있을 것이다.
댓글 및 학술 토론
Loading comments...
의견 남기기