목록 보기
애셋팀 레거시 개선 (2) 쏘카존 관리 시스템 - 차량재배치 리팩터링
백엔드

애셋팀 레거시 개선 (2) 쏘카존 관리 시스템 - 차량재배치 리팩터링

쏘카
쏘카
2024년 7월 23일

두줄요약

쏘카의 차량재배치 레거시를 Kinesis에서 Kafka로 옮기며 책임을 분리한 리팩터링 사례를 다뤘습니다. 상태별 처리와 테스트코드를 정리해 유지보수성과 변경 안전성을 높였습니다.

핵심 내용

  • 쏘카 존 관리 시스템의 차량재배치 레거시를 Kinesis 기반 구조에서 Kafka 기반 구조로 바꾸며 리팩터링한 사례
  • 하나의 거대 클래스에 있던 스프링 처리, 스트림 처리, 비즈니스 로직을 분리해 app과 infra/kafka로 패키징
  • KafkaListener, Controller, Service로 책임을 나누고 상태별 처리에는 전략패턴 선택 구조를 적용
  • 각 책임에 맞는 테스트코드를 추가해 수정 시 사이드이펙트 우려를 줄이는 방향으로 정리

적용해볼 점

  • 기술 로직과 비즈니스 로직의 분리 기준을 먼저 세우고 구조를 다시 쪼개는 접근
  • 상태별 분기 로직은 직접 참조보다 선택자 계층을 둬 변경 영향을 줄이는 방식
  • 책임 단위별 테스트와 learning 테스트를 분리해 유지보수성을 높이는 방식

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...