더북(TheBook)

일화

유지보수와 리팩토링 작업을 진행하는 동안 개발자들은 몇몇 오래된 클래스는 더 이상 쓸모가 없도록 코드 기반을 리팩토링한다. 그럼에도 이런 코드 조각이 코드 기반에 남아(때로는 실수로 남겨 두어) 원시 코드의 덩치를 키운다. JDK 코드 기반의 클래스 집합에 대한 자바 버그 데이터베이스에서 가져온 다음 문서를 살펴보자(원본 버그 보고서인 JDK-7161105: unused classes in jdk7u repository는 http://bugs.java.com/view_bug.do?bug_id=7161105를 참조하자).

“여러 패키지에서 중복된 ObjectFactory/SecuritySupport 클래스는 internal/utils 아래에 있는 통합된 집합으로 대체했다. 하지만 jaxp 1.4.5에서 원시 코드 번들을 삭제했을 때, 삭제 대상이 원본 원시 코드의 위쪽에 있는 원시 코드 번들의 복사본이라 이들 클래스는 제거되지 않은 채 남아 있었다.”

남겨진 코드는 나중에 소스 기반에서 제거했다. 이 버그 보고서에서는 무엇을 배울 수 있을까? 리팩토링이나 유지보수 과정에서 죽은 코드와 사용하지 않는 클래스 때문에 코드 덩치가 커지는 것을 원하지 않는다면 오래된 코드를 코드 기반에서 삭제했는지 반드시 확인해야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.