리팩토링이란 소프트웨어 공학에서 결과의 변경 없이 코드의 구조를 재조정함을 뜻합니다.
- 가독성을 높이고 유지보수를 편리하게 만드는 것
- 사용자가 보는 화면은 그대로 두면서 내부 로직이나 구조를 개성하는 행위를 유지보수라고 부른다
- 버그를 없애거나 새로운 기능을 추가하느 행위는 리팩토링이라 하지 않는다.
리팩토링의 목적
- 코드 가독성 향상
- 코드를 읽기 쉽게 변수명, 함수명, 클래스 구조 등을 개선하여 코드의 의도를 명확하게 전달한다
- 유지보수성 개선
- 중복 코드 제거, 함수 분리, 클래스 분리 등
- 버그 수정 및 안정성 향상
- 복잡한 로직을 단순화하거나 오류가 발생할 가능성이 있는 부분을 개선
- 확장성과 재사용성 강화
- 모듈화와 추상화를 통해 소스 코드의 재사용성과 확장성을 높여 유연한 구조를 구축한다
- 성능 최적화
- 중복코드 제거, 비용이 큰 알고리즘 대체 등으로 성능향상
- 개발 생산성 향상
- 깔끔하고 잘 구조화된 코드는 개발자들 간의 협업과 작업 속도를 높일 수 있다.
리팩토링 시 참고할 것
- 작은 단위로 리팩토링하기
- 큰 코드 범위를 한 번에 수정하려고 하지 말기
- 영향 범위를 적게 만들기
- 오류 발생 시 디버깅이 용이해짐
- 코드 리뷰 및 피드백 받기
- 다른 사람의 시각과 의견을 듣고 개선점을 찾아낼 수 있다
- 테스트 작성 및 유닛 테스트
- 리팩토링 과정에서 기능의 변화 여부를 확인하기 위해서 테스트 케이스를 작성해 본다
- 지속적인 리팩토링 실천
- 지속적인 리팩토링 습관을 갖는것이 좋다
- 주기적으로 코드베이스를 검사하고 개선할 부분을 찾아서 조금씩 개선
- 설계 원칙과 디자인 패턴 활용하기
- SOLID원칙