대전광역시 5개 자치구의 불법주정차 단속 건수, CCTV 설치 현황, 인구 데이터를 결합하여 자치구별 단속 인프라의 충족률과 효율성을 분석한 개인 프로젝트입니다.
대전을 중심으로 꾸준히 운전을 해 오면서, 불법주차가 빈번한 구간에 단속 CCTV가 보이지 않는 상황을 반복적으로 경험했습니다. 이것이 개인적인 체감인지, 실제 데이터로 확인되는 구조적 문제인지를 검증하기 위해 공공데이터를 활용한 분석을 시작했습니다.
목표
대전광역시 5개 자치구(동구, 중구, 서구, 유성구, 대덕구)의 단속 건수·CCTV 설치 현황·인구 데이터를 종합하여, 자치구별 단속 인프라의 충족 수준과 운영 효율성을 분석한다.
가설
- 인구가 많은 자치구일수록 CCTV 설치 수가 이에 비례해 많을 것이다.
- 인구 대비 CCTV가 부족한 자치구가 존재한다면, 해당 지역은 단속 사각지대일 가능성이 높다.
| 데이터명 | 출처 | 기준 시점 |
|---|---|---|
| 대전광역시 불법주정차 단속현황 | 공공데이터포털 | 2018~2020년 |
| 대전광역시 불법주정차 단속구간(고정형 CCTV) | 공공데이터포털 | 2020년 |
| 대전광역시 주민등록 현황 | 공공데이터포털 | 2020년 11월 |
CCTV와 인구 데이터가 2020년 기준이므로, 단속 데이터를 2018~2020년 3개년으로 한정하여 시점을 일치시켰습니다.
SQL (DBeaver / SQLite) → Python (Pandas / Seaborn) → Tableau Public
1단계 — SQL: 데이터 추출 및 지표 산출
3개 테이블(단속현황, CCTV 설치구간, 인구)을 자치구 기준으로 단계적으로 JOIN하여 두 가지 핵심 지표를 산출했습니다.
CCTV 1대당 단속 건수: 장비 과부하 수준 측정인구 만명당 CCTV 설치 대수: 인프라 충족률 측정
추가로 과태료 데이터를 활용하여 CCTV 1대당 과태료 징수액과 인구 1인당 과태료 부담액도 산출했습니다.
2단계 — Python: 상관관계 분석 및 시각화
Pandas로 변수 간 상관계수를 산출하고, Seaborn으로 히트맵과 막대 차트를 생성하여 통계적 관계를 검증했습니다.
3단계 — Tableau: 대시보드 제작 및 게시
분석 결과를 대시보드 형태로 구성하여 Tableau Public에 게시했습니다.
- CCTV 설치수 ↔ 단속 건수 : 상관계수 0.95 (강한 비례)
- 인구수 ↔ 인구 만명당 CCTV : 상관계수 −0.01 (무관) → CCTV가 인구 비례로 배치되지 않음
- 동구(1.44)·서구(1.48) : 인구 만명당 CCTV 최하위이며, CCTV 1대당 단속 건수(각 5,038건·5,180건)는 최상위 → 장비 과부하 상태
- 서구 : 인구 대비 CCTV가 적은 편임에도 인구 1인당 과태료 31.0천 원으로 최상위 → 불법주차 심각 또는 CCTV 입지 효율성, 두 가지 해석 가능
- 유성구(1.96) : 인구 대비 CCTV 충족률 최상위, 장비 부담 상대적으로 낮음
- 데이터 시점 : 2018~2019년의 CCTV 규모·인구 구성이 2020년과 동일했는지 확인 불가
- 단속 건수 해석 : 단속 건수에 고정형 CCTV 외 수단(이동형 CCTV, 현장 단속)이 포함되었을 가능성 있음
- 유동인구 미반영 : 주민등록 기준 상주인구만 사용. 상업지구·대학가 등 유동인구 영향 미반영
- 도로 환경 미반영 : 도로 폭, 도로 유형, 공영주차장 확보율 등 도로 환경 변수 미포함
- 데이터 규모 : 자치구 5개(n=5)로 통계적 신뢰도에 한계. 행정동 단위 세분화 또는 타 광역시 비교 분석 필요
본 분석의 결과는 CCTV 배치의 불균형 가능성을 제시하는 수준이며, 인과관계를 단정하지 않습니다.
분석의 전체 과정을 4편의 블로그 시리즈로 정리했습니다.
| 편 | 내용 | 링크 |
|---|---|---|
| 1편 | 주제 선정 및 데이터 수집 | 바로가기 |
| 2편 | SQL 조인 분석 및 Python 심층 분석 | 바로가기 |
| 3편 | Tableau 시각화 및 인사이트 종합 | 바로가기 |
| 4편 | 분석의 한계점, 향후 과제, 프로젝트 회고 | 바로가기 |
| 파일명 | 설명 |
|---|---|
DJ_final_result.csv |
3개 테이블 JOIN 최종 결과 (자치구별 단속·CCTV·인구·핵심 지표) |
DJ_fine_analysis.csv |
과태료 분석 결과 (CCTV 1대당 과태료, 인구 1인당 과태료) |
DJ_parking_analysis_step2_pandas.ipynb |
Python 상관관계 분석 및 시각화 코드 |
DJ_parking_dashboard.twb |
Tableau 대시보드 작업 파일 |