[Java Refactoring] 리팩토링이란 무엇인가?

728x90
반응형
SMALL

리팩토링

외부에서 보는 프로그램 동작은 바꾸지 않고 프로그램 내부 구조를 개선하는 것이다.

  • 버그 수정, 기능 추가는 리팩토링이 아니다.
  • 소스 정리가 무조건 리팩토링이 아니다. 소스를 정리하는 과정에서 프로그램 동작에 변화가 생길 수 있기 때문이다.

목적

  • 버그를 발견하기 쉽게 만든다.
  • 기능을 추가하기 쉽게 만든다.
  • 리뷰하기 쉽게 만든다.

테스트

  • 리팩토링 전, 후에 동작의 변화가 없는지 유닛 테스트(단위 테스트)가 필요하다.

한계

  • 프로그램이 아직 동작하지 않을 때는 리팩토링이 불가능하다. 우선 동작하게 만들고 진행해야 한다.
  • 시간이 촉박한 경우 리팩토링을 하는 것은 현명하지 않다. 리팩토링 효과는 시간이 지날수록 나타난다.

코드의 악취

출처 : https://sunnykwak.tistory.com/6

리팩토링 에센스

  • 두 가지 수정을 한 번에 하지 않기
  • 되돌리기 쉽게 하기
  • 단계마다 확인하기
  • 오래된 걸 새로운 걸로 바꾸기
728x90
반응형
LIST