운영자 칼럼
운영시간을 Google에서 채우기 — KTO 데이터가 끝나는 지점과 그 이후의 결정
어느 오후 Place 페이지를 훑다가, 유명 랜드마크 대부분에 운영시간이 비어 있다는 걸 발견했습니다. 마이너한 곳들이 아니라 경복궁, 전쟁기념관, 국립박물관들이. 관광 데이터 피드의 구멍이 실제로 어떻게 생겼는지, 그리고 어떻게 채우기로 결정했는지에 대한 기록입니다.
어느 오후 Place 페이지를 훑다가, 유명 랜드마크 대부분에 운영시간이 비어 있다는 걸 발견했습니다. 마이너한 곳들이 아니라 경복궁, 전쟁기념관, 국립중앙박물관이. 한국관광공사(KTO)의 영문 피드는 상위 200개 관광지 중 세 건의 hours만 반환했습니다. 이 구멍을 메우는 데 일주일이 걸렸고, "공식"이라는 게 디렉토리 사이트에서 실제로 무엇을 의미하는지에 대한 결정을 강제했습니다.
KTO 피드가 실제로 주는 것
KTO는 서드파티 사이트용 엔드포인트를 몇 개 공개합니다. 우리가 쓰는 것은 detailCommon2(기본 정보)와 detailIntro2(운영시간, 요금, 연락처)입니다. 한국어 detailIntro2는 그럭저럭 채워져 있습니다. 영문 버전은 그렇지 않습니다. 화이트리스트 200개 중, EN hours는 3건 반환됐습니다. EN contact는 700건 정도. 요금 데이터는 두 언어 모두 거의 없었습니다.
이유는 우연이 아니라 구조입니다. KTO 피드는 자신들의 visitkorea.or.kr을 위해 최적화돼 있고, 그 사이트는 상위 페이지를 손으로 큐레이션합니다. 이 사이트 같은 서드파티는 데이터를 받아 나머지를 스스로 채우는 걸 전제로 합니다. 문서에는 그렇게 쓰여 있지 않지만, 데이터의 모양이 그렇게 말합니다.
"발표 안 됨"과 "운영시간이 없음"의 차이
첫 실수는 빈 hours 필드를 항상 같은 의미로 취급한 것이었습니다. 그렇지 않습니다. 인사동은 hours가 없습니다 — 지역이라 운영시간 개념이 적용되지 않기 때문에. 전쟁기념관은 hours가 없습니다 — KTO가 발표하지 않았기 때문에, 그러나 실제로는 명확히 존재합니다. 같은 빈 상태, 정반대의 의미.
Place 페이지에서 이 차이는 중요합니다. 지역 페이지에서 "발표 안 됨"을 읽는 방문자는 납득합니다. 명백히 운영시간이 있는 박물관에서 같은 메시지를 읽으면 사이트가 고장 난 느낌입니다. 해결책은 두 경우를 분리하는 것이었습니다. 운영시간이 구조적으로 존재하지만 KTO가 발표하지 않은 경우, 검증 가능한 제3자에서 소싱하고 출처를 표시.
왜 Wikipedia나 TripAdvisor가 아니라 Google Places였는지
검토한 대안은 Wikipedia, TripAdvisor, 수작업 세 가지였습니다. Wikipedia는 tier-1 이하로 내려가면 데이터가 부실하고, CC BY-SA 표시가 Place 카드에 자연스럽게 들어가지 않았습니다. TripAdvisor는 리뷰 기반이라 권위 있는 소스가 아니고 API 약관이 맞지 않았습니다. 100개 랜드마크 수작업은 가능했지만 운영시간이 바뀌는 순간 낡습니다.
Google Places (New API)가 맞는 형태였습니다. 요일별 운영시간, 국제 표준 전화번호, 공식 웹사이트 URL 을 반환하고, 방문자가 Google Maps 항목을 열어 즉시 검증할 수 있습니다. 사이트에 채워진 모든 행 아래에는 "Source: Google Maps (verified 2026-07-12)"이 붙습니다 — 스크랩해서 재포장한 게 아니라 출처가 보이는 인용.
채우지 않은 것
구조적으로 필드가 적용되지 않는 행 — 지역, 국립공원, 폭포 같은 자연 랜드마크 — 은 그대로 빈 상태로 뒀습니다. 페이지는 여전히 "미발표; 공식 채널에서 확인 필요"라고 표시하지만, 그 행에서는 이 메시지가 정확합니다. 폭포에 운영시간을 지어내는 것은 정확히 Google 자체 퍼블리셔 정책이 지적하는 스케일 콘텐츠 남용 패턴입니다. 모른다고 인정할 때 사이트가 더 유용합니다.
작업이 끝난 뒤의 모습
화이트리스트 랜드마크 88곳, 그리고 Google 매칭이 성공한 rich attraction 358곳에서 최소 한 필드가 채워졌습니다. EN hours 총계는 3에서 391로. EN contact은 약 785에서 1,101로. 빈 행은 여전히 정직한 안내문으로 폴백합니다. KTO나 편집자가 채운 필드는 하나도 덮어쓰지 않았습니다 — 스크립트는 null 셀에만 씁니다.
이런 결정은 기능 목록에 올라오지 않지만, 사이트 전체의 신뢰 텍스처를 바꿉니다. 박물관 페이지를 여는 방문자는 이제 플레이스홀더 대신 출처가 붙은 7일치 운영시간을 봅니다. 이 사이트를 만든 이유가 정확히 그 차이입니다.