공공데이터의 CCTV 개수는 실제 CCTV 수일까? 전국 데이터를 직접 분석해봤어요

수정 6분 분량devrives

핵심 요약

  • 공개 데이터의 CCTV 수는 실제 CCTV 수와 달라요. 민간·비공개 카메라는 빠지고, 같은 좌표 등록은 지점 수를 부풀려요.
  • 원본 381,036행의 카메라대수 합은 700,548대이고, 같은 좌표가 2건 이상 등록된 곳이 55,704곳이에요.
  • 설치연월의 42.5%가 비어 있고, 36.0/127.0 같은 더미 좌표와 1899년 설치일도 섞여 있어요.
  • 데이터기준일이 2020년부터 2026년까지 섞여 있어서 통계를 인용할 때는 범위와 기준일을 같이 봐야 해요.
보는지도에서 우리 동네 CCTV 보기지도 열기

보는지도를 만들면서 행정안전부의 전국CCTV표준데이터를 통째로 받아 정제했어요. 작업을 하다 보니 "공개된 CCTV 숫자가 실제 CCTV 수와 같을까?"라는 질문에 자연스럽게 답하게 됐는데, 결론부터 말하면 아니에요. 하지만 이유가 생각보다 재미있어서, 실제 숫자와 함께 정리해봤습니다.

사용한 데이터

항목내용
데이터셋행정안전부 전국CCTV표준데이터 (file.localdata.go.kr)
원본 형식CSV, EUC-KR 인코딩
전체 레코드381,036건
주요 컬럼관리번호, 관리기관명, 소재지 주소, 설치목적, 카메라대수, 설치연월, WGS84 위·경도, 데이터기준일자
제공 기관지자체 코드 228개, 관리기관명 1,835개

이 파일은 "한 시점의 전국 CCTV 목록"이 아니라, 각 지자체·기관이 각자의 주기로 갱신해서 올린 레코드의 합집합이에요. 이 차이가 뒤에 나올 모든 문제의 원인입니다.

직접 발견한 것들

1. 한 행은 CCTV 한 대가 아니에요

CSV의 한 행은 설치 지점이에요. 카메라대수 컬럼이 따로 있는데, 전체 행은 381,036건인데 카메라대수를 다 합치면 700,548대가 나옵니다. 한 지점에 여러 대가 달린 경우가 많아서 - 한 레코드의 카메라대수 값은 최대 201대까지 기록돼 있어요 - 카메라 수가 행 수보다 약 84% 많습니다.

뉴스에서 "전국 CCTV XX만 대"라고 할 때 어떤 수를 쓰는지에 따라 두 배 가까이 달라질 수 있는 숫자입니다.

2. 같은 좌표가 두 번 이상 등록된 곳이 55,704곳

위·경도를 소수점 6자리 기준으로 묶어봤더니, 2건 이상씩 등록된 좌표가 55,704곳 나왔어요. 그 그룹에 속한 행을 다 합치면 182,569건 - 전체의 절반 가까이입니다. 처음엔 기관별 중복 등록이라고 생각했는데, 뜯어보니 달랐어요. 관리번호가 전부 다른 별개 레코드였습니다. 예를 들어 서울 종로구의 한 골목엔 연번으로 이어지는 관리번호 6개가 같은 주소·같은 좌표·같은 설치연월로 등록돼 있었어요. 같은 설치를 두 번 신고한 게 아니라, 같은 주소의 서로 다른 설치나 카메라를 별도 레코드로 적으면서 대표 좌표를 하나로 쓴 것으로 보여요. 아마 주소 단위로 좌표를 매기거나 대표 좌표를 복사한 게 아닐까 싶습니다.

그래서 보는지도는 이렇게 처리해요 - 좌표(소수점 6자리)+목적+관리기관이 같으면 지도에서 같은 픽셀에 겹치니 지점은 하나로 합치되, 카메라대수는 합산합니다. 그렇게 합쳐진 행이 122,625건이고, 최종 결과는 지도 표시 지점 258,385곳 / 700,465대입니다. 검산보면 700,548 − 83(범위 밖 행의 대수) = 700,465로 딱 맞아요.

참고로 처음엔 첫 레코드만 남기는 방식이었는데, 관리번호가 전부 다른 걸 확인하고 합산으로 고쳤습니다. 별개 설치의 대수를 통째로 버리는 과소계상이었어요.

3. 내륙 한가운데를 가리키는 더미 좌표

좌표가 36.00000, 127.00000인 행이 1,579건 있어요. 36.1/127.1인 행도 990건 있고요. 소수점 아래가 깔끔한 0 - 실제 위치라기보다는 좌표 미상일 때 쓰인 기본값일 가능성이 높아 보입니다. 이런 "반올림 좌표"가 전체에 약 2,984건 있어요. 이 값들은 설정 범위 안이라 좌표 필터를 그대로 통과해서, 지도에서도 전북 무주~충북 경계 근처 한 점에 수천 건의 레코드가 몰려 보이는 상태로 남아 있습니다.

보는지도에서 좌표 36.00000, 127.00000을 연 화면. 들판 한가운데 CCTV 묶음 하나가 표시돼 있다
보는지도에서 본 36.00000, 127.00000. 이 좌표의 1,579건은 관리 기관이 모두 공주시청인데, 공주 시내에서 남쪽으로 약 50km 떨어진 들판 한 점에 겹쳐 있어요.

그 외에도 설정한 좌표 범위(위도 32~39.5, 경도 123~132) 밖 좌표가 26건, 관리기관 소재 시도와 좌표가 다른 시도를 가리키는 행이 대략 4,970건(2%) 있었습니다.

4. 설치연월의 42%가 비어 있고, 1899년 설치도 있어요

설치연월이 비어 있는 행이 162,131건(42.5%). "2026"처럼 연도만 적힌 게 약 2,200건, 그리고 189912, 190001 같은 값이 100여 건 있어요 - 엑셀이나 스프레드시트의 기본 날짜값(1900년 1월 부근)이 날짜 변환 과정에서 그대로 들어간 흔적으로 보입니다.

5. 같은 뜻을 네 가지로 적은 컬럼

촬영방면 컬럼은 48%(181,932건)가 비어 있고, 채워진 것도 "360도 전방면", "360도", "360도 전방", "360도전방면"으로 제각각이에요. 같은 의미를 기관마다 다른 표기로 입력합니다. 보관일수도 30일이 대부분(80.8%)이지만 0일, 3일, 40일까지 섞여 있고 61,788건은 아예 비어 있어요.

6. 기관마다 데이터 기준일이 다릅니다

데이터기준일자가 2020년 1월부터 2026년 9월까지 섞여 있어요. 예를 들어 서울은 2026-05, 강원은 2024-07에 가장 많이 몰려 있어 22개월 차이가 납니다. "전국 CCTV 현황"은 한 시점이 아니라 약 6년 8개월에 걸친 스냅샷이 붙어 있는 셈이에요. 16개 시·도 전체의 기준일 분포는 전국 CCTV 데이터는 얼마나 최신일까?에서 따로 분석했어요.

왜 이런 문제가 생기는가

표준데이터는 행안부가 양식을 정하고 각 기관이 채우는 구조예요. 228개 자치단체 코드가 각자 다른 담당자가, 다른 주기로, 다른 입력 습관으로 채웁니다. 형식은 같아도 내용의 해석(한 지점=한 대인지, 전봇대 단위인지)이 기관마다 달라요. 공개 범위도 달라서 - 민간 CCTV, 군·경찰 직접 관리분, 일부 기관의 비공개 카메라는 이 파일에 아예 없습니다.

숫자를 볼 때 주의할 점

  • 공개 데이터 숫자 ≠ 실제 존재하는 CCTV 수. 민간 설치와 비공개 관리분이 빠져 있어 실제보다 적고, 같은 위치 중복 등록 때문에 지점 기준으로는 부풀려져 있어요. 양쪽 방향으로 오차가 있습니다.
  • 지역별 비교는 기준일을 봐야 해요. 2024년 스냅샷 지역과 2026년 스냅샷 지역을 나란히 비교하면 2년치 신설분이 왜곡으로 들어갑니다.
  • "10만 명당 CCTV" 같은 지표도 이 범위 차이를 반영해야 해요. 이 관행 차이가 숫자에 어떻게 반영되는지는 지역별 집계 글에서 볼 수 있어요.

보는지도에서는 어떻게 처리했는가

지도에 찍기 전 파이프라인에서 몇 가지를 합니다:

  • 좌표 유효성 검사 - 설정한 좌표 범위(위도 32~39.5, 경도 123~132) 밖이면 제외
  • 반올림 좌표는 미해결 과제 - 36.00000/127.00000 같은 값이 설정 범위 안이라 걸러지지 않아 지도에 그대로 남아 있어요. 별도 필터를 추가해야 하는 숙제입니다
  • 같은 좌표 정리 - 좌표+목적+관리기관이 같으면 지점은 하나로 합치고 카메라대수는 합산
  • 컬럼 정규화 - "360도 전방" 같은 표기를 표준 코드로 변환
  • 원본 출처 표기 - 지도의 숫자 옆에 데이터 출처와 기준일을 함께 표시

결과적으로 지도에 보이는 수치는 "원본 파일의 행 수"가 아니라 정제된 지점·대수예요. 같은 좌표를 공유하는 별개 카메라의 대수는 합산해서 유지하지만, 민간 카메라 부재·기관별 공개 범위 차이 같은 오차는 원본이 바뀌기 전엔 해결할 수 없어서, 지도에도 그 한계를 명시하고 있습니다.

정리하면

공공 CCTV 데이터는 "실제 모든 CCTV의 완전한 목록"이라기보다, 각 기관이 각자의 시점에 공개한 정보를 모은 스냅샷으로 보는 게 정확해요. 숫자 자체는 유용하지만, 행 수가 곧 카메라 수도 아니고 전국이 같은 날짜의 데이터도 아닙니다. 통계로 인용할 때는 범위와 기준일을 같이 보는 게 필요합니다.


분석 방법

2026-09-20에 내려받은 CSV(381,036행)를 기준으로 분석했어요. 좌표 비교는 WGS84 위·경도를 소수점 6자리로 반올림한 뒤 목적·관리기관과 조합했고, 좌표 범위 판정은 위도 32~39.5·경도 123~132를 썼습니다. 시도 불일치는 좌표가 속한 행정구역과 관리기관 소재지를 비교한 값이에요.

이 글의 숫자는 모두 그 스냅샷 기준이며, 원본 데이터가 갱신되면 달라질 수 있습니다.

데이터 출처

자주 묻는 질문

이 데이터에 없는 CCTV도 있나요? 있어요. 민간이 설치한 CCTV(상가, 아파트 자체 관리)와 보안상 비공개인 관리분은 포함되지 않습니다.

보는지도의 지점 수는 왜 원본보다 적나요? 같은 좌표·목적·기관을 공유하는 행은 지도에서 한 점에 겹치니 지점은 하나로 합쳐요. 대신 그 행들의 카메라대수는 합산해서 유지하므로 대수 총계는 범위 밖 83대를 빼고 원본과 같습니다.

데이터는 얼마나 자주 업데이트되나요? 기관마다 달라요. 같은 파일 안에서도 기준일자가 2020년부터 2026년까지 섞여 있습니다.

보는지도에서 우리 동네 CCTV 보기동네 이름이나 주소를 검색하면 주변 공공 CCTV 위치와 추정 촬영 범위가 바로 보여요. 무료, 회원가입 없이.지도 열기

공유하기