
부트캠프에서의 첫 프로젝트가 끝났습니다! 사실 끝난지는 좀 됐지만(이제 2번째 프로젝트 시작할 정도로 시간이 지났습니다) 이제라도 회고를 작성해보네요.
이번 프로젝트의 큰 주제는 EDA였습니다. 데이터를 직접 수집하든 이미 만들어진 데이터를 사용하든 해서, 데이터의 흐름과 특징을 파악하는 게 과제였습니다.
"어떤 상권에서 창업하면 좋을까?" 예비 창업자라면 누구나 한 번쯤 고민하는 질문입니다. 이번 프로젝트에서는 서울시 공공데이터를 활용해 상권별, 업종별 매출 패턴을 분석하고, 시간대와 요일에 따른 특성을 시각화한 대시보드를 만들었습니다.
추천을 위해 ai 모델을 사용하기보다는 데이터의 추세와 패턴을 명확하게 보여주는 것에 집중했습니다. 실제 창업을 고려하는 사람들이 직관적으로 데이터를 탐색하고, 자신에게 맞는 상권을 찾을 수 있도록 돕는 것이 목표였습니다.
서울시 열린데이터광장에서 제공하는 2024년 분기별 공공데이터를 활용했습니다. 다음과 같은 데이터셋을 사용했습니다.
상권 기본정보
추정매출
유동인구
소득 데이터
다른 팀들이 데이터 수집과 크롤링에 시간을 많이 쏟는 동안, 저희 팀은 이미 정제되어 있는 공공데이터를 활용할 수 있었습니다. 이 덕분에 시간적 여유가 생겨 심층 분석과 대시보드 구현에 집중할 수 있었고, 최종적으로 다른 팀들과 달리 실제 작동하는 대시보드까지 완성할 수 있었습니다.
여러 데이터셋을 상권 단위로 통합하는 작업이 필요했습니다. 주요 전처리 과정은 다음과 같습니다.
통합 작업
통합 작업은 미리 ERD를 그리고, ERD 테이블 정보에 맞춰서 데이터를 DB에 저장했습니다
집계 및 파생변수 생성
서울시 1,650개 상권의 업종 분포를 분석한 결과, 상권마다 뚜렷한 특징이 나타났습니다.
주요 발견
상권별 점포 분포 지도와 업종별 점포 비중 그래프를 통해 이러한 특성을 시각화했습니다.
총매출과 점포당 매출을 함께 분석하여 유망 상권을 선별했습니다.
분석 방법
결과
시간대별 매출 패턴
성별·연령대별 매출
인구 유형별로 매출에 미치는 영향을 분석했습니다.
영향력 순서
유동인구 >>> 직장인구 >> 상주인구
직장인구와 유동인구가 집중된 상권일수록 매출이 높았습니다.
유동인구 패턴
요일별 변화
업종별로 요일과 시간대에 따른 매출 패턴이 뚜렷하게 구분되었습니다.
요일별 특성
시간대별 특성
행정동 단위 소득 및 지출 데이터를 상권 매출과 비교 분석했습니다.
상관관계 분석 결과
시사점
입지 평가 시 소득보다는 총지출과 음식지출을 중심으로 시장 규모를 평가하는 것이 효과적입니다.
상권의 경쟁 환경이 매출에 미치는 영향을 분석했습니다.
분석 결과
해석
수요가 큰 상권일수록 점포가 집중되어 있으며, 오히려 매출 효율이 향상되는 경향을 보였습니다. 다만 입점 시 차별화와 포지셔닝이 필수적입니다.
시간대별 특화 상권을 분석하여 Top 20 상권을 도출했습니다.
시간 구분
주중 점심, 주중 저녁, 심야, 주말 각 시간대별로 매출이 높은 상권을 선별하여, 대시보드에서 업종별로 확인할 수 있도록 구현했습니다.
분석 결과를 직관적으로 탐색할 수 있도록 Streamlit으로 대시보드를 구현했습니다.
상권 탐색 기능
카테고리별 유망 상권 비교
대시보드는 Streamlit Cloud에 배포하여 팀원들과 다른 학생들이 자유롭게 접근할 수 있도록 했습니다.
데이터를 탐색하면서 예상치 못한 문제를 발견했습니다. 업종 카테고리 중 '한식 음식점'의 비중이 압도적으로 높아서, 매출액을 비교할 때마다 한식이 다른 업종들을 가려버리는 것이었습니다.
발표 자료를 준비하면서 카페, 편의점, 치킨집 등 다른 업종들의 상권별 차이를 보여주고 싶었는데, 한식을 포함하면 그래프에서 패턴을 읽기가 어려웠습니다. 결국 분석 목적에 따라 한식 음식점을 제외한 그래프를 따로 그려서 인사이트를 도출했습니다.
이상적으로는 대시보드에 "한식 제외" 필터 기능을 넣었으면 좋았겠지만, 프로젝트 기간 내에는 분석과 발표 준비에 집중했습니다.
교훈
프로젝트를 진행하면서 아쉬웠던 점은 서울시에서 제공하는 데이터 자체가 이미 어느 정도 가공되어 있었다는 점입니다. 원본 raw 데이터에 접근할 수 없어서, 우리가 원하는 방식으로 세밀하게 분석하기에는 한계가 있었습니다.
예를 들어 매출 데이터는 추정치로 제공되었고, 정확한 산출 방식이 명시되지 않아 해석에 주의가 필요했습니다. 또한 일부 상권은 데이터가 누락되어 있거나 업데이트가 늦는 경우도 있었습니다.
시사점
공공데이터를 활용할 때는 데이터가 어떤 기준으로 가공되었는지, 어떤 정보가 제외되었는지를 먼저 확인하는 것이 중요합니다. 이는 분석 결과를 해석할 때 반드시 고려해야 할 사항입니다.
이번 프로젝트가 순조롭게 진행될 수 있었던 이유를 돌이켜보면 크게 세 가지였습니다.
서울시 상권, 음식점이라는 구체적이고 적당한 범위의 주제 덕분에 프로젝트 방향성이 흔들리지 않았습니다. 너무 크지도, 작지도 않은 스코프였기에 팀원 모두가 목표를 명확히 이해하고 작업할 수 있었습니다.
다른 팀들이 데이터 수집과 전처리에 시간을 쏟는 동안, 우리는 서울 열린데이터광장의 정제된 데이터를 활용해 분석과 대시보드 구현에 집중할 수 있었습니다. 이 시간 여유가 대시보드까지 완성하고 심층 분석을 수행할 수 있었던 핵심이었습니다.
거의 매일 팀 회의를 가지며 진행 상황과 분석 결과를 공유했습니다. 덕분에 문제를 빠르게 발견하고, 방향을 조정할 수 있었습니다. 짧더라도 자주 소통하는 것이 프로젝트 성공의 중요한 요소였습니다.
이번 프로젝트는 복잡한 모델링 없이도 데이터의 추세와 패턴을 효과적으로 보여줄 수 있다는 것을 확인한 경험이었습니다. 또한 공공데이터 활용의 장점과 한계를 동시에 체험할 수 있었고, 팀 협업의 중요성을 다시 한번 느낄 수 있었습니다.
데이터 분석을 해보니 데이터를 제대로 이해하고, 적절한 전처리를 수행하며, 인사이트를 명확하게 전달하는 것이 더 중요하다는 것을 배웠습니다.
프로젝트 정보
관련 포스트