기술블로그

[여기어때컴퍼니] 리팩토링 여정, 더 나은 코드로의 항해 part 1. 리팩토링 계기와 문제 진단

작성자 정보

  • QARobot 작성
  • 작성일

컨텐츠 정보

  • 442 조회

본문

[기술포스팅 원문] https://techblog.gccompany.co.kr/리팩토링-여정-더-나은-코드로의-항해-part-1


[기술포스팅 요약] 여기어때 숙박전시개발팀의 전시 리팩토링 과정과 문제 진단 및 해결 방향을 다룬 글입니다. 전시파트에서 진행하는 A/B 테스트가 서비스 구조에 미치는 영향과, 이를 개선하기 위해 어떤 과정으로 리팩토링을 계획했는지에 대한 인사이트를 제공합니다.
  • 전시파트의 역할과 A/B 테스트
    • 여기어때의 제휴점 데이터 노출을 담당하며, 사용자 편의성을 높이기 위한 다양한 A/B 테스트를 진행합니다.
    • A/B 테스트는 두 가지 버전을 무작위 사용자 그룹에 노출해 최적의 결과를 찾는 방식으로, 서비스 개선을 위한 필수 요소입니다.
  • 카테고리 홈 개편 A/B 테스트 사례
    • 카테고리 홈에서 API 응답이 완료될 때까지 사용자 액션이 불가능한 문제를 해결하기 위해 A/B 테스트를 진행했습니다.
    • 여러 그룹 중 가장 긍정적인 반응을 얻은 D그룹의 방식을 선택해 최종 개선을 완료했습니다.
  • 기존 전시파트 구조의 문제점
    • 만능 부모 클래스를 상속하는 구조로 인해 코드가 복잡하고 확장성이 저하되었습니다.
    • Response 클래스의 과도한 재사용으로 인해 필드 히스토리가 단절되고, 유지보수가 어려운 상황이 발생했습니다.
    • 전략 로직이 부모 클래스에 집중되어 있어 작은 변경에도 서비스 전체에 영향을 미쳤습니다.
  • 리팩토링 필요성 및 개선 방향
    • 예측할 수 없는 변경 여파와 실험 종료 후 코드 정리의 비효율성으로 인해 리팩토링의 필요성이 대두되었습니다.
    • AS-IS 문제점:
      • 만능 클래스를 상속하는 구조로 인해 확장이 어렵고 유지보수에 부담이 큼
      • 정확한 정책 문서와 테스트 코드 부족
    • TO-BE 개선 방향:
      • Mob Programming을 통해 도메인 지식 공유 및 동기화
      • 테스트 커버리지 80% 이상 달성 및 E2E 테스트 필수화
      • A/B 테스트를 위한 유연하고 확장 가능한 구조로 개편
      • 상속 구조 대신 포함 관계로 전환하여 책임 분리
  • 향후 계획
    • 리팩토링의 첫 단계로 문제 진단 및 구조 개선 작업을 수행했습니다.
    • 리팩토링 진행 과정과 결과는 다음 포스팅에서 상세히 다룰 예정입니다.


"이 게시글은 [GPT-4o model]를 통해 요약되었으며, 정보 공유 목적으로 게시되었습니다. 원문 게시물에 대한 책임이나 이해 관계가 없습니다. - 소프트웨어QA 포럼"

관련자료

댓글 0
등록된 댓글이 없습니다.