포스트

[29CM 클론코딩 프로젝트] 코드 리팩토링

코드 리팩토링

자바를 공부하고 첫 프로젝트를 마무리하였다. 29CM 쇼핑몰 클론 프로젝트를 하면서 장바구니와 주문(결제 포함) 역할을 맡아 진행하였다.

배경

프로젝트를 마무리한 후 코드를 다시 보니 단일 책임 원칙을 무시하고 개발을 진행한 것을 발견하였다. 그래서 클래스를 분리하고 중복 코드를 제거하는 리팩토링 작업을 진행하였다.

리팩토링 전

장바구니와 주문 패키지가 분리되어 있었지만, 패키지 내 서비스 클래스가 각각 하나씩만 존재했다. 이로 인해 코드가 200줄을 넘어가며 여러 책임을 동시에 수행하고 있어 가독성과 유지보수성이 떨어진 상태였다.

리팩토링 시작

  • 장바구니 서비스에서 총 3가지로 서비스 클래스를 분리하였다.
    • 장바구니 아이템: 장바구니 아이템의 추가, 삭제, 수량 조정 등 장바구니 아이템 관리
    • 장바구니 관리: 장바구니 존재 유무 확인, 장바구니 수정일 업데이트 등 장바구니 관리
    • 장바구니 병합: 비로그인 상태에서 담은 장바구니 아이템을 로그인 시 사용자 계정으로 마이그레이션

image

서비스 클래스를 3개로 분리하면서 기존에 있던 중복 코드들도 정리되었고, 코드가 한층 깔끔해졌다. 또한, 메서드 네이밍을 보다 직관적이고 가독성이 좋게 수정했으며, JavaDoc을 사용하여 코드 문서화를 진행하였다.

  • JavaDoc 문서화를 작업하여 아래와 같이 메서드의 역할을 명확히 알 수 있었다. image image

리팩토링 후

각각의 서비스가 명확한 독립적인 책임을 가지도록 설계하였으며, 서비스 클래스를 분리하고 메서드를 구체적으로 나누면서 장바구니 관련 로직의 유지보수성이 훨씬 높아졌다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.