리팩토링은 겉으로 드러나는 코드의 기능(겉보기 동작)은 바꾸지 않으면서 내부 구조를 개선하는 방식으로 소프트웨어 시스템을 수정하는 과정이다.
버그가 생길 가능성을 최소로 줄이면서 코드를 정리하는 정제된 방법이다.
즉, 리팩토링한다는 것은 코드를 작성하고 난 뒤에 설계를 개선하는 것이다!
처음부터 좋은 설계를 가지고 개발을 한다면 좋겠지만 시간이 흐르면서 코드는 계속 수정되고 설계에 맞춘 구조는 점차 뒤죽박죽이 되어간다.
그래서 처음부터 완벽한 설계를 갖추기보다는 개발을 진행하면서 지속적으로 설계한다. 시스템을 구축하는 과정에서 더 나은 설계가 무엇인지도 배울 수 있게 된다.
그 결과, 개발의 시작부터 끝날 때까지 프로그램은 줄곧 우수한 설계를 유지할 수 있다.
3의 법칙
3번 중복되면 리팩토링
기능 추가시
더러운 코드를 처리해야하는 경우 먼저 리팩토링
새로운 기능을 더 쉽게 추가 가능
버그 수정시
코드를 정리하면 오류 발견 가능
코드 리뷰 중
런칭하기 전 코드를 정리할 수 있는 마지막 기회
짝을 이루어 진행시 더 빠르고 간단하게 리팩토링 가능
잘못 수행하면 오히려 며칠 혹은 몇 주간의 노력이 수포로 돌아갈 수도...😂
📑 참고 자료
- 리팩터링 2판 (마틴 파울러 / 한빛미디어 / 2020)
- https://refactoring.guru/refactoring