Claude code로 "API 키 하나로 서울시 424개 동 생활인구를 실시간 분석하는 대시보드, 한 세션에 완성한 이야기"

소개

도시빅데이터를 연구하면서 서울시 생활인구 데이터를 자주 분석합니다. 기존 방식은 이랬습니다:

  • 서울 열린데이터광장에서 CSV 수동 다운로드

  • Excel에서 피벗 테이블로 시간대별/요일별 정리

  • 차트 만들어서 한글 문서에 복사-붙여넣기

  • 날씨 영향을 보려면 기상청 사이트를 별도로 열어서 수동 비교

  • 자치구 하나당 매번 2~3시간, 동 단위 분석은 엄두도 못 냄

대시보드

한국 앱 대시보드 스크린샷

과정

Claude Code에게 "서울시 생활인구 시뮬레이션 HTML 만들어줘" 한마디로 시작했습니다. 한 세션 안에서 4단계로 진화했습니다.

1단계: 가짜 데이터로 시작

처음 나온 건 JavaScript 랜덤값으로 만든 가상 시뮬레이션이었습니다. 히트맵, 바차트, 도넛차트까지 있는 꽤 그럴듯한 화면. 그런데 로그에 "API 연결 중... openapi.seoul.go.kr"이 뜨길래 물었습니다.

"API 연결 진짜 한거야?"

Claude: "아닙니다. 가짜입니다." — 솔직한 답변. 연출용 텍스트였습니다.

2단계: 진짜 서울시 API 연동

"해줘" 한마디에 서울 열린데이터광장 API 키 발급 과정까지 안내받았습니다. 키를 알려주자 바로:

  • SPOP_LOCAL_RESD_JACHI API로 25개 자치구 실시간 호출

  • 7일치 데이터 자동 수집 + 연령대별 남녀 비율 분석

  • API 키는 secret.md에 안전하게 저장 + .gitignore 등록

3단계: 실제 기상 데이터 연동

"실제 기상예보 데이터를 감안하여 만들어줘" 라고 요청하자, Claude가 Open-Meteo API(무료, 키 불필요)를 스스로 찾아서 연동:

  • 7일 기상 카드 (날씨 아이콘 + 기온 + 강수량 + 인구 영향도%)

  • 기상 조건별 자동 보정 로직:

    • 폭우 50mm+ → 인구 -40%

    • 한파 -10°C → 인구 -22%

    • 쾌청 20°C → 인구 +8%

  • 기온 vs 인구 상관관계 산점도

  • 5개 가상 시나리오(폭우/폭염/한파/폭설/쾌청) 시뮬레이션

4단계: "동별로도 가능해?" → 진짜 됐습니다

가볍게 물었더니 Claude가 SPOP_LOCAL_RESD_DONG API를 자동으로 찾아냈습니다.

  • 서울시 전체 424개 동 지원

  • 구 선택 시 해당 동 목록 자동 로드

  • 동별 인구 랭킹 (바 차트)

  • 개별 동 시간대별 상세 분석

강남구만 해도 역삼1동, 청담동, 압구정동 등 22개 동이 한눈에 비교됩니다.

결과

항목

Before (수동)

After (대시보드)

소요 시간

2~3시간

클릭 한 번, 30초

분석 범위

자치구 1개씩

25개 구 + 424개 동 전체

기상 연계

기상청 수동 비교

자동 영향도 계산

시각화

Excel 차트

히트맵, 산점도, 랭킹 등 6종

반복 비용

매번 처음부터

0분 (새로고침만)

코딩 필요

한 줄도 안 씀

최종 대시보드 구성:

  • 실제 API 모드 + 기상 시뮬레이션 모드 전환

  • 7일 기상 카드 (날씨별 인구 영향도)

  • 시간대별 라인차트 + 요일별 바차트(강수량 이중축)

  • 시간대×요일 히트맵

  • 기온 vs 인구 산점도

  • 동별 랭킹 + 드릴다운

배운 점

  1. "진짜야?" 한마디가 품질을 바꿉니다. AI가 만든 결과가 그럴듯해도 실제인지 확인하세요. 첫 버전의 "API 연결 중..." 로그는 100% 연출이었습니다.

  2. 한 번에 다 시키지 마세요. "가짜로 만들어줘 → 진짜로 바꿔줘 → 기상도 넣어줘 → 동별로도 해줘" — 한 단계씩 올리니까 매번 정확하게 진화했습니다.

  3. 무료 API가 놀라울 정도로 많습니다. 서울 열린데이터광장(무료 키 발급 1분) + Open-Meteo(키 불필요) 조합이면 충분한 실시간 분석이 됩니다.

  4. 코딩 못해도 됩니다. 이 대시보드를 만드는 데 코드를 한 줄도 직접 쓰지 않았습니다. "해줘", "동별로도 가능해?" 같은 일상어로만 대화했습니다.

  5. HTML 하나면 끝입니다. 서버 설치 없이, 패키지 설치 없이, 파일 하나를 브라우저에서 열면 바로 동작합니다. 연구실 동료에게 파일 하나 보내면 끝

1
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요