✔️ 코드 리팩토링이란?
- 외부 동작을 바꾸지 않으면서 내부 구조를 개선하는 방법입니다.
- 코드가 작성된 후 디자인을 개선하는 작업니다.
- 가독성을 높이고 유지보수를 편하게 합니다.
- 버그를 없애거나 새로운 기능을 추가하지는 않습니다.
쉽게 말하자면, 현재 코드의 동작은 그대로 유지하면서 더 이해하기 쉽고 확장하기 쉽게끔 재구성하는 것입니다.
✔️ 리팩토링의 목적
- 중복을 제거함으로써 각각의 작업에 대한 코드가 오직 한 곳에만 있게 합니다.
- 수정 용이성을 향상시킵니다.
- 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만듭니다.
- 버그를 찾는데 도움이 됩니다.
- 프로그램 개발 속도가 향상됩니다.
✔️ 리팩토링의 사용 시기
1. The Rule Of Three : 유사한 내용이 세번 이상 반복될 때
- 똑같거니 비슷한 내용이 세 번 이상 작성되어 있으면 상황에 고려하여 리팩토링을 결정합니다.
2. 새로운 기능을 추가할 때
- 지금 작성된 설계, 소스코드에서 새로운 기능을 추가하기 어려워 보이면, 리팩토링을 해야합니다. 이러한 경우 유지보수성이 떨어지며, 가독성 역시 좋지 않을 수 있습니다.
3. 코드리뷰를 할 때
- 협업하는 동료들과 함께하는 코드리뷰는 코드의 질을 높일 수 있습니다. 너무 많은 인원이 함께하는 경우엔 비효율적이므로 소수 인원으로 진행하는 걸 권장합니다.
다만, 설계 단계에서는 많은 인원이 참여해도 효과적일 수 있습니다.
✔️ 리팩토링을 하지 않아야 할 때
- 현재 코드가 작동하지 않는다면 리팩토링이 아니라 코드를 새로 작성해야 합니다. 리팩토링을 하기 전에 코드가 제대로 작동하는지 확인해야합니다.
✔️ 리팩토링의 절차
![](https://velog.velcdn.com/images/jojo_/post/2b172868-73e2-44ed-a5d6-766ba68253cc/image.png)
- 소규모 변경 후 동작여부를 테스트하고 작동할 경우 다음단계, 그렇지 않을 경우 undo 후 리팩토링을 진행해야합니다.