[회고] 서울시 상권 데이터로 요식업 업종/상권 비교하기

hyoin·2025년 11월 27일

ROS2 부트캠프

목록 보기
1/2
post-thumbnail

부트캠프에서의 첫 프로젝트가 끝났습니다! 사실 끝난지는 좀 됐지만(이제 2번째 프로젝트 시작할 정도로 시간이 지났습니다) 이제라도 회고를 작성해보네요.
이번 프로젝트의 큰 주제는 EDA였습니다. 데이터를 직접 수집하든 이미 만들어진 데이터를 사용하든 해서, 데이터의 흐름과 특징을 파악하는 게 과제였습니다.

프로젝트 소개

"어떤 상권에서 창업하면 좋을까?" 예비 창업자라면 누구나 한 번쯤 고민하는 질문입니다. 이번 프로젝트에서는 서울시 공공데이터를 활용해 상권별, 업종별 매출 패턴을 분석하고, 시간대와 요일에 따른 특성을 시각화한 대시보드를 만들었습니다.

추천을 위해 ai 모델을 사용하기보다는 데이터의 추세와 패턴을 명확하게 보여주는 것에 집중했습니다. 실제 창업을 고려하는 사람들이 직관적으로 데이터를 탐색하고, 자신에게 맞는 상권을 찾을 수 있도록 돕는 것이 목표였습니다.


데이터 개요

서울시 열린데이터광장에서 제공하는 2024년 분기별 공공데이터를 활용했습니다. 다음과 같은 데이터셋을 사용했습니다.

사용한 데이터셋

상권 기본정보

  • 영역-상권: 서울시 1,650개 상권 (골목상권, 발달상권, 전통시장, 관광특구)
  • 점포-상권: 상권별 업종별 점포 수

추정매출

  • 시간대별/요일별/연령별/성별 매출 데이터
  • 업종별 매출 세분화

유동인구

  • 길단위 유동인구
  • 상주인구
  • 직장인구

소득 데이터

  • 행정동 단위 월평균소득
  • 구매력 지표 (총지출, 음식지출 등)

다른 팀들이 데이터 수집과 크롤링에 시간을 많이 쏟는 동안, 저희 팀은 이미 정제되어 있는 공공데이터를 활용할 수 있었습니다. 이 덕분에 시간적 여유가 생겨 심층 분석과 대시보드 구현에 집중할 수 있었고, 최종적으로 다른 팀들과 달리 실제 작동하는 대시보드까지 완성할 수 있었습니다.

데이터 전처리

여러 데이터셋을 상권 단위로 통합하는 작업이 필요했습니다. 주요 전처리 과정은 다음과 같습니다.

통합 작업

  • 상권, 업종, 점포수, 매출, 인구, 소득 데이터를 상권명 기준으로 병합
  • 행정동 단위 소득 데이터를 상권 단위로 매핑
  • 상권명 정규화

통합 작업은 미리 ERD를 그리고, ERD 테이블 정보에 맞춰서 데이터를 DB에 저장했습니다

집계 및 파생변수 생성

  • 상권별 총 매출, 점포당 매출 계산
  • 시간대별 (점심/저녁/심야), 요일별 (주중/주말) 매출 집계
  • 연령대별, 성별 매출 분포 계산
  • 유동인구 패턴 (시간대별, 요일별) 계산

분석 내용

1. 상권 기본 정보 분석

서울시 1,650개 상권의 업종 분포를 분석한 결과, 상권마다 뚜렷한 특징이 나타났습니다.

주요 발견

  • 한식음식점 비중이 평균 40%로 압도적으로 높음
  • 이태원: 양식업 점포 비중 30% 초과
  • 홍대, 신촌 등 유흥지역: 호프-간이주점 20% 초과
  • 연남동, 가산디지털단지, 문정역: 커피-음료 업종 밀집 (직장인/감성카페)

상권별 점포 분포 지도와 업종별 점포 비중 그래프를 통해 이러한 특성을 시각화했습니다.

2. 매출 정보 분석

총매출과 점포당 매출을 함께 분석하여 유망 상권을 선별했습니다.

분석 방법

  • 점포당 매출 = 총매출 ÷ 점포수 (최소 점포수 30개 이상 상권만 대상)
  • 총매출 vs 점포당 매출의 상관관계 분석

결과

  • 상위 매출 지역은 점포수 분포와 대체로 유사
  • 총매출과 점포당 매출의 순위 일관성 높음 (Pearson r = 0.553, Spearman ρ = 0.863)
  • 두 지표를 모두 고려하면 실질적으로 유망한 상권 선별 가능

시간대별 매출 패턴

  • 주중/주말, 점심/저녁/심야 매출 패턴 확인
  • 관광특구 (명동, 여의도)와 직장 밀집지 (가산디지털단지, 강남역)의 특징적 패턴 발견

성별·연령대별 매출

  • 남성: 한식 > 호프-간이주점 > 커피-음료
  • 여성: 한식 > 커피-음료 > 호프-간이주점
  • 10-20대: 홍대, 건대, 연남동 상권에서 높음
  • 30-60대: 명동, 종로, 여의도 상권에서 높음

3. 인구와 매출 상관관계

인구 유형별로 매출에 미치는 영향을 분석했습니다.

영향력 순서
유동인구 >>> 직장인구 >> 상주인구

직장인구와 유동인구가 집중된 상권일수록 매출이 높았습니다.

유동인구 패턴

  • U자형: 망리단길 등 (출퇴근 시간대 피크)
  • 역U자형: 명동, 강남역 등 (점심-저녁 시간대 피크)

요일별 변화

  • 직장 밀집 상권: 주말 매출 하락
  • 주거형 상권: 주말 매출 소폭 상승

4. 외식업 업종별 특성

업종별로 요일과 시간대에 따른 매출 패턴이 뚜렷하게 구분되었습니다.

요일별 특성

  • 한식음식점: 일요일 매출 가장 낮음
  • 금·토 매출 상승: 호프-간이주점, 양식음식점, 패스트푸드

시간대별 특성

  • 한식: 모든 시간대에서 높은 매출 유지
  • 커피-음료: 점심 시간대 피크
  • 호프-간이주점: 21-24시, 새벽까지 높은 매출

5. 소득/지출과 매출 상관관계

행정동 단위 소득 및 지출 데이터를 상권 매출과 비교 분석했습니다.

상관관계 분석 결과

  • 동 평균 소득 ↔ 상권 매출: 약함 (Pearson r = 0.132, Spearman ρ = 0.152)
  • 총지출 ↔ 총매출: 강함 (r = 0.692, ρ = 0.755)
  • 음식지출 ↔ 총매출: 매우 강함 (r = 0.841, ρ = 0.836)

시사점
입지 평가 시 소득보다는 총지출과 음식지출을 중심으로 시장 규모를 평가하는 것이 효과적입니다.

6. 개폐업율과 경쟁강도

상권의 경쟁 환경이 매출에 미치는 영향을 분석했습니다.

분석 결과

  • 개업률/폐업률 ↔ 매출: 거의 상관 없음
  • 경쟁강도 (유사점포수, 전체점포수) ↔ 매출: 강한 양의 상관 (r ≈ 0.75)

해석
수요가 큰 상권일수록 점포가 집중되어 있으며, 오히려 매출 효율이 향상되는 경향을 보였습니다. 다만 입점 시 차별화와 포지셔닝이 필수적입니다.

7. 창업 유망 상권 도출

시간대별 특화 상권을 분석하여 Top 20 상권을 도출했습니다.

시간 구분

  • 점심: 11-14시
  • 저녁: 17-21시
  • 심야+새벽: 21-24시 + 00-06시

주중 점심, 주중 저녁, 심야, 주말 각 시간대별로 매출이 높은 상권을 선별하여, 대시보드에서 업종별로 확인할 수 있도록 구현했습니다.

Streamlit 대시보드 구현

분석 결과를 직관적으로 탐색할 수 있도록 Streamlit으로 대시보드를 구현했습니다.

주요 기능

상권 탐색 기능

  • 상권 선택 필터
  • 업종별 매출 비교 차트
  • 시간대별/요일별 매출 패턴 시각화
  • 상권의 시간대별/요일별 유동인구 시각화

카테고리별 유망 상권 비교

  • 시간대별 매출이 높은 상권 Top
  • 점포 수 비교

대시보드는 Streamlit Cloud에 배포하여 팀원들과 다른 학생들이 자유롭게 접근할 수 있도록 했습니다.


분석 과정에서 마주한 도전

한식 음식점 데이터 편향

데이터를 탐색하면서 예상치 못한 문제를 발견했습니다. 업종 카테고리 중 '한식 음식점'의 비중이 압도적으로 높아서, 매출액을 비교할 때마다 한식이 다른 업종들을 가려버리는 것이었습니다.

발표 자료를 준비하면서 카페, 편의점, 치킨집 등 다른 업종들의 상권별 차이를 보여주고 싶었는데, 한식을 포함하면 그래프에서 패턴을 읽기가 어려웠습니다. 결국 분석 목적에 따라 한식 음식점을 제외한 그래프를 따로 그려서 인사이트를 도출했습니다.

이상적으로는 대시보드에 "한식 제외" 필터 기능을 넣었으면 좋았겠지만, 프로젝트 기간 내에는 분석과 발표 준비에 집중했습니다.

교훈

  • 데이터의 컬럼뿐만 아니라, 분포까지 먼저 확인하고 분석 전략을 수립해야 함
  • 극단값이나 편향된 카테고리가 있을 때는 별도 처리 필요

공공데이터의 한계

프로젝트를 진행하면서 아쉬웠던 점은 서울시에서 제공하는 데이터 자체가 이미 어느 정도 가공되어 있었다는 점입니다. 원본 raw 데이터에 접근할 수 없어서, 우리가 원하는 방식으로 세밀하게 분석하기에는 한계가 있었습니다.

예를 들어 매출 데이터는 추정치로 제공되었고, 정확한 산출 방식이 명시되지 않아 해석에 주의가 필요했습니다. 또한 일부 상권은 데이터가 누락되어 있거나 업데이트가 늦는 경우도 있었습니다.

시사점
공공데이터를 활용할 때는 데이터가 어떤 기준으로 가공되었는지, 어떤 정보가 제외되었는지를 먼저 확인하는 것이 중요합니다. 이는 분석 결과를 해석할 때 반드시 고려해야 할 사항입니다.


프로젝트 성공 요인

이번 프로젝트가 순조롭게 진행될 수 있었던 이유를 돌이켜보면 크게 세 가지였습니다.

1. 명확한 주제 설정

서울시 상권, 음식점이라는 구체적이고 적당한 범위의 주제 덕분에 프로젝트 방향성이 흔들리지 않았습니다. 너무 크지도, 작지도 않은 스코프였기에 팀원 모두가 목표를 명확히 이해하고 작업할 수 있었습니다.

2. 기존 데이터 활용

다른 팀들이 데이터 수집과 전처리에 시간을 쏟는 동안, 우리는 서울 열린데이터광장의 정제된 데이터를 활용해 분석과 대시보드 구현에 집중할 수 있었습니다. 이 시간 여유가 대시보드까지 완성하고 심층 분석을 수행할 수 있었던 핵심이었습니다.

3. 일일 회의를 통한 긴밀한 협업

거의 매일 팀 회의를 가지며 진행 상황과 분석 결과를 공유했습니다. 덕분에 문제를 빠르게 발견하고, 방향을 조정할 수 있었습니다. 짧더라도 자주 소통하는 것이 프로젝트 성공의 중요한 요소였습니다.

마치며

이번 프로젝트는 복잡한 모델링 없이도 데이터의 추세와 패턴을 효과적으로 보여줄 수 있다는 것을 확인한 경험이었습니다. 또한 공공데이터 활용의 장점과 한계를 동시에 체험할 수 있었고, 팀 협업의 중요성을 다시 한번 느낄 수 있었습니다.

데이터 분석을 해보니 데이터를 제대로 이해하고, 적절한 전처리를 수행하며, 인사이트를 명확하게 전달하는 것이 더 중요하다는 것을 배웠습니다.


프로젝트 정보

관련 포스트

profile
배워야 할 게 많은 개발자... 하지만 공부를 포기하지 않지!!

0개의 댓글