리팩토링 개요 및 기법 요약

Source

  • Evernote/IFTTT Feedly/리팩토링(Software Cord Refactoring).md

Summary

이 문서는 소프트웨어 리팩토링의 정의, 필요성, 적용 시기, 코드 냄새(Bad Smells), 테스트의 중요성, 그리고 구체적인 리팩토링 기법(메소드 정리 등)을 정리한 교육 자료 요약본이다. 리팩토링은 외부 기능 변경 없이 내부 구조를 개선하여 유지보수성과 확장성을 높이는 과정으로, Kent Beck 등의 관점을 인용한다.

Key Points

  • 정의: 기존 기능 유지前提下 내부 코드 구조 개선 및 설계 최적화
  • 목적: 디자인 개선, 가독성 향상, 버그 탐지 용이, 개발 속도 향상
  • 적용 시기: 삼진 규칙(3 번 반복 시), 기능 추가 시, 버그 수정 시, 코드 리뷰 시
  • 전제 조건: 리팩토링의 필수 선행 조건은 견고한 자동화 테스트(Test Code) 존재
  • 코드 냄새(Bad Smells): 중복 코드, 긴 메소드, 거대한 클래스, 긴 파라미터 리스트 등 리팩토링이 필요한 코드 패턴 식별
  • 기법 예시: Extract Method(메소드 추출), Inline Method(메소드 인라인화), Replace Temp with Query(임시 변수를 쿼리로 대체) 등 메소드 정리 기법 소개