쏘
쏘카
July 23, 20241회
애셋팀 레거시 개선 (2) 쏘카존 관리 시스템 - 차량재배치 리팩터링
간단 소개
쏘카존 관리 시스템의 차량 재배치 기능 리팩터링을 통해 레거시 코드를 개선하고, 스프링 카프카 기반으로 아키텍처를 변경하여 유지보수성과 확장성을 향상시킴
AI Summary
- 개선 목표: 쏘카존 관리 시스템의 차량 재배치 기능은 오래된 레거시 코드로 인해 유지보수가 어렵고, 기술 스택 또한 AWS DMS, 카프카 대신 맥스웰, 키네시스를 사용하여 문제 발생 시 대응이 쉽지 않았음
- 코드 레벨에서 거대한 클래스로 인해 수정 시 사이드 이펙트 발생 우려가 컸음
- 기술 레벨에서 맥스웰 사용 경험이 있는 개발자가 적어 문제 해결이 어려웠음
- 아키텍처 변경 및 책임 분리: 기존의 키네시스 기반 아키텍처를 스프링 카프카로 변경하고, 단일 클래스에 집중된 로직을 분리하여 각 클래스가 명확한 책임을 갖도록 함
- 비즈니스 로직과 기술 로직을 분리하고, 각 서비스의 역할을 명확히 정의함 (KafkaListener, KafkaReservationController, CarRelocationService 등)
- 전략 패턴을 적용하여 CarRelocationService가 상태에 따라 다른 서비스를 선택적으로 실행하도록 개선함 (CarRelocationActionServiceSelector)
- 테스트 코드 작성: 각 클래스의 책임에 맞는 의미 있는 테스트 코드를 작성하여 코드의 안정성을 확보하고, 리팩터링 후에도 기능이 정상적으로 작동하는지 검증함
- KafkaReservationControllerTest, CarRelocationServiceTest 등을 통해 각 컴포넌트의 동작을 검증함
- 학습 테스트를 통해 기술 검증을 수행함
Next Feeds

Headless CMS를 위한 변경 데이터 캡쳐(CDC) 기술 설계하기
LY Corporation의 헤드리스 CMS LandPress Content의 CDC 설계 및 개발 경험 공유: 데이터 변경 감지부터 파이프라인 전달까지의 과정 설명.
Headless CMSCDCLandPress Content데이터 변경데이터 파이프라인
2024. 7. 23.
LY Corp
오픈마켓 여행 플랫폼의 실전 API 연동 노하우
오픈마켓 여행 플랫폼의 API 연동 노하우: 상품 상세 페이지 내결함성 확보, 실시간 예약의 최종 일관성 및 멱등성 보장 전략.
API 연동내결함성최종 일관성멱등성상태 머신
2024. 7. 23.
지마켓

모두가 이해 할 수 있도록 Test Case 개발 하기
소프트웨어 테스트를 위한 Test Case 개발 방법론과 실제 개발 사례를 통해 효율적인 Test Case 개발 전략을 제시한다.
Test CaseA-SPICE테스트 용어 사전사전 조건체크리스트
2024. 7. 22.
현대자동차
[Operational Research] EURO 2024 학회 참가 후기
EURO 2024 학회 참가 후기: 최적화 분야의 최신 연구 동향과 머신러닝 융합, Stochastic optimization, 수리 최적화 연구 동향을 소개.
최적화머신러닝Stochastic optimization수리 최적화EURO 2024
2024. 7. 21.
현대자동차

요기요 검색에서 형태소 분석기의 한계와 극복
요기요 검색에서 형태소 분석기의 한계를 N-gram을 통해 극복하고 검색 정확도를 향상시킨 사례를 소개합니다.
형태소 분석기N-gram요기요 검색검색 엔진Analyzer
2024. 7. 21.
요기요

Custom Style System 구축하기
크리에이트립 프론트엔드 개발자가 Custom Style System 구축 경험을 공유하며, 필요성, 원칙, 구축 과정 및 결과를 설명합니다.
스타일 시스템styled-componentsCSS-IN-JS컴포넌트인터페이스
2024. 7. 18.
크리에이트립