바쁜 직장인의 일기장

프로그래밍 코드(Code) 리팩토링(refactoring)에 대하여 본문

IT 지식

프로그래밍 코드(Code) 리팩토링(refactoring)에 대하여

그리미스 2024. 7. 8. 23:35
728x90
반응형

회사에서 정신없이 개발을 하다 보니, 어느새 관리가 안될 만큼 코드가 길고 지저분해져 버렸다. 몇 가지 기능을 추가하려 하면, 어마어마한 중복코드들이 늘어나는 건 일상이고, 에러가 발생해서 수정하려면 시간이 한참 걸리는 상황까지 와버렸다.

오히려 처음부터 다시 개발하는게 나을 것 같은 생각도 들었다.

 

하지만 여태까지 짰던 코드를 처음부터 다시 개발하기엔 시간도 오래 소모될 것 같고, 테스트까지 진행하기엔 사실 귀찮았다. 그래서, 다시 초심으로 돌아가 코드 리팩토링(refactoring)을 진행해서 확장성과 유지보수를 잘할 수 있도록 하는 작업이 필요하였다.

 

사실, 가장 좋은건 처음부터 확장성 있는 구조로 설계하여 개발하면 이렇게 다시 리팩터링 하는 시간이 필요 없었겠지만, 시간에 쫓기다 보면 일단 기능부터 구현하게끔 개발하게 되는 건 아마 다른 개발자들도 공감할 것이다.

 

각설하고 그래서 코드 리팩토링이 왜 필요하고, 어떤 효과가 있는지 공유해본다.

 


코드 리팩토링(refactoring)이란?

 

코드 리팩토링(Code Refactoring)은 소프트웨어 개발 과정에서 코드의 기능을 변경하지 않으면서 코드의 구조를 개선하는 작업을 말한다.

 

주로 코드의 가독성, 유지보수성, 성능 등을 향상하기 위해 수행되며, 리팩토링은 새로운 기능을 추가하거나 버그를 수정하는 것이 아니라, 기존 코드를 더 잘 이해하고 관리하기 쉽게 만드는 것이 목표이다.

 

 

코드 리팩토링 왜 필요하나?

 

 

개발 초기 단계에 여러 가지 테스트를 진행하면서, 확장성이 있는 구조로 설계되었다면, 에러를 발견해서 수정하는 비용은 크게 들지 않았을 것이다. 그러나 이러한 구조를 설계하지 않고 그냥 개발되었다면 아래 그래프와 같이 나중에 이러한 에러를 찾고 수정하는데 어마어마한 비용이 들것이다. 고로 이러한 상황이 오기 전에 코드 리팩토링을 진행하여야 한다.

잘못된 코드로 인한 코드 수정 비용

 

 

 

 

코드 리팩토링 언제 진행하나?

 

아래와 같은 코드로 개발되었을 때 리팩토링이 필요하다.

 

  • 가독성 저하: 복잡하고 이해하기 어려운 변수 및 코드는 수정에 더 많은 시간이 필요하다.
  • 중복 코드: 동일한 기능을 여러 곳에서 수정해야 하므로 시간이 많이 소요된다.
  • 불명확한 로직: 복잡한 조건문은 이해와 수정이 어렵다.
  • 높은 결합도: 하나의 수정이 다른 모듈에 영향을 미쳐 전체 수정 작업이 필요하다.
  • 테스트 부족: 테스트가 부족하면 수정 후 버그가 발생할 가능성이 높다.
  • 성능 문제: 비효율적인 코드는 최적화에 추가적인 리소스와 시간이 필요하다.

 

 

 

코드 리팩토링을 하면 어떤 효과가 있나?

 

 

  • 코드 가독성 향상
    • 가독성이 높은 코드는 이해하기 쉽고, 다른 개발자들이 쉽게 유지보수할 수 있다.
    • 예시: 의미 없는 변수 이름을 명확하게 변경하거나, 복잡한 조건문을 간단한 함수로 분리.
  • 유지보수성 개선
    • 유지보수성이 좋은 코드는 버그 수정이나 기능 추가가 용이하다.
    • 예시: 중복된 코드를 제거하고 모듈화 하여 재사용성을 높임.
  • 코드 성능 최적화
    • 비효율적인 코드를 최적화하여 성능을 향상할 수 있다.
    • 예시: 불필요한 반복문을 제거하거나, 알고리즘을 개선.
  • 버그 감소
    • 코드 구조가 명확해지면 예기치 않은 버그가 줄어든다.
    • 예시: 복잡한 로직을 단순화하여 오류 가능성을 줄임.
  • 팀워크 향상
    • 코드 스타일과 구조를 일관되게 유지하면 팀원들 간의 협업이 원활해진다.
    • 예시: 코드 스타일 가이드라인을 준수하여 통일된 코드 작성.

 


 

반응형