날짜 하나 뽑는 데 왜 3일이 걸렸는가: 공공 데이터 메타데이터 전쟁 | Signals EP.3

게시판에 글은 있는데 언제 올라왔는지 알 수 없다. 예산은 본문에 묻혀 있고, 마감일은 "2분기 중"이라고만 쓰여 있다. 공공 데이터 메타데이터 전쟁의 기록, 시리즈 3편.

공공 데이터 메타데이터 추출 과정 — 날짜·예산·담당자 정보의 구조화
영업 시그널의 가치는 "얼마나 많이"가 아니라 "얼마나 잘 쓸 수 있느냐"에서 나온다.

시리즈: 공공데이터에서 영업 시그널을 자동으로 발굴하기까지, 2편 읽기

메타데이터의 사막

데이터를 수집한 다음 처음으로 부딪힌 벽은 "메타데이터"였다. 정확히 말하면, 메타데이터의 부재.

게시판에 글 하나가 올라와 있다. 제목은 있다. 내용도 있다. 그런데 이 글이 언제 작성된 건지. 이 단순한 질문에 답하는 게 생각보다 훨씬 어렵다.

0%라는 숫자를 처음 봤을 때

30개 소스의 데이터를 수집한 후 품질 점검을 했다. 항목별로 추출 성공률을 뽑았는데, 날짜 추출 성공률이 0%인 소스가 있었다. 수천 건의 데이터를 모았는데 날짜가 단 하나도 없다.

처음에는 수집 로직이 잘못된 줄 알았다. 디버깅을 해봤더니 수집 자체는 문제가 없었다. 해당 사이트의 게시판에 게시일 필드가 HTML 상에 아예 존재하지 않았던 것이다.

날짜가 어디 있었냐면, 본문 텍스트 안에 "2026년 3월 5일까지 제출" 같은 식으로 묻혀 있었다. 또는 JavaScript가 렌더링하는 영역에만 표시되어서, 단순 HTTP 요청으로는 보이지 않는 경우도 있었다.

날짜 형식이라는 미궁

설령 날짜 필드가 있더라도, 기관마다 표기가 제각각이다.

  • 2026.03.05
  • 2026-03-05
  • 26/03/05
  • 2026년 3월 5일
  • 3. 5. (연도 생략)
  • Mar 05, 2026

하나의 파서로 모든 형식을 커버하려면 13가지 이상의 패턴을 순서대로 시도해야 했다.

같은 의미, 다른 이름

날짜 라벨도 문제다. "게시일", "작성일", "등록일", "공고일", "공지일시", "등록 일자", 의미는 같은데 부르는 이름이 기관마다 다르다. 한 기관 안에서도 게시판마다 다른 라벨을 쓰기도 한다. 날짜를 담고 있는 HTML 요소의 위치와 구조도 천차만별이어서, 결국 "가능한 모든 위치를 다 뒤진다"는 전략을 쓸 수밖에 없었다.

예산도, 마감일도, 담당자도 마찬가지

날짜만의 문제가 아니다.

영업 시그널로서 가치를 가지려면 최소한 이 정도 정보는 있어야 한다.

예산 규모, 20%만 필드로 분리됨

전체 소스 중 예산이 명시적으로 분리된 필드에 있는 경우는 약 20%에 불과했다. 나머지는 본문 한가운데 "총 사업비 50억 원 내외" 같은 식으로 묻혀 있다. 어떤 건 "국비 30억, 민간부담 20억"처럼 분산되어 있고, 어떤 건 "과제당 연간 5억 원 이내 (3년간 최대 15억)"처럼 계산이 필요하다.

마감일, 애매한 표현이 더 많다

"2026년 4월 30일 18:00까지 접수", 이렇게 깔끔한 경우는 드물다. "4월 말까지", "2분기 중", "별도 공지 예정" 같은 애매한 표현이 더 많다.

담당부서와 연락처, 정해진 포맷이 없다

공문 맨 아래에 "문의: ○○과 홍길동 주무관 (02-2100-XXXX)" 형태로 붙어 있는 경우가 대부분인데, 포맷이 없다. 어떤 건 전화번호만, 어떤 건 이메일만, 어떤 건 부서명만.

"구조화되어 있다"는 환상

결국 깨달은 건 이거다.

한국 정부 공문은 '데이터'가 아니라 '문서'다. 사람이 읽기 위한 포맷으로 작성되어 있지, 기계가 읽기 위한 구조는 아니다. 같은 종류의 정보라도 기관마다, 담당자마다, 심지어 같은 담당자의 글이라도 시기에 따라 형식이 달라진다.

"공공데이터 활용"이라는 말이 자주 나오는데, 대부분의 공공데이터 논의는 data.go.kr 같은 정형 데이터를 전제로 한다. 현실에서 영업에 필요한 데이터는 정형화되어 있지 않다. 이 간극을 경험하기 전에는 몰랐다.

"갖고 있다"와 "쓸 수 있다"의 간극

12만 건의 데이터를 수집했다. 하지만 날짜가 없는 데이터, 예산이 추출 안 되는 데이터, 본문이 HTML 태그뿐인 데이터, 이런 것들은 건수만 채울 뿐 활용은 할 수 없다.

초기 품질 점검 결과

  • 날짜가 누락된 데이터: 소스에 따라 0%~100% 사이에서 편차가 극심
  • 본문이 사실상 비어 있는 데이터: 특정 소스에서 62%
  • 소속 기관 정보가 없는 데이터: 2,255건

수집 시스템의 성공 기준을 "건수"에서 "품질"로 바꾸기까지 꽤 시간이 걸렸다. 12만 건을 수집했다는 건 의미가 없다. 그 중 몇 건이 실제로 쓸 수 있느냐가 중요하다.

다음 에피소드에서는 정부 데이터의 또 다른 난관, 첨부파일이라는 블랙홀에 대해 이야기한다.

SIGNALS

공고가 뜨기 전, 시그널을 먼저 잡고 싶다면

30개 공공 데이터 소스에서 영업 시그널을 자동 발굴하는 Signals. 1:1 상담을 받아보세요.

상담 신청하기 →