문제
레거시 시스템의 모듈 리팩터링(Module Refactoring) 과정에서 결합도 측정 지표와 응집도 평가 기준을 활용한 개선 효과 검증 방법을 제시하고, LCOM(Lack of Cohesion of Methods) 지표와 CBO(Coupling Between Objects) 지표를 기반으로 한 구체적인 리팩터링 전략을 서술하시오.
정답
모듈 리팩터링에서 결합도는 CBO, RFC(Response For Class), DIT(Depth of Inheritance Tree) 지표로 측정하고, 응집도는 LCOM, TCC(Tight Class Cohesion) 지표로 평가한다. CBO 값이 높은 클래스는 Extract Interface, Facade 패턴 적용으로 의존성을 추상화하고, LCOM 값이 높은 클래스는 Extract Class, Single Responsibility 원칙 적용으로 분리한다. 개선 효과 검증은 리팩터링 전후 지표 비교, 순환 의존성 분석, 변경 영향도 측정을 통해 정량적으로 평가하며, 코드 복잡도 감소와 테스트 커버리지 향상을 종합적으로 고려한다.
해설
레거시 시스템 리팩터링에서는 객관적인 지표 기반 접근이 필수적이다. CBO는 클래스가 참조하는 다른 클래스 수를 측정하여 결합도를 정량화하며, 높은 CBO는 Extract Interface나 Facade 패턴으로 의존성을 추상화한다. LCOM은 클래스 내 메소드 간 응집도 부족을 측정하며, 높은 LCOM은 기능별로 클래스를 분리하는 Extract Class 리팩터링이 필요하다. RFC는 클래스가 호출할 수 있는 메소드 총수로 복잡도를 측정하고, TCC는 메소드 간 직접적 연결성으로 응집도를 평가한다. 리팩터링 효과는 지표 개선뿐만 아니라 순환 의존성 제거, 변경 시 영향받는 모듈 수 감소, 단위 테스트 작성 용이성 향상 등을 종합적으로 검증해야 한다.