리팩토링이란?
이미 작성한 소스코드에서 구현된 일련의 행위들을 변경없이 코드의 가독성과 유지보수성을 높이기 위해 내부구조를 변경하는 것이다 다시 말해 기능을 유지하되 읽기 좋고 지속적으로 관리하기 편하게 소스코드를 재작성하는 것이다
그럼 리팩토링을 왜 할까?
- 소프트웨어 설계에서 질적 향상을 위해 리팩토링을 한다 코드 중복을 제거하고 수정 용이성 향상을 위해서...
- 소프트웨어 이해도를 향상하기 위해, 가독성 향상을 위해서 한다 이 프로젝트에 다른 사람, 다음 사람, 그리고 그 사람이 나 일 수도 있다!
- 버그를 찾는데 도움이 된다
- 프로그램 개발 속도가 향상된다, 좋은 설계 기반에서는 개발 속도를 단축 할 가능성이 높아진다
그래서 결론! 더러운 나의 소스코드에 악취를 제거하기 위해서🙀
리팩토링은 언제 할까?
- 유사한 내용이 세번 이상 반복할 때, 리팩토링을 고려한다!
- 새로운 기능을 추가할때
- 코드리뷰를 할때
리팩토링을 통한 프로그래밍 개발
1. Two Hats
리팩토링과 기능을 추가하는 것, 어떤 방식, 순서로 하는지가 중요하다
- 기능을 추가할 때 : 기존코드를 수정하지 말고, 기능과 테스트만 추가하기
- 리팩토링을 할 때 : 기능을 추가하지 말자!
리팩토링을 하면서 기능을 추가하는 것이 아닌 기능단위로 추가, 테스트 후 리팩토링을 해야된다
- 리팩토링은 Extream Programming???
- 요구사항이 잦은 변경에 따른 프로토타입을 지속적으로 주기 위한 것은 아니다
- 어느 정도는 설계 기반으로 변경해야된다