정의

리팩터링 : 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법

동작을 보존하는 작은 단계들을 거쳐 코드를 수정하고 이를 순차적으로 연결해 큰 변화를 만든다

코드베이스를 정리하거나 구조를 바꾸는 모든 작업은 “재구성”이며 “리팩터링”은 그 일부이다.

  1. 기능을 추가할 땐 기존 코드를 건드리지 않고 새 기능을 추가한다.
  2. 리팩터링할 땐 기능 추가 없이 코드 정리만 한다.

이유

소프트웨어 설계가 좋아진다

소프트웨어를 이해하기 쉬워진다

버그를 쉽게 찾을 수 있다

프로그래밍 속도를 높일 수 있다