카테고리 없음

[Refactoring]리팩토링이란?

juhwan 2023. 9. 19. 21:52

리팩토링이란 소프트웨어 공학에서 결과의 변경 없이 코드의 구조를 재조정함을 뜻합니다.

  • 가독성을 높이고 유지보수를 편리하게 만드는 것
  • 사용자가 보는 화면은 그대로 두면서 내부 로직이나 구조를 개성하는 행위를 유지보수라고 부른다
  •  버그를 없애거나 새로운 기능을 추가하느 행위는 리팩토링이라 하지 않는다. 

리팩토링의 목적

  • 코드 가독성 향상
    • 코드를 읽기 쉽게 변수명, 함수명, 클래스 구조 등을 개선하여 코드의 의도를 명확하게 전달한다
  • 유지보수성 개선
    • 중복 코드 제거, 함수 분리, 클래스 분리 등
  • 버그 수정 및 안정성 향상
    • 복잡한 로직을 단순화하거나 오류가 발생할 가능성이 있는 부분을 개선
  • 확장성과 재사용성 강화
    • 모듈화와 추상화를 통해 소스 코드의 재사용성과 확장성을 높여 유연한 구조를 구축한다
  • 성능 최적화
    • 중복코드 제거, 비용이 큰 알고리즘 대체 등으로 성능향상
  • 개발 생산성 향상
    • 깔끔하고 잘 구조화된 코드는 개발자들 간의 협업과 작업 속도를 높일 수 있다.

 

리팩토링 시 참고할 것

  1. 작은 단위로 리팩토링하기 
    1. 큰 코드 범위를 한 번에 수정하려고 하지 말기
    2. 영향 범위를 적게 만들기
    3. 오류 발생 시 디버깅이 용이해짐
  2. 코드 리뷰 및 피드백 받기
    1. 다른 사람의 시각과 의견을 듣고 개선점을 찾아낼 수 있다
  3. 테스트 작성 및 유닛 테스트
    1. 리팩토링 과정에서 기능의 변화 여부를 확인하기 위해서 테스트 케이스를 작성해 본다
  4. 지속적인 리팩토링 실천
    1. 지속적인 리팩토링 습관을 갖는것이 좋다
    2. 주기적으로 코드베이스를 검사하고 개선할 부분을 찾아서 조금씩 개선
  5. 설계 원칙과 디자인 패턴 활용하기
    1. SOLID원칙