쏘카, 차량 재배치 시스템 리팩터링으로 코드 품질 UP!
by DD
1년 전
조회수 2
레거시 코드의 문제점과 Kinesis 기반 아키텍처의 유지보수 어려움을 해결하고자 함
Kafka와 스프링을 활용하여 아키텍처를 개선하고, 책임 분리 및 테스트 코드 작성을 진행함
전략 패턴 적용을 통해 코드의 확장성을 확보하고, 유지보수성을 향상시킴
Kinesis에서 Kafka로의 전환
기존 Kinesis 기반 시스템은 복잡한 로직과 테스트 부재로 유지보수가 어려웠다. Kafka로 전환하면서 비즈니스 로직과 기술적 로직을 분리하고, 테스트 코드 작성을 통해 코드 품질을 개선했다. 따라서 유지보수성과 확장성을 동시에 확보했다.
책임 분리를 통한 아키텍처 개선
책임 분리를 위해 KafkaListener, KafkaReservationController, CarRelocationService 등 각 컴포넌트의 역할을 명확히 정의했다. CarRelocationService는 전략 패턴을 활용하여 상태 변화에 따른 유연성을 확보했다. 결과적으로 코드 변경의 영향 범위를 최소화하고, 유지보수 효율성을 높였다.
전략 패턴 적용과 테스트 코드 작성
전략 패턴을 적용하여 CarRelocationService의 유연성을 높이고, 새로운 상태 추가 시 코드 변경을 최소화했다. 테스트 코드를 통해 각 클래스의 책임을 검증하고, 사이드 이펙트 발생 가능성을 줄였다. 따라서 코드 품질을 향상시키고, 안정적인 서비스 운영을 가능하게 했다.
댓글 0
첫 번째 댓글을 남겨보세요!