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

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

쏘카
쏘카
2024년 7월 23일

두줄요약

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

핵심 내용

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

적용해볼 점

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

쏘카 계열사 채용8건

채용 사이트에서 전체 보기

다음 읽기

#Kotlin 주제를 이어서 읽기

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

거대 클래스에 섞인 Kinesis·비즈니스 로직을 Spring Kafka 기반 계층 구조로 분리했습니다. 상태별 처리에는 선택자를 도입해 테스트성과 확장성을 높였습니다.

쏘카
쏘카
아키텍처
전체 보기

댓글 0개

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

댓글을 불러오는 중...