워밍업 클럽 3기 BE 클린코드&테스트 - 2주차 발자국

워밍업 클럽 3기 BE 클린코드&테스트 - 2주차 발자국

코드 리팩토링을 통한 성장: 주간 회고

1. 리팩토링을 시작하게 된 계기

이번 주는 코드 리팩토링을 집중적으로 진행했다. 기존 코드에서 개선할 점을 찾아 수정하는 과정에서 단순한 문법 개선을 넘어, 코드의 유지보수성과 가독성을 향상시키는 것이 얼마나 중요한지 다시금 깨닫게 되었다.

리팩토링을 진행한 코드(PR): GitHub 링크

이 과정을 통해 단순한 기능 구현이 아니라, 보다 효율적인 코드 작성법과 객체 지향적인 사고 방식을 익히게 되었다.


2. 리팩토링 과정과 개선 포인트

(1) 중복 코드 제거 및 메서드 추출

기존 코드에서는 비슷한 로직이 여러 메서드에서 반복적으로 사용되고 있었다. 이를 해결하기 위해 메서드 추출 기법을 적용했다.

  • 기존 코드에서는 여러 곳에서 동일한 로직을 복사-붙여넣기 했지만, 공통 로직을 별도의 메서드로 분리하여 재사용성을 높였다.

  • 이 과정에서 단일 책임 원칙(SRP, Single Responsibility Principle) 을 더욱 깊이 이해할 수 있었다.

(2) 가독성을 높이는 네이밍 개선

리팩토링 전에는 변수명과 메서드명이 애매하여 코드의 의도를 명확히 파악하기 어려웠다. 개선 과정에서 다음과 같은 기준을 적용했다.

  • 메서드명은 동작을 명확하게 설명할 수 있도록 동사 + 목적어 형식으로 변경

  • 변수명은 의미를 명확하게 전달할 수 있도록 명명 (예: tempformattedDate)

  • 코드 리뷰 과정에서 네이밍의 중요성을 다시금 깨달았다. 가독성이 높아지면 코드의 이해도가 높아지고, 유지보수도 쉬워진다.

(3) 불필요한 의존성 제거 및 클래스 분리

기존 코드에서는 한 클래스가 너무 많은 역할을 담당하고 있었다. 이를 해결하기 위해 책임을 분리하고, 역할에 맞는 클래스를 생성했다.

  • 기존의 거대한 클래스에서 역할별로 클래스를 분리하여 객체 지향적인 구조로 개선

  • 불필요한 의존성을 제거하고, 의존성 역전 원칙(DIP, Dependency Inversion Principle) 을 적용하여 유연성을 높였다.

  • SRP를 적용한 후, 코드의 변경이 필요할 때 한 곳만 수정하면 되어 유지보수성이 크게 향상되었다.


3. 다른 개발자들의 경험에서 배운 점

이번 리팩토링을 진행하면서 다른 개발자들이 작성한 후기도 참고했다. (Inflearn 블로그 링크 모음)

여러 후기에서 공통적으로 강조하는 몇 가지 핵심 사항을 발견했다.

  1. 리팩토링의 본질은 단순한 코드 변경이 아니라 유지보수성과 확장성을 높이는 것

    • 코드가 동작한다고 끝이 아니라, 더 나은 코드로 개선하는 과정이 필요함.

  2. 리팩토링은 협업과 코드 리뷰를 통해 더욱 효과적으로 이루어진다

    • 혼자 작업할 때는 발견하지 못했던 문제점들이, 코드 리뷰를 통해 드러남.

    • 다른 개발자들의 시각에서 개선점을 찾는 것이 중요함.

  3. 객체 지향 원칙을 적용하는 것이 리팩토링의 핵심이다

    • SOLID 원칙을 고려하며 리팩토링할 때 코드가 더욱 구조적으로 개선됨.

    • 특히 단일 책임 원칙(SRP), 의존성 역전 원칙(DIP) 을 적용하면 코드의 확장성이 크게 증가함.

이번 리팩토링을 통해 나 또한 이 점을 깊이 체감했다.


4. 리팩토링을 통해 얻은 교훈

이번 경험을 통해 얻은 가장 큰 교훈은 "리팩토링은 단순한 코드 수정이 아니라, 코드의 가치를 높이는 과정이다." 라는 것이다.

  • 코드는 팀원과 미래의 나를 위한 문서와 같다. 가독성이 좋고, 유지보수가 쉬운 코드가 진짜 좋은 코드다.

  • 코드 리뷰를 적극적으로 활용하자. 다른 개발자들의 피드백을 통해 더 나은 개발자가 될 수 있다.

  • 객체 지향 원칙을 익히고 실천하자. SOLID 원칙을 고려하며 개발하는 것이 장기적으로 가장 효율적인 방법이다.

이러한 리팩토링 경험을 반복하면서, 더욱 성장하는 개발자가 되어야겠다는 다짐을 하게 되었다. 앞으로도 주간 단위로 배운 내용을 정리하며 지속적인 성장을 기록할 예정이다.


앞으로의 다짐

  • 매주 코드 리팩토링을 진행하고, 개선된 내용을 블로그에 정리하기

  • 코드 리뷰 문화를 적극적으로 활용하고, 동료 개발자들과 협업하며 성장하기

  • SOLID 원칙과 디자인 패턴을 공부하고, 실무에서 적용할 수 있도록 연습하기

이번 리팩토링 경험을 통해 얻은 교훈을 앞으로도 개발 과정에 적용하며, 더 나은 개발자로 성장해 나가겠다!

댓글을 작성해보세요.


채널톡 아이콘