본문으로 건너뛰기

리팩토링

· 약 2분

리팩토링 개요

리팩토링 개념

  • 외부적 기능은 수정하지 않고, 내부를 단순화하여 유지보수성을 향상시키는 기법

리팩토링 필요성

  • 애자일 개발 방법론의 도입으로 TDD를 기반으로 코드스멜을 제거하기 위한 리팩토링의 중요성이 강조됨.

리팩토링의 개념도, 세부절차, 적용방안

리팩토링의 개념도

리팩토링의 세부절차

구분내용비고
리팩토링 대상선정코드스멜을 통해 개선 필요 코드 선정중복 코드, 긴 메소드명 등
테스트코드 작성로직의 기대결과를 테스트로 작성TDD
리팩토링리팩토링 후 코드스멜 발생시 반복메소드 분리 등

리팩토링의 적용방안

구분내용비고
결합도 측면이동패키지 재구성, 메소드 이동
분리기능 분리 별도 클래스화, 인터페이스 분리
응집도 측면일반화중복 메소드 제거
통합공통 필드 수퍼 클래스 통합
가독성 측면재명명목적과 이름이 다른 경우
주석테스트코드만으로 설명할 수 없는 경우

리팩토링시 고려사항

  • sonarlint, eslint 등 정적분석 도구를 활용하여 가독성, 복잡도 등 코드스멜 감지 및 수정 자동화