서울시 실시간 도시데이터
서울시 공공데이터 기반 인구·상권·지하철·문화행사 데이터 수집 및 활용 가이드
1. 데이터 개요
수집 데이터
서울시 공공데이터 포털에서 실시간 수집 중인 데이터
| 카테고리 | API 필드 | DB 테이블 | 상태 |
|---|---|---|---|
| 실시간 인구 | LIVE_PPLTN_STTS | population_logs | 수집중 |
| 실시간 상권 | LIVE_CMRCL_STTS | commerce_logs | 수집중 |
| 지하철 승하차 | LIVE_SUB_PPLTN | subway_logs | 수집중 |
| 문화행사 | EVENT_STTS | event_logs | 수집중 |
데이터 소스
API: 서울 열린데이터 광장 citydata
수집 주기: 인구/상권/지하철 10분, 문화행사 하루 2회
중복 처리: 측정 시각 기준 스킵 / 행사는 cultcode 기준
수집 흐름
1. 서울시 API 호출 (모든 데이터 반환)
2. 필요한 카테고리만 파싱
3. 중복 체크 후 DB 저장
지원 지역 (총 115개)
서울시 실시간 도시데이터 API에서 제공하는 지역 목록입니다.
관광특구
명동 관광특구
이태원 관광특구
홍대 관광특구
잠실 관광특구
강남MICE관광특구
주요 역세권
역세권 데이터에는
features 컬럼이 추가로 제공됩니다강남역
홍대입구역
건대입구역
신촌·이대역
잠실역
서울역
여의도역
종각역
신도림역
구로디지털단지역
가산디지털단지역
영등포역
왕십리역
청량리역
삼성역
선릉역
역삼역
교대역
사당역
신림역
Features 예시
관광객
문화
쇼핑
2030
핫플레이스
비즈니스
가족
여성
각 역세권의 주요 특성을 나타내며, 복수의 features가 콤마로 구분되어 저장됩니다.
한강공원
여의도한강공원
반포한강공원
뚝섬한강공원
잠실한강공원
망원한강공원
이촌한강공원
난지한강공원
광나루한강공원
공원/관광지
경복궁·서촌마을
광화문·덕수궁
북촌한옥마을
남산공원
인사동·익선동
청계천
DDP(동대문디자인플라자)
코엑스
서울숲공원
북서울꿈의숲
핫플레이스
연남동
성수카페거리
압구정로데오거리
청담동 명품거리
해방촌·경리단길
용리단길
한남동
북창동 먹자골목
4·19 카페거리
기타 주요 지역
DMC(디지털미디어시티)
서울대공원
잠실종합운동장
목동운동장
월드컵공원
낙산공원·이화마을
서울식물원·마곡나루역
국립중앙박물관·용산가족공원
* 위 목록은 주요 지역만 표시한 것이며, 전체 115개 지역이 지원됩니다.
2. 인구 데이터 (population_logs)
테이블 스키마
해당 지역에 있는 방문자 데이터
| 컬럼명 | 타입 | 설명 | 예시 |
|---|---|---|---|
id | INT (PK) | 자동 증가 ID | 1, 2, 3... |
areaCd | VARCHAR(50) | 지역 코드 (area_master와 JOIN) | POI001, POI115 |
congestionLvl | VARCHAR(50) | 혼잡도 레벨 | 여유, 보통, 약간 붐빔, 붐빔 |
ppltnMin | INT | 실시간 인구 최소 추정치 | 12000 |
ppltnMax | INT | 실시간 인구 최대 추정치 | 14000 |
maleRatio | DECIMAL(5,2) | 남성 방문자 비율 (%) | 45.50 |
femaleRatio | DECIMAL(5,2) | 여성 방문자 비율 (%) | 54.50 |
age10Ratio | DECIMAL(5,2) | 10대 방문자 비율 (%) | 5.20 |
age20Ratio | DECIMAL(5,2) | 20대 방문자 비율 (%) | 28.30 |
age30Ratio | DECIMAL(5,2) | 30대 방문자 비율 (%) | 25.10 |
age40Ratio | DECIMAL(5,2) | 40대 방문자 비율 (%) | 20.40 |
age50Ratio | DECIMAL(5,2) | 50대 방문자 비율 (%) | 12.80 |
age60Ratio | DECIMAL(5,2) | 60대 이상 방문자 비율 (%) | 8.20 |
ppltnTime | VARCHAR(20) | 서울시 데이터 측정 시각 | 2026-01-31 14:00 |
createdAt | DATETIME | DB 저장 시각 | 2026-01-31 14:05:23 |
3. 상권 데이터 (commerce_logs)
테이블 스키마
실제 결제한 소비자 데이터 (신한카드 기반)
| 컬럼명 | 타입 | 설명 | 예시 |
|---|---|---|---|
id | INT (PK) | 자동 증가 ID | 1, 2, 3... |
areaCd | VARCHAR(50) | 지역 코드 | POI001 |
statusLvl | VARCHAR(50) | 상권 활성도 레벨 | 한산한, 보통, 분주함 |
peakSectorNm | VARCHAR(100) | 현재 최대 소비 업종 | 카페, 음식, 패션 |
totalCmrclAmt | BIGINT | 총 결제 금액 (원) | 450000000 |
cmrclMaleRatio | DECIMAL(5,2) | 남성 소비자 비율 (%) | 35.40 |
cmrclFemaleRatio | DECIMAL(5,2) | 여성 소비자 비율 (%) | 64.60 |
cmrcl10Ratio | DECIMAL(5,2) | 10대 소비자 비율 (%) | 2.10 |
cmrcl20Ratio | DECIMAL(5,2) | 20대 소비자 비율 (%) | 32.50 |
cmrcl30Ratio | DECIMAL(5,2) | 30대 소비자 비율 (%) | 28.30 |
cmrcl40Ratio | DECIMAL(5,2) | 40대 소비자 비율 (%) | 22.10 |
cmrcl50Ratio | DECIMAL(5,2) | 50대 소비자 비율 (%) | 10.20 |
cmrcl60Ratio | DECIMAL(5,2) | 60대 이상 소비자 비율 (%) | 4.80 |
cmrclTime | VARCHAR(20) | 서울시 데이터 측정 시각 | 20260131 0000 |
createdAt | DATETIME | DB 저장 시각 | 2026-01-31 14:05:23 |
핵심: 방문자 vs 소비자
| 구분 | 데이터 소스 | 의미 | 활용 |
|---|---|---|---|
| 방문자 | population_logs | 해당 지역에 있는 사람들 | 노출 잠재력 (브랜드 인지) |
| 소비자 | commerce_logs | 실제 결제한 사람들 | 구매 전환 타겟팅 |
광고 타겟팅에는 실제 소비자 데이터(commerce_logs)가 더 유용합니다.
4. 지하철 승하차 집계 (subway_logs)
테이블 스키마
지역별 지하철 승하차 집계 데이터 (LIVE_SUB_PPLTN)
| 컬럼명 | 타입 | 설명 | 예시 |
|---|---|---|---|
id | INT (PK) | 자동 증가 ID | 1, 2, 3... |
areaCd | VARCHAR(50) | 지역 코드 | POI115 |
| 누적 데이터 (당일 00시부터 현재까지) | |||
acmlGtonMin | INT | 누적 승차 최소 (명) | 115400 |
acmlGtonMax | INT | 누적 승차 최대 (명) | 115500 |
acmlGtoffMin | INT | 누적 하차 최소 (명) | 121200 |
acmlGtoffMax | INT | 누적 하차 최대 (명) | 121300 |
| 30분 이내 데이터 | |||
gton30Min/Max | INT | 최근 30분 승차 인원 (명) | 1100 ~ 1200 |
gtoff30Min/Max | INT | 최근 30분 하차 인원 (명) | 1500 ~ 1600 |
| 10분 이내 데이터 | |||
gton10Min/Max | INT | 최근 10분 승차 인원 (명) | 70 ~ 80 |
gtoff10Min/Max | INT | 최근 10분 하차 인원 (명) | 150 ~ 160 |
| 5분 이내 데이터 | |||
gton5Min/Max | INT | 최근 5분 승차 인원 (명) | 40 ~ 50 |
gtoff5Min/Max | INT | 최근 5분 하차 인원 (명) | 80 ~ 90 |
| 메타 정보 | |||
subwayTime | VARCHAR(20) | 서울시 데이터 측정 시각 | 2026-01-31 14:00 |
createdAt | DATETIME | DB 저장 시각 | 2026-01-31 14:05 |
지하철 데이터 활용
- 출퇴근 피크: 30분/10분/5분 데이터로 실시간 피크 타임 감지
- 유동인구 예측: 누적 승하차로 지역 유입/유출량 추정
- 광고 매체 연계: 지하철역 광고 효과 분석 및 단가 책정
- 실시간 타겟팅: 피크 시간대에 광고 노출 집중
5. 문화행사 데이터 (event_logs)
테이블 스키마
지역 근처 진행중인 문화행사 목록 (하루 2회 수집)
| 컬럼명 | 타입 | 설명 | 예시 |
|---|---|---|---|
id | INT (PK) | 자동 증가 ID | 1, 2, 3... |
areaCd | VARCHAR(50) | 지역 코드 | POI001 |
eventNm | VARCHAR(300) | 행사명 | 뮤지컬 [킹키부츠] |
periodStart | DATE | 행사 시작일 | 2026-02-05 |
periodEnd | DATE | 행사 종료일 | 2026-03-29 |
eventPlace | VARCHAR(300) | 행사 장소 | 샤롯데씨어터 |
eventX | DECIMAL(12,8) | 경도 (longitude) | 126.97596851 |
eventY | DECIMAL(12,8) | 위도 (latitude) | 37.56680692 |
payYn | VARCHAR(10) | 유/무료 여부 | N (대부분 null) |
thumbnail | TEXT | 썸네일 이미지 URL | culture.seoul.go.kr/... |
url | TEXT | 상세페이지 URL | culture.seoul.go.kr/... |
cultcode | VARCHAR(20) | 행사 고유 ID (중복 방지용) | 156516 |
createdAt | DATETIME | DB 저장 시각 | 2026-02-09 06:00:12 |
문화행사 데이터 특징
- 수집 주기: 하루 2회 (오전 6시, 오후 6시) - 실시간 변동이 거의 없음
- 진행중 행사만: 현재 진행중인 행사만 API에서 반환 (미래 예정 행사는 미포함)
- 지역 중복: 같은 행사가 인접 지역에 중복 출현 가능 (areaCd + cultcode로 구분)
- 좌표 포함: eventX/Y로 지도 연동 가능
6. 광고 활용 시나리오
타겟 매칭 리포트
예시: 20~30대 여성 뷰티 브랜드
CMRCL_FEMALE_RATE > 55%
AND CMRCL_20_RATE + CMRCL_30_RATE > 50%
→ 조건 충족 지역 리스트 → 해당 매체 제안지역별 소비자 프로필
예시: 명동 지역
방문자 (인구)
남 45% / 여 55%
소비자 (상권)
남 35% / 여 65%
→ “방문은 비슷하지만 실제 소비는 여성이 압도적” → 여성 타겟 광고 효율 높음
시간대별 타겟 변화
예시: 강남역
- • 오전: 30~40대 직장인 소비 높음
- • 저녁: 20대 소비 급증
→ 시간대별 다른 광고 크리에이티브 제안