📌 프로젝트 개요
☐ 주관 : 2023 천안시 데이터 기반 시각화 아이디어 공모전 (본선 진출)
☐ 프로젝트 명 : 낙후지표와 복지지표 기반 복지 컨트롤 타워 시스템 구축
☐ 프로젝트 기간 : 23년 8월 ~ 23년 10월
☐ 인원 : 4명 (BOAZ 시각화 1차 미니프로젝트, 팀 천앙버터)
☐ 활용 Tool : Notion, Python, Tableau, PPT
☐ 프로젝트 개요 : 낙후지표와 복지지표를 통해 천안시 읍면동의 격차 파악 후, 각 지역별 복지 정책의 방향성을 제시하여 천안시의 균형 발전을 도모
☐ 본인이 맡은 역할 :
- 선행연구 조사 :
- 이천시 지역 불균형 실태와 균형 발전 정책 방향(2022) - 권진우 외 2
- 자료 수집 및 전처리 :
- 토지/의료 관련 데이터 수집 및 전처리
- 지표 선정 :
- 토지지표/의료지표 제작
- 대시보드 제작
- 발표
☐ 성과/의의 :
- 객관적 자료를 참고하여 지표를 구성한 뒤 대시보드에 표현
- 읍면동별 적절한 정책 제안 / 추가 복지 정책 제안
📑 프로젝트 내용
❓주제 선정 배경
천안시는 읍면동 간의 불균형 격차가 심해 인프라 개선을 지속적으로 요구하고 있습니다.
이를 해결하기 위해, 크게 다음 두 가지의 목표를 세웠습니다.
- 다방면의 지표를 기반하여 생성한 낙후지표와 복지지표를 지도에 시각화 함으로써 읍면동별 격차 파악
- 각 지역에 필요한 복지 정책의 방향성을 제공
🔗 데이터 수집
토글을 펼치면 활용 데이터 목록을 확인할 수 있습니다.
데이터 | 시점 | 출처 | 데이터 설명 및 목적 |
대한민국 최신 행정구역 (SHP) | 2022.7 | GIS DEVELOPER 대한민국 최신 행정구역 (SHP) | [낙후지표 시각화] [복지지표 시각화] 천안시 읍면동별 지도 시각화 |
천안시 연령별 인구 현황 | 2022.1 ± 2023.7 | 천안시 통계 | [낙후지표 시각화] [복지지표 시각화] 인구 지표 활용 및 시각화 복지 지표 활용 및 시각화 |
전국버스정류장 위치정보 | 2022.10 | 국토교통부 데이터 통합 채널 네이버 지도 & 구글 지도 | [낙후지표 시각화] 교통 지표 활용 및 시각화 |
천안시 행정구역별 지목별 총괄 | 2023.4 ± 2023.6 | 천안시 통계 분기별 토지 현황 | [낙후지표 시각화] 토지 지표 활용 및 시각화 |
전국 초,중,고등학교 위치 | 2023.4 | 공공데이터 포털 | [복지지표 시각화] 교육 지표 활용 및 시각화 |
유초중등 전체현황 | 2023.4 | KESS 교육통계서비스 | [복지지표 시각화] 교육 지표 활용 및 시각화 |
천안시 노인복지시설 현황 | 2022.8 | 공공데이터 포털 | [복지지표 시각화] 복지 지표 활용 및 시각화 |
천안시 지역아동센터 현황 | 2022.6 | 공공데이터 포털 | [복지지표 시각화] 복지 지표 활용 및 시각화 |
천안시 여성복지시설 현황 | 2022.6 | 공공데이터 포털 | [복지지표 시각화] 복지 지표 활용 및 시각화 |
천안시 시설관리공단 시설 현황 | 2023.6 | 공공데이터 포털 | [복지지표 시각화] 복지 지표 활용 및 시각화 |
읍면동별 장애 등록인구 | 2022.12 | KOSIS 국가통계포털 | [복지지표 시각화] 복지 지표 활용 및 시각화 |
충청남도_병원 정보 | 2022.7 | 충청남도 통계 사이트 | [복지지표 시각화] 의료 지표 활용 및 시각화 |
충청남도_의원 정보 | 2022.7 | 충청남도 통계 사이트 | [복지지표 시각화] 의료 지표 활용 및 시각화 |
활용한 모든 데이터는, 프로젝트 진행 당시 기준 최신 데이터로 수집하였습니다.
🙋🏻♀️ 본인이 맡은 역할
⓵ 객관적 자료를 기반으로 복합적 지표 구성 제안
낙후지표- 정의 : 변화 용이성이 상대적으로 낮은 인구/토지/교통 정보를 종합하여 구성한 지표
- 계산 : [인구지표 * 토지지표 * 교통지표]의 정규화 값
- 인구지표 : [읍면동별 인구 / 면적 ]의 정규화 값
- 교통지표 : [읍면동별 버스정류장 / 면적]의 정규화 값
- 토지지표 : [읍면동별 토지 구성 / 면적]의 정규화 값
→ 정규화는 MINMAX Scaler를 이용하여 0 ~ 1 사이의 값으로 계산하였습니다.
복지지표- 정의 : 변화 용이성이 상대적으로 높은 의료/복지/교육 정보를 종합하여 구성한 지표
- 계산 : [교육지표 + 복지시설지표 + 의료지표]의 정규화 값
- 의료지표 : [의료시설 개수(정규화), 인구대비 의료인 수(정규화), 인구대비 병상 수(정규화)]의 정규화 값
- 복지시설 지표 : 복지 대상별 복지시설 개수의 정규화 값
- 교육지표 : [학교 개수(정규화), 교원 수(정규화), 학생 수(정규화)]의 정규화 값
→ 정규화는 MINMAX Scaler를 이용하여 0 ~ 1 사이의 값으로 계산하였습니다.
⓶ 낙후지표(토지), 복지지표(의료) 데이터 전처리 및 지표 구성
낙후지표에 포함되는 토지 데이터와 복지지표에 포함되는 의료 데이터를 담당하여, 데이터 전처리를 수행한 뒤 지표를 구성하였습니다.
낙후지표(토지) : [읍면동별 토지 구성 / 면적]의 정규화 값- 데이터 명 :
천안시 행정구역별 지목별 총괄 - 읍면동 내 ‘리’ 단위까지 구성된 지역이 있어, 읍면동 단위로 포괄
- 총 28개로 이루어진 토지 지목을 7개의 구성으로 포괄하여 분류
- 복지 시설이 많이 분포할 지역을 기준으로 높은 가중치를 주기 위해 가중치 부여할 역을 구분
- 가중치가 구분된 지역별로 해당 가중치 만큼 계산
- 가중치 적용한 최종 점수
: 전체에 대한 각 부문의 백분율로 계산
지역 분류 | 토지 지목 |
농업 지역 | 전, 답, 과수원, 목장용지, 임야, 광천지 |
산업 및 상업 지역 | 대, 공장용지, 주유소용지, 창고용지 |
교육 시설 지역 | 학교용지 |
교통 및 주차 시설 지역 | 주차장용지, 도로, 철도용지 |
자연 및 환경 관련 지역 | 방, 하천, 구거, 유지, 양어장, 수도용지 |
문화 시설 지역 | 공원, 체육용지, 유원지, 종교용지, 사적지 |
묘지 및 잡종 지역 | 묘지, 잡종지 |
가중치 0.7 토지 지역 | 산업 및 상업 지역, 교육 환경 지역, 문화 시설 지역 |
가중치 0.5 토지 지역 | 교통 및 주차 시설 지역, 자연 및 환경 관련 지역 |
가중치 0.3 토지 지역 | 농업 지역, 묘지 및 잡종 지역 |
가중치 0.7 계산 | 0.7 * 가중치 0.7 토지 지역 |
가중치 0.5 계산 | 0.5 * 가중치 0.5 토지 지역 |
가중치 0.3 계산 | 0.3 * 가중치 0.3 토지 지역 |
토지 최종 점수 | 가중치 0.7 계산 + 가중치 0.5 계산 + 가중치 0.3 계산 |
복지지표(의료) : [의료시설 개수(정규화), 인구대비 의료인 수(정규화), 인구대비 병상 수(정규화)]의 정규화 값- 데이터 명 :
충청남도 의원 정보,충청남도 병원 정보 - 충청남도 의원/병원 정보 파일에서, 천안시에 해당하는 의료 기관 현황만을 추출
- 필요한 컬럼만 추출
- 읍면동 별로 의료 정보 추출 및 정규화
- 총 의료인 수
- 총 병원 수
- 의료인구 대비 의료인 수
- 의료인구 대비 병상 수
읍면동 | 구분 | 상세구분 | 상세이름 | 위도 | 경도 | 도로명주소 | 전화번호 | 의료인수 | 병상수 | 입원실수 | 진료과목내용명 |
# 읍면동 별 총 의료인 수 doctor = a.groupby('읍면동')['의료인수'].sum().reset_index() doctor
# 읍면동 별 총 병원 수 a['병원수'] = 1 a hospital = a.groupby('읍면동')['병원수'].sum().reset_index() hospital
# 읍면동 별 병원 수 정규화 scaler.fit(hospital) df_scaled_3 = scaler.transform(hospital) df_scaled_3 = pd.DataFrame(df_scaled_3, columns = ['점수정규화3']) df_scaled_3
# 읍면동 별 의료인구 대비 의료인 수 peo_doc = pd.merge(b, doctor, on='읍면동', how='outer') peo_doc['의료인구 대비 의료인수'] = peo_doc['의료인수']/peo_doc['총계'] peo_doc = peo_doc.fillna(0) peo_doc_scal = peo_doc[['의료인구 대비 의료인수']] peo_doc_scal
# 읍면동 별 의료인구 대비 의료인 수 정규화 scaler.fit(peo_doc_scal) df_scaled = scaler.transform(peo_doc_scal) df_scaled = pd.DataFrame(df_scaled, columns = ['점수정규화']) df_scaled
# 읍면동 별 의료인구 대비 병상 수 peo_bed = pd.merge(b, bed, on='읍면동', how='outer') peo_bed['의료인구 대비 병상수'] = peo_bed['병상수']/peo_bed['총계'] peo_bed = peo_bed.fillna(0) peo_bed_scal = peo_bed[['의료인구 대비 병상수']] peo_bed_scal
# 읍면동 별 의료인구 대비 병상 수 정규화 scaler.fit(peo_bed_scal) df_scaled_2 = scaler.transform(peo_bed_scal) df_scaled_2 = pd.DataFrame(df_scaled_2, columns = ['점수정규화2']) df_scaled_2
💡성과/의의
📍대시보드 인사이트
제작한 총 2개의 대시보드별 인사이트는 다음과 같습니다.
낙후 격차 현황 대시보드 인사이트
- 상위 5개 낙후지역의 경우 농업지역의 면적이 가장 높은 반면, 도심지역의 경우 대부분 산업 지역이 많은 비중을 차지
- 낙후지역의 나이대별/성별 인구 그래프에서 대부분 아동 인구가 적고 노령 인구가 많은 역삼각형 그래프의 형태
- 외곽지역의 경우 주로 지도에서 붉은색을 띄고 있는 반면, 도심지역의 경우 지도에서 녹색을 띄고 있음
- 동면(낙후순위 1위, 43,264,125m^2)의 버스정류장은 67개지만, 면적이 10배 가량 작은 불당동(낙후순위 32위, 4,656,423m^2)은 버스정류장이 74개
복지 격자 현황 대시보드 인사이트
- 복지수준이 낮은 지역 (와촌동, 수신면, 구룡동)의 경우 의료, 복지, 교육 시설이 거의 존재하지 않음
- 복지수준이 높은 지역(성정동, 불당동, 쌍용동)의 경우 의료시설의 수가 천안시 평균 의료시설 개수보다 많음
- 복지수준이 가장 높은 성정동의 경우, 대상별 복지시설(노인, 청소년, 장애인, 기타)이 모두 존재
📍대시보드 의의
제작한 총 2개의 대시보드 의의는 다음과 같습니다.
- 객관적 자료를 기반으로 지표별 가중치를 통일화하여 낙후와 복지 지표를 복합적으로 구성
- 연구자료와 공문을 바탕으로 세부 지표를 구성하였습니다.
- 지표별 가중치를 통일화하기 위해 min-max 정규화로 최종 지표를 구성하였습니다.
- 각 현황을 직관적으로 파악 가능하도록 종합지표를 지도에 시각화
- 지표 개선이 필요한 읍면동을 빠르게 파악 가능합니다.
붉은색이 진할수록 낙후정도가 심하며, 녹색이 진할수록 낙후정도가 심하지 않음
붉은색이 진할수록 복지수준이 낮으며, 파란색이 진할수록 복지수준이 높음
- 세부 지표별 데이터의 특성을 고려한 시각화 방법을 선정하여 각 지역의 현황을 세부적으로 파악 가능
- 나이대별/성별 인구의 경우 두 집단의 비교가 용이한 버터플라이 차트 사용하였습니다.
- 의료 시설 현황의 경우 평균과 지역별 상세 현황 비교가 용이한 이중 막대 차트 사용하였습니다.
📍아이디어 결론
컨트롤 타워 시스템을 총괄하는 부서 신설(복지 컨트롤 타워)을 제안복지 컨트롤 타워는, 천안시 전체 복지 정책을 총괄/조정하는 역할을 수행하며, 복지 정책에 대한 복지자원(예산/인력/시설 등)을 읍면동별로 효율적으로 배분해서 빈틈없는 복지를 실현할 수 있도록 도와주고 조정하는 역할을 수행하게 됩니다.
WHY? ‘컨트롤타워’에 대한 전략을 세우고 있으나 세부 체계는 잡혀있지 않은 상황 토글을 누르면 근거자료 확인이 가능합니다.
→ 천안시 2023 주요업무계획 중, 복지정책과 사업 계획 참고
[복지 컨트롤 타워 수행 과제 1] 읍면동별 적절한 정책 제안



각 지역별 낙후지표와 복지지표를 파악하여 현재 시행 중인 정책 구체화 방식 제안
낙후지표 대시보드에서 ‘동면’의 낙후지표가 높아 세부 지표별 현황 확인
→ 노인 인구 비중이 높고 교통이 타 지역에 비해 부족
복지지표 대시보드에서 ‘동면’의 복지수준이 낮아 세부 지표별 현황을 파악
→ 의료시설과 복지시설이 현저히 부족
‘동면’과 같이 지표가 낮은 지역에 초점을 맞춰 이동 진료 사업의 시행을 확대하거나 , 노인 복지 시설 건립 필요성 등을 파악할 수 있음
[복지 컨트롤 타워 시스템 수행 과제 2] 추가 복지 정책 제안

낙후지표와 복지지표를 토대로 복지정책을 보완할 신규 정책을 제안하는 역할을 수행
수요응답형 대중교통(DRT) :
여객의 수요에 따라 노선/운행 구간/정류장을 탄력적으로 운행하는 여객운송서비스로, 공동화가 심한 지역의 이동권을 보장하기 위해 도입된 시스템
DRT 활성화 방안 예시고령층은 일반 대중교통을 통한 복지시설 이용에 어려움이 있기 때문에,
- 노령인구 대비 복지시설이 현저히 부족한 지역을 대시보드를 통해 파악하고,
- 수신면(0개), 동면(1개), 광덕면(1개) 등을 우선적으로 선정하여 노인복지시설과 거주지 간의 DRT 도입을 통해 복지시설 접근 용이성을 마련할 수 있습니다.
→ 대시보드를 통해 신규 정책 제안을 빠르고 체계적으로 실행시킬 수 있습니다.
ex) 의료시설 혹은 교육시설 이용자의 이동권 보장을 위해 ‘찾아가는 의료 서비스’, ‘등하교 셔틀버스 마련’으로의 확장 가능성 기대
💬 회고
➕ 보완할 점
- 낙후지표와 복지지표에 더 다양한 분야를 추가한다면, 더욱 풍부하고 정확한 지표가 생성될 것이라 예상합니다.
- 막대차트, 파이차트 등에 국한되지 않고 더 다양한 차트로 표현한다면, 시각적으로 더욱 풍부한 대시보드가 될 것이라 예상합니다.
🚶🏻♀️➡️ 성장한 점
- 객관적인 논문을 참고하여, 직접 지표를 구성해 볼 수 있는 시간이 되었습니다.
- 데이터 시각화에 그치지 않고, 시각화를 바탕으로 한 인사이트 및 아이디어 제시까지 도달하는 시간이 되었습니다.