brunch

AI 데이터 분석 : 눈이 오면 배달이 증가하는 이유?

데이터로 풀어보는 일상 비즈니스 이야기 - 2

by Nak

필자는 모빌리티 기업에서 근무하고 있는데, 우리의 메인 고객은 바로 라이더이다.


라이더 데이터를 회사에서 많이 다루다보니, 배달 관련된 주제를 많이 다루게 되는 것이 인지상정이라면 인지상정이랄까.


물론 회사 데이터를 공개할 수 있다면 훨씬 더 깊이가 있는 분석이 가능하겠지만, 브런치에 회사 내부 데이터를 공개할 수는 없다.


그래서 누구나 접근할 수 있는 데이터를 쉽게 풀어서, 일상생활에서 오는 궁금점을 해소하고자 하는 것이 내가 글에서 독자들과 나누고픈 이야기이다.


하지만 역시나 실제 데이터를 공개하지 못하는 것은 조금 아쉽기는 하다.


한동안 배달 건수가 많지는 않았는데, 곧 겨울이 오면 배달 건수가 폭발적으로 증가할 것이다. 특히 눈이 오게 되면 콜당 프로모션 등도 붙기 때문에 늘어나는 콜 수만큼 프로모션비도 늘어나 소득이 대폭 증가하게 된다.


벌써 11월 마지막 주이기 때문에, 곧 첫눈이 올 시기도 얼마 남지 않았다.


오늘의 주제는 곧 첫 눈도 오기 때문에, 눈과 배달 증가에 대한 관련성을 데이터로 풀어서 이야기해보는 시간을 가져보도록 하겠다.


지난 시간에 비와 배달의 상관관계에 대해서 알아보았는데, 오늘도 날씨와 배달 관련 데이터를 통해 데이터 분석 시간을 한번 가져보도록 하자.


눈이 오면 배달을 시켜 먹고 싶은 기분이 드는 것은 나만의 착각일 수도 있겠지만, 데이터를 보면 나만 그렇지 않음을 깨달을 수 있을 것이다.


우선 우리 Notebook LM이 만들어준 요약표를 본 후 본격적으로 데이터 분석을 해보도록 하자.

unnamed.png
1. 데이터 소개


이번에 사용한 데이터 테이블은 2개이다.


- 날씨 데이터

- 네이버 트렌드 데이터


우선 데일리 날씨 데이터 테이블을 보도록 하자.


이전 시간에 보았던 날씨 데이터 테이블에서 눈 내린 양이 추가되었다.(이전 편 아래 링크 참조)

https://brunch.co.kr/@chunja07/167

이전의 데이터와 다른 점은 눈 내린 양을 추가하기 위해서 날짜 데이터를 조정했다는 것이다.


강수량의 경우 11월을 기준으로 3개월치의 데이터를 가져왔는데, 눈 내린 양은 1,2월 데이터를 가져와야 해서 2024년 1,2월 데이터를 불러왔다는 차이점을 미리 명시해둔다.


1) 일별 날씨 데이터 Weather_Daily(Open-Meteo API)


아래와 같이 쿼리문을 불러왔다. 샘플로 10개의 데이터만 가져오도록 해보자.

select * from weather_daily order by date ASC limit 10;


| id | date | location | rain_mm | avg_temp | created_at | snowfall_mm | snow_depth_cm |

| --- | ---------- | -------- | ------- | -------- | ----------------------------- | ----------- | ------------- |

| 275 | 2023-12-30 | Seoul | 11.4 | -0.6 | 2025-11-22 12:25:11.807457+00 | 5.46 | null |

| 276 | 2023-12-31 | Seoul | 2.2 | 1.6 | 2025-11-22 12:25:11.807457+00 | 0.07 | null |

| 277 | 2024-01-01 | Seoul | 0.0 | 0.9 | 2025-11-22 12:25:11.807457+00 | 0.0 | null |

| 278 | 2024-01-02 | Seoul | 0.1 | 1.2 | 2025-11-22 12:25:11.807457+00 | 0.0 | null |

| 279 | 2024-01-03 | Seoul | 0.1 | 0.0 | 2025-11-22 12:25:11.807457+00 | 0.07 | null |

| 280 | 2024-01-04 | Seoul | 0.0 | -0.4 | 2025-11-22 12:25:11.807457+00 | 0.0 | null |

| 281 | 2024-01-05 | Seoul | 0.6 | 2.8 | 2025-11-22 12:25:11.807457+00 | 0.0 | null |

| 282 | 2024-01-06 | Seoul | 0.4 | -1.6 | 2025-11-22 12:25:11.807457+00 | 0.28 | null |

| 283 | 2024-01-07 | Seoul | 0.0 | -5.3 | 2025-11-22 12:25:11.807457+00 | 0.0 | null |

| 284 | 2024-01-08 | Seoul | 0.0 | -5.9 | 2025-11-22 12:25:11.807457+00 | 0.0 | null |


이 데이터에서 우리가 봐야할 부분은 바로, date / snowfall_mm이다.


-date: 날씨 데이터 관측일

-snowfall_mm: 적설량


이 2개를 기준으로 네이버 트렌드 데이터와 조인이라는 SQL 문을 써서 분석에 필요한 원시 데이터를 작성하도록 하겠다.



2) 일별 네이버 검색 트렌드 데이터 Daily_Trend_Naver(Naver API)


아래와 같이 쿼리문을 불러왔다. 샘플로 10개의 데이터만 가져오도록 해보자.


select * from trend_daily_naver order by date ASC limit 10;


| date | keyword | device | ratio | created_at |

| ---------- | ------- | ------ | -------- | ----------------------------- |

| 2023-12-30 | 배달 | | 12.53242 | 2025-11-22 12:25:12.379989+00 |

| 2023-12-30 | 배달음식 | | 33.27814 | 2025-11-22 12:25:12.379989+00 |

| 2023-12-30 | 치킨 | | 83.73793 | 2025-11-22 12:44:33.17985+00 |

| 2023-12-30 | 치킨 배달 | | 16.0596 | 2025-11-22 12:25:12.379989+00 |

| 2023-12-30 | 피자 | | 52.15271 | 2025-11-22 12:44:33.17985+00 |

| 2023-12-31 | 배달 | | 5.47774 | 2025-11-22 12:25:12.379989+00 |

| 2023-12-31 | 배달음식 | | 39.23841 | 2025-11-22 12:25:12.379989+00 |

| 2023-12-31 | 치킨 | | 95.22772 | 2025-11-22 12:44:33.17985+00 |

| 2023-12-31 | 치킨 배달 | | 18.83278 | 2025-11-22 12:25:12.379989+00 |

| 2023-12-31 | 피자 | | 55.22357 | 2025-11-22 12:44:33.17985+00 |


이 테이블에서 우리가 봐야하는 부분은 바로, date/keyword/ratio 부분이다.


-date: 트렌드 데이터 관측일

-keyword: 네이버 검색어

-ratio: 검색양


위 2개의 테이블을 조인해서 날짜별 원시 데이터 조합을 아래와 같이 만들 수 있다.


| date | location | avg_temp | snowfall_mm | keyword | ratio |

| ---------- | -------- | -------- | ----------- | ------- | -------- |

| 2023-12-30 | Seoul | -0.6 | 5.46 | 배달 | 12.53242 |

| 2023-12-30 | Seoul | -0.6 | 5.46 | 치킨 | 83.73793 |

| 2023-12-30 | Seoul | -0.6 | 5.46 | 피자 | 52.15271 |

| 2023-12-31 | Seoul | 1.6 | 0.07 | 배달 | 5.47774 |

| 2023-12-31 | Seoul | 1.6 | 0.07 | 치킨 | 95.22772 |

| 2023-12-31 | Seoul | 1.6 | 0.07 | 피자 | 55.22357 |

| 2024-01-01 | Seoul | 0.9 | 0.0 | 배달 | 4.24317 |

| 2024-01-01 | Seoul | 0.9 | 0.0 | 치킨 | 65.2661 |

| 2024-01-01 | Seoul | 0.9 | 0.0 | 피자 | 45.05135 |

| 2024-01-02 | Seoul | 1.2 | 0.0 | 배달 | 3.01379 |


각 날짜별 서울 지역의 온도 및 적설량과 키워드에 따른 검색양을 쿼리의 조인문을 활용해서 가져온 값이다. 이제 우리는 이 데이터를 분석하기 위해서 하나의 구분값을 만들도록 하겠다.


바로 눈 양을 카테고리로 나누는 것이다.


2. 데이터 카테고리화

우리가 알고 싶은 것이 무엇인가?


바로 눈이 오는 양에 따라서, 각 키워드별 검색양이 얼마나 변하나를 보고 싶다는 것이다.


데이터를 쌓을 때도 그렇고, 분석할 때도 그렇고 우리가 무엇을 하고 싶은지 아는 것이 가장 중요하다.


사실 이건 인생에서도, 우리가 무엇을 하고 싶은지를 알아야 카테고리를 나누든 뭘 하든 할 수 있는 것과 비슷하다고 볼 수 있다. 어쨋든 우리는 무엇을 하든, 우리가 보고 싶은 것을 알아야 그것에 맞게 스킬을 쓸 수가 있는 것이다.


| date | avg_temp | snowfall_mm | snow_bucket | ratio | keyword |

| ---------- | -------- | ----------- | ----------- | -------- | ------- |

| 2023-12-30 | -0.6 | 5.46 | 눈 조금 | 12.53242 | 배달 |

| 2023-12-30 | -0.6 | 5.46 | 눈 조금 | 83.73793 | 치킨 |

| 2023-12-30 | -0.6 | 5.46 | 눈 조금 | 52.15271 | 피자 |

| 2023-12-31 | 1.6 | 0.07 | 눈 많이 | 5.47774 | 배달 |

| 2023-12-31 | 1.6 | 0.07 | 눈 많이 | 95.22772 | 치킨 |

| 2023-12-31 | 1.6 | 0.07 | 눈 많이 | 55.22357 | 피자 |

| 2024-01-01 | 0.9 | 0.0 | 눈 없음 | 4.24317 | 배달 |

| 2024-01-01 | 0.9 | 0.0 | 눈 없음 | 65.2661 | 치킨 |

| 2024-01-01 | 0.9 | 0.0 | 눈 없음 | 45.05135 | 피자 |

| 2024-01-02 | 1.2 | 0.0 | 눈 없음 | 3.01379 | 배달 |


위에서 snow_bucket이라는 컬럼을 보도록 하자.


아래 쿼리문을 보면 알 수 있듯이, 적설량에 따라서 구분값을 나누었다.


case

when wd.snowfall_mm = 0 then '눈 없음'

when wd.snowfall_mm > 0 and wd.snowfall_mm < 5 then '눈 조금'

when wd.snowfall_mm >= 5 and wd.snowfall_mm < 10 then '눈 보통'

else '눈 많이'

end as snow_bucket


적설량이 0이면 '눈 없음', 0~5사이면 '눈 조금', 5~10 사이면 '눈 보통', 그 보다 많으면 '눈 많이'라는 4개의 카테고리로 나눈 것이다.


이제 거의 다 온 것 같다. 이 4가지 카테고리화 한 것을 중복값을 제거하고 그룹으로 묶어서 가져오면 다음과 같은 평균 값을 가져오게 된다. (우리는 쿼리에서 이것을 group by 라는 명령어로 묶는다.)


| snow_bucket | keyword | avg_ratio | days |

| ----------- | ------- | --------- | ---- |

| 눈 없음 | 배달 | 3.42 | 44 |

| 눈 조금 | 배달 | 3.77 | 15 |

| 눈 보통 | 배달 | 8.13 | 2 |

| 눈 없음 | 치킨 | 51.66 | 44 |

| 눈 조금 | 치킨 | 58.26 | 15 |

| 눈 보통 | 치킨 | 64.21 | 2 |

| 눈 없음 | 피자 | 30.98 | 44 |

| 눈 조금 | 피자 | 32.76 | 15 |

| 눈 보통 | 피자 | 40.59 | 2 |


위 데이터는 각 눈 적설량 카테고리 및 키워드별로 평균 검색 트렌드 값이 얼마나 되는지를 불러온 것이다.


배달, 치킨, 피자 카테고리 모두 눈 없음 -> 눈 조금 -> 눈 보통으로 갈수록 숫자가 증가하는 것을 볼 수 있다.


3. 눈 오는 날 배달이 왜 늘어날까?

눈 오는 날 치킨, 피자, 배달의 검색량이 늘어난 것을 바탕으로 우리는 눈 오는 날 배달의 양은 증가한다는 것을 확인할 수 있었다.


그렇다면 배달이 늘어나는 이유는 무엇일까?


너무나 간단하다.


밖에 나가기 귀찮으니까.


우리가 돈을 지불한다는 행위는 결국 귀찮음비용으로 대체하는 선택을 한다는 의미이다.


눈이나 비가 내리는 날은 외출의 불편함이 커지기 때문에 장을 보러 가기도 싫고, 외식을 나가기도 귀찮기 때문에 배달이 비쌈에도 불구하고 그 비용이 충분히 지불할 만한 가치가 있다고 느껴지는 것이다.


1편에서 다뤘던 비가 오는 날 치킨이 증가하는 이유 역시 같은 원리로 이해할 수 있다.

날씨는 소비자의 행동을 가장 직접적으로 바꾸는 외부 요인 중 하나이다. 그리고 배달 시장은 이 날씨의 영향을 그대로 반영한다.


그래서 각종 프로모션 혜택도 주어지는 것이 아닐까 싶다.


모든 인간은 ‘귀찮음’이라는 본능을 가지고 있고, 그 본능을 해결해주는 누군가는 반드시 필요하다.

그리고 그 역할을 해주는 사람이 바로 라이더들이다.


우리의 귀찮음을 항상 대신해주는 라이더들에게 고마움을 표하고 싶다.



추가로 이 글을 Notebook LM에게 맡기면 비디오도 만들어준다.


아래 링크는 오직 AI로만 만든 영상에, Capcut으로 자막만 추가한 영상이다. 조금 더 예쁜 그림으로 통계를 보고 싶다면 한번 보도록 해보자!

https://www.youtube.com/watch?v=kvQaz-2dzzk


keyword
이전 01화AI 데이터 분석 : 비가 오면 치킨 배달이 늘어날까?