1. 들어가며
차를 가진 분이라면 세차한 직후에 비가 내려 속상했던 적이 한 번쯤 있으실 겁니다. 우리는 비나 눈은 세차 효과를 무력화하는 강력한 변수임을 경험적으로 잘 알고 있는데요. 만약 수 만대의 차량이 전국 곳곳에 흩어져 있다면 이 문제를 어떻게 관리해야 할까요? 쏘카는 운영 효율화를 위한 주요 과제로서 언제 세차를 하는게 효과적일지 데이터로 판단하고 있습니다.
기존 쏘카의 ‘세차 오퍼레이션’은 차량 오염 여부를 기준으로 세차를 요청하는 방식이었습니다. 비나 눈이 오더라도 차량이 오염되었으면 세차를 요청하는 구조였기에, 강수 예보를 반영하지 않아 불필요한 세차가 발생할 가능성이 있었습니다. 물론, 세차된 차량을 제공하는 것이 고객 경험을 향상시킬 수 있습니다. 하지만 비효율적인 세차 요청은 비용 증가로 이어지고, 이는 서비스 가격 인상으로 연결될 수 있습니다. 따라서 제한된 비용을 효율적으로 활용하기 위해 날씨 데이터를 반영한 최적의 세차 요청 로직을 설계했습니다.
*참고 : 용어 설명
강수량 | 강우량 | 강설량 |
---|---|---|
비 뿐만 아니라 눈, 우박, 안개비 등 모든 형태의 기상 현상을 포함한 총 강수의 양 | 일정 기간 동안 특정 지역에 내린 비의 총량. 일반적으로 밀리미터(mm) 단위로 측정 | 일정 기간 동안 내린 눈의 높이를 의미하며, cm(센티미터) 단위로 적설량 : 쌓인 눈의 총 깊이 |
2. 날씨 기반 세차 운영 최적화
2.1 기존 세차 오퍼레이션과 개선 필요성
쏘카는 기존에도 AI를 활용한 ‘세차 오퍼레이션’을 운영하고 있었습니다. 차량 오염 여부를 판단하는 AI 모델을 적용해, 고객이 업로드한 차량 이미지를 분석한 후 오염 상태로 분류된 차량에 대해 자동으로 세차를 요청하는 방식이었습니다. 해당 내용은 Data Product (2) AI(데이터)로 실제 운영 효율화가 가능할까?에서 자세히 확인할 수 있습니다.

‘세차 오퍼레이션’ 아키텍쳐
하지만 기존 방식은 날씨 요인을 고려하지 않아 불필요한 세차 요청이 발생하는 문제가 있었습니다. 현장에서 비나 눈이 차량 오염에 미치는 영향에 대한 경험적 인식은 있었지만, 이를 정량적으로 분석해 운영 정책으로 반영한 사례는 없었습니다. 세차 최적화를 위해 강수 예보를 반영하면 운영 비용 절감이 가능할 것으로 기대되었고, 날씨와 차량 오염 간의 관계를 검증하여 이를 반영하는 것이 핵심 목표였습니다.
2.2 날씨 데이터 수집
날씨 데이터를 활용하여 운영 프로세스를 개선하려면, 단순한 실험적 분석이 아니라 안정적이고 주기적인 데이터 수집과 정제가 필수적입니다. 기존에도 기상청 API를 통해 날씨 데이터를 적재했지만, 데이터 적재 실패가 빈번했고 원인 분석도 어려웠습니다. 이는 외부 데이터 자체의 문제뿐만 아니라, 급하게 요구되는 특정 데이터만 단편적으로 적재한 결과 데이터 관리가 체계적이지 않았기 때문입니다.
이를 해결하기 위해 데이터 사용자들과 논의하여, 활용 목적에 맞춰 데이터셋을 재구성하고 ‘단기 예보’ 데이터를 중심으로 날씨 데이터를 정리했습니다. 이후 데이터 엔지니어링팀이 다양한 적재 방식을 시도하며 안정적인 적재 환경을 구축했습니다.
3. 데이터 분석 및 운영 적용
3.1 분석을 위한 데이터 상세 정의
날씨 데이터는 직관적으로 이해하기 쉬우나, 실제 운영 적용을 위해서는 명확한 기준이 필요합니다. 예를 들어 ‘비가 온다’는 정보도 개인이 우산을 챙길지 결정하는 것과 야구 경기가 취소될지를 판단하는 맥락에서는 서로 다른 기준이 적용됩니다.
또한, 날씨 정보는 행정구역 단위로 제공되지만, 실제 기상 현상은 행정 경계를 따르지 않기에 ‘서울의 날씨’가 서울 내 모든 차량에 동일하게 적용된다고 볼 수 없습니다. 따라서 데이터 활용 목적에 맞춰 최적의 기준을 설정해야 합니다. 운영 단위가 너무 넓으면 날씨의 영향을 제대로 반영하기 어렵고, 너무 좁으면 관리 부담이 커지기 때문입니다.
우리가 알고있는 ‘서울 날씨’는 실제로는 '중구 을지로'의 날씨입니다.
요즘 같이 국지성 호우가 잦아지는 환경에서는 지역을 구분하는 기준이 더욱 고민되었습니다.
결론적으로 날씨 데이터를 세차 요청 로직에 적용하기 위해, 전국의 종관기상관측소(ASOS)를 기준으로 특정 시점의 차량 위치와 가장 가까운 기상관측소의 데이터를 연결하는 방식을 채택했습니다. 기상 상태를 대표하는 지역 단위의 선정이 쉽지 않고 또 전국 각지의 행정구역의 경계를 그대로 위치 정보로 변환하여, 이를 차량의 위치 정보와 결합하는 것은 매우 방대한 데이터 처리를 필요로 하기 때문입니다. 차량과 가장 가까운 지점의 기상 정보를 반영하는 방식은 이러한 문제를 해결하면서도 차량과 가장 가까운 지점의 기상 정보를 반영하는 데 가장 합리적이라고 판단했습니다.


종관기상관측소(ASOS) 기준으로 반경 최대 32km이내의 차량 추출해 적용한다면 데이터가 누락되는 구간없이 차와 날씨를 연결할 수 있다고 판단했습니다.
3.2 날씨와 차량 오염의 상관관계 분석
날씨가 차량 오염에 미치는 영향을 검증하기 위해, 강수량과 차량 오염도를 비교하는 분석을 진행했습니다. 분석에 있어 큰 고민은 강수량을 누적값으로 볼지, 특정 시간대의 값으로 볼지, 그리고 강수의 영향을 받는 시간 범위를 어떻게 설정할지였습니다.
단순히 하루 총 강수량을 기준으로 하면 특정 시간대의 집중 호우 영향을 놓칠 수 있고, 반대로 특정 시간대만 고려하면 지속적인 강수 효과를 반영하기 어렵습니다. 이를 해결하기 위해 강수량의 누적값과 시간당 최대값을 비교하며 차량 오염 변화를 분석한 결과, 시간당 최대 강수량이 차량 오염을 활용하는 것이 가장 적절하다는 결론을 내렸습니다.
이에 따라 날씨와 차량을 연결하는데 아래와 같은 기준을 설정했습니다.
- ‘비를 맞았다’의 정의
- 가장 가까운 종관기상관측소 기준, 하루 중 시간당 강우량이 3mm 이상인 지역에 ±2시간 이내 존재한 차량
- ‘눈을 맞았다’의 정의
- 가장 가까운 종관기상관측소 기준, 하루 중 시간당 적설량이 1cm 이상인 지역에 ±2시간 이내 존재한 차량
이 기준을 통해 강수량이 차량 오염에 미치는 실질적인 영향을 반영할 수 있었습니다. 분석 결과, 눈을 맞은 차량은 오염될 확률이 높아 세차 요청 로직을 유지하는 것이 타당했습니다. 반면, 강우량이 일정 수준 이상일 경우, 차량이 외부 존에 있는 경우 차량 외관이 자연적으로 세척되는 경향이 나타났으며, 이에 따라 해당 차량의 세차 요청을 보류하는 것이 운영적으로 더 효율적이라는 결론을 도출했습니다.
'비를 맞은' 차량은 외관이 세척되는 효과가 있어, 세차 필요 여부를 다시 고려하게 됐습니다.
‘눈을 맞은' 차량은 오염되는 경향이 있어, 기존 오염 판단에 따라 그대로 세차를 요청할 필요가 있었습니다.
3.3 운영 적용을 위한 시뮬레이션
관측치와 예측치의 비교
분석 결과를 운영에 반영하기 위해서는, 다시 관측된 강수량 데이터가 아니라 예측치인 일기 예보 데이터를 활용하는 방식으로 로직을 최적화해야 했습니다. 오늘 세차를 요청할지 말지는 예보를 기준으로 사전에 판단되어야 하기 때문입니다.
먼저 기존 ‘세차 오퍼레이션’의 운영 시점에 맞춰, 새벽 5시에 업데이트된 단기 예보를 기준으로 당일 6시~23시의 강수량과 강수 확률을 활용하는 방식이 가장 적절하다고 판단했습니다.
단기 예보
예보 기간 | 발표 주기 | 내용 |
---|---|---|
발표 시점으로부터 3일 이내 | 하루 8회 (02, 05, 08, 11, 14, 17, 20, 23시) |
정시 기온, 최고·최저기온, 강수형태, 강수확률, 강수량, 적설, 하늘상태, 풍향, 풍속, 습도, 파고 등 12개 요소를 1시간 단위로 제공 |
앞선 분석을 통해 시간당 3mm 이상의 강수량이 차량 오염에 영향을 미친다는 기준을 설정했지만, 실제 운영에서 활용하기 위해서는 더 정밀한 조건이 필요했습니다. 이에 따라 시간당 강수량(Nmm)과 강수 확률(N%)을 조정하며, 관측된 날씨 데이터와 예측된 데이터가 얼마나 일치하는지 검토했습니다. 또한, 단순히 예측 정확도를 확인하는 것을 넘어 각 기준에 따라 세차 요청을 보류할 경우 실제 운영 비용 절감 효과가 얼마나 발생하는지도 확인했습니다. 이 분석을 통해 예측 정확도와 기대 효과 규모의 최적점이 되는 시간당 강수량(Nmm)과 강수 확률(N%)을 정의했습니다.
운영 적용을 위한 시뮬레이션
추가로 실제 운영에 반영하기 전, 새로운 정책 적용이 세차 요청 프로세스에 미치는 영향을 정량적으로 검토할 필요가 있었습니다. 특히, 연속적인 강수 이벤트로 인해 세차 요청이 한꺼번에 몰리는 현상이 발생하는지 확인하는 것이 중요했습니다.
비가 오는 동안 세차 요청을 지연시키고, 날씨가 맑아지면 기 발행된 세차 요청을 수행하는 방식으로 시뮬레이션을 진행했습니다.
이를 전국 데이터를 기반으로 비가 자주 내린 한 달 동안 적용한 결과, 강수 예보를 반영했을 때 세차 요청 건수가 감소하는 효과가 명확히 확인되었습니다. 또한, 강수 종료 후 요청이 한꺼번에 몰려 운영 부담이 커지는 현상은 발생하지 않았습니다. 이는 세차 요청이 매일 모든 차량에 대해 발생하지 않고, 기존에도 처리되지 않은 요청이 반복적으로 발생하는 구조 때문인 것으로 파악했습니다.
4. 운영 적용 결과 및 인사이트
4.1 날씨 기반 세차 운영 정책 적용 결과
최종적으로, 새벽 5시 기준 업데이트된 단기 예보 데이터를 기반으로 당일 6시~23시의 시간별 강수량과 강수 확률이 특정 기준을 초과하는 경우, 해당 지역의 차량 외부 세차 요청을 보류하는 로직을 추가했습니다. 이 로직은 1년 이상 안정적으로 운영되었으며, 기존 운영 조건들보다 운영 효율화에 강력한 영향을 미치는 변수로 확인되었습니다. 또한, 이를 통한 비용 절감 효과 역시 확인할 수 있었습니다.
4.2 맥락 해석이 필요한 데이터의 활용
비 오는 날 세차가 비효율적이라는 것은 상식처럼 여겨집니다. 그러나 이를 데이터 기반 의사결정으로 전환하려면, 직관적인 개념을 데이터로 해석할 수 있는 기준을 설정하고, 이를 정량적으로 검증하는 과정이 필요합니다.
날씨 데이터와 차량 위치 데이터는 개별적으로는 정형화된 정보지만, 실제 세차 운영 의사결정에 활용하려면 여러 변수를 종합적으 고려하는 맥락적 해석이 필요합니다. 예를 들어, ‘오늘 서울에 비가 온다’는 단순한 정보처럼 보이지만, 이를 유의미한 기준으로 변환하려면 강수량, 강수 확률, 지역별 차이, 시간대 등 다양한 요소를 함께 고려해야 합니다. 본 프로젝트에서는 이러한 복합적인 변수를 통합하여 의사결정 기준을 수립하고, 이를 바탕으로 정형화된 결과를 도출하는 것이 핵심이었습니다. 이를 통해 내부 이해관계자들과 공감대를 형성하고, 운영에 실질적으로 적용할 수 있도록 설득력을 높였습니다.
또한, 데이터 기반으로 문제를 구조화했기 때문에 적용 이후에도 지속적인 개선이 가능했습니다. 새로운 정보가 추가되거나 전략적 의사결정이 필요할 때, 설정한 기준을 조정하여 예상되는 영향을 평가하고 최적의 결정을 내릴 수 있었습니다. 단순한 데이터 분석에 그치는 것이 아니라, 이를 실제 운영에 적용하고 목표하는 결과를 도출할 수 있는지 검증하는 과정까지 포함하는 것이 중요했습니다.
이처럼 현실의 문제를 데이터로 해결하려면, 단순한 데이터 수집과 분석을 넘어 다양한 변수를 고려하여 의미를 해석하고 설득력 있는 기준을 마련해야 합니다. 또한, 이를 바탕으로 최적화된 의사결정 체계를 구축하는 것이 필수적임을 다시 한번 확인할 수 있었습니다.