착한가격 지도의 출처와 한계
시·군·구청이 정하고 행정안전부가 모아 공개하는 착한가격 가게. 이 자료가 어디서 왔고, 어떻게 받아 왔고, 무엇을 못 하는지를 적었습니다.
알려진 한계
아래는 착한가격 지도를 쓰기 전에 반드시 알아야 하는 것들입니다. 한 줄로 먼저 적고, 그 아래에서 각각을 풀어 설명합니다.
- 가격은 정해질 당시의 값이라 그 뒤에 올랐을 수 있습니다
- 문 닫은 가게가 목록에서 빠지기까지 최대 세 달이 걸립니다
- 가격을 모르는 가게가 100곳 가운데 3~4곳 있습니다
- 4곳 가운데 1곳은 음식점이 아닙니다 — 미용실·이발소·세탁소·목욕탕·숙박 3,120곳(24.5%)이 함께 들어 있습니다
- 유난히 비싼 값을 지우지 않았습니다 — 가장 비싼 854,400원까지 원본 그대로 싣습니다
한계를 더 자세히
값은 “정해질 당시” 값입니다
원본에는 값만 있고 그 값이 언제 적어 낸 것인지가 없습니다. 가게마다 언제 정해졌는지도, 마지막으로 다시 확인한 날도 내려오지 않습니다. 그래서 이 지도는 “지금 8,000원인 집”이 아니라 “8,000원으로 적어 내서 착한가격업소가 된 집” 을 보여 줍니다. 두 개는 다른 말입니다.
이 한계는 저희가 고칠 수 없습니다. 기관이 적어 낸 때를 공개하기 전까지는, 얼마나 오래된 값인지 적을 방법이 없습니다.
문 닫은 가게가 빠지기까지 최대 세 달 걸립니다
시·군·구청이 한꺼번에 다시 확인할 때 문 닫은 곳과 취소된 곳이 반영됩니다. 그 일이 1년에 네 번이라, 나쁘면 문 닫은 지 세 달 가까운 가게가 지도에 남습니다. 쓰는 사람이 직접 올리는 지도는 이 항목에서 저희를 이깁니다. 저희가 이기는 항목은 처음 여는 날부터 전국이 채워져 있고 지방이 오히려 촘촘하다는 것입니다.
값이 비어 있는 곳이 440곳(3.5%) 있습니다
원본의 값 칸은 숫자가 아니라 자유 문자열입니다. 숫자를 뽑지 못하면 버리지 않고 비워 둡니다. 값 없는 가게를 목록에서 빼면 “이 동네에 3곳”이라는 숫자 자체가 틀어지고, 그건 값 하나를 모르는 것보다 나쁩니다.
4곳 가운데 1곳은 음식점이 아닙니다
2026-07-29 에 받은 자료에서 3,120곳(24.5%) 이 음식점이 아닙니다. 미용업 1,845곳, 기타비요식업 439곳, 이용업 351곳, 세탁업 221곳, 숙박업 148곳, 목욕업 116곳입니다. “착한가격업소”가 음식점만 가리키는 말이 아니기 때문입니다. 종류 고르개로 갈라 볼 수 있지만, 처음 지도를 열었을 때 보이는 12,724개 점이 전부 밥집은 아니라는 점을 알고 보셔야 합니다.
”만원 이하”는 대략 네 곳 가운데 세 곳입니다
값이 확인된 음식점 9,264곳 가운데 대표 메뉴가 1만 원 이하인 곳은 7,237곳(78.1%) 입니다. 모든 종류로 넓히면 12,284곳 가운데 8,977곳(73.1%)입니다. 한가운데 오는 값은 8,000원, 비싼 쪽 10% 가 시작되는 값은 18,900원입니다.
가장 비싼 값은 854,400원(요양보호사 양성과정), 가장 싼 값은 1원입니다. 둘 다 원본 그대로이며 저희가 지우지 않았습니다. 유난히 비싼 값을 지우면 그 자리에 우리의 판단이 들어가고, 그 판단은 화면에 드러나지 않습니다. 대신 이렇게 적어 둡니다.
어디서 어떻게 받아 오나
착한가격업소는 전국 단위 오픈API 가 없습니다. 행정안전부 전국판(공공데이터포털 3045247)은 파일 자료뿐이고, 오픈API 는 부산·서귀포·제주처럼 시·군·구청마다 흩어져 있습니다. 좌표가 붙은 전국 자료를 한 번에 받을 수 있는 경로는 착한가격업소 누리집 지도 화면이 쓰는 내부 엔드포인트 하나였습니다.
- 본체:
POST https://goodprice.go.kr/bssh/selectMapData.json에 한반도 전체 사각형(swLat=33.0 swLng=124.5 neLat=38.7 neLng=131.0)과level=1을 보내면 전국 목록이 한 번에 내려옵니다. 인증키가 필요 없습니다. - 편의시설: 같은 주소에 배달·주차·포장·예약·단체·화장실·반려동물·유아·장애인 편의·임산부·지역화폐 플래그를 하나씩 붙여 11회 더 요청합니다.
- 합쳐서 한 번 새로 고칠 때 요청 12회입니다.
이 엔드포인트는 공식 사이트의 것이지만 문서화된 공개 API 는 아닙니다. 숨기지 않고 적습니다 — 어느 경로로 받았는지 밝히지 않으면 재현할 수 없고, 재현할 수 없는 자료는 인용할 가치가 없습니다. robots.txt 에서 차단되지 않은 경로임을 확인했고 주 1회로 호출을 제한합니다. 이 경로가 막히면 공식 엑셀 내려받기로 즉시 바꿀 수 있게 준비해 두었습니다(대신 좌표가 없어 전량 주소 변환이 필요해집니다).
받은 원본은 필드를 골라내지 않고 통째로 압축해 저장소에 커밋합니다. 공공데이터는 예고 없이 항목이 바뀌는데, 필요한 것만 남겨 두면 바뀐 사실 자체를 영원히 알 수 없기 때문입니다.
우리가 손댄 것
원본을 그대로 쓰지 않은 부분입니다. 아래가 전부입니다.
- 주소 정리 —
(효제동) 1층처럼 괄호 뒤에 붙는 층·호 표기를 지웠습니다. - 시·군·구 코드 붙이기 — 도로명주소를 읽어 행정안전부 5자리 코드를 붙였습니다. 원본에는 없는 항목이며, 지역 화면 255개가 이 코드로 만들어집니다. 이번 수집분에서 12,724건 전부가 시군구에 붙었습니다(미매칭 0건). 시도 표기가
서울특별시와서울처럼 섞여 있고전남광주통합특별시같은 신설 명칭도 있어, 별칭 표를 따로 두고 처리합니다. - 값 숫자 뽑기 — 자유 문자열에서 숫자를 뽑았습니다. 뽑지 못하면 비웁니다(440곳).
- 종류 정리 — 기관이 적은 분류를 19가지로 묶었습니다.
- 좌표 — 손대지 않았습니다. 기관이 부여한 값을 그대로 씁니다. 채움률 100%, 한반도 범위를 벗어난 좌표 0건입니다.
- 사진 — 싣지 않습니다. 원본 응답에는 업소 사진 주소가 들어 있지만 산출물에서 뺐습니다. 사진의 권리는 촬영자나 업주에게 있을 수 있어 자료 본문과 성격이 다르고, 공식 파일데이터(공공데이터포털 3045247)에도 이 열이 없습니다.
새로 고치기와 검사
주 1회 자동으로 다시 받습니다. 받을 때마다 여섯 가지를 검사하고, 하나라도 통과하지 못하면 새 자료를 버리고 바로 앞 자료를 그대로 씁니다. 그리고 화면 위 줄에 밀렸다고 적습니다.
- 총 건수가 11,000건 이상인가
- 좌표 채움률이 99% 이상인가
- 위도 33.0–38.7 · 경도 124.5–131.0 을 벗어난 좌표가 0건인가
- 가게 식별번호에 겹치는 것이 없는가
- 주소에서 시·군·구를 뽑아낸 비율이 98% 이상인가
- 값을 숫자로 뽑아낸 비율이 90% 이상인가
새 자료가 통과하면 지도, 지역 화면 255개, 위 자료 상태 줄의 숫자, 그리고 이 문서의 숫자까지 사람 손을 거치지 않고 함께 바뀝니다.
이 자료로 하면 안 되는 것
- 오늘 값이라고 단정하기. 위에 적은 대로 언제 적어 낸 값인지 알 수 없습니다.
- 문을 열었는지 확인하기. 이 자료에는 여는 시간도, 여는지 아닌지도 없습니다.
- “착한가격업소가 아닌 집은 비싸다”고 읽기. 정해지려면 신청을 하고 심사를 받아야 합니다. 신청하지 않은 싼 가게가 훨씬 많습니다. 이 지도는 싼 집의 목록이 아니라 정해진 집의 목록입니다.
- 지역끼리 물가를 견주는 데 쓰기. 정해진 가게 수는 그 지역의 물가가 아니라 시·군·구청이 이 일에 얼마나 열심인가를 더 많이 말합니다.
한눈에 보는 사실
| 출처 기관 | 행정안전부 |
|---|---|
| 원본 | https://goodprice.go.kr/ |
| 이용조건 | 이용조건 미확인 · 자료 설명 화면에서 자세히 |
| 자료 기준일 | |
| 마지막으로 받은 때 | 2026-07-29 |
| 담긴 곳 | 12,724곳 |
| 새로 고침 주기 | 주 1회 자동으로 받습니다. 14일 넘게 새 자료를 받지 못하면 화면 위 줄이 새로 고침이 밀림으로 바뀝니다. |
| 지역 화면 | 255개. 담긴 곳이 3곳 미만인 지역은 만들지 않습니다. |
자주 묻는 질문
- 착한가격업소는 누가 정하나요?
- 시·군·구청이 값 수준, 위생, 서비스, 그 동네 물가에 얼마나 도움이 되는지를 보고 정합니다. 행정안전부가 그것을 착한가격업소 누리집에 모아 공개합니다. 최고수 공작소는 정하는 일에 끼지 않으며, 공개된 목록을 그대로 받아 지도로 옮길 뿐입니다.
- 이 지도의 값은 오늘 값인가요?
- 아닙니다. 화면의 값은 그 가게가 착한가격업소로 정해지거나 다시 확인될 때 적어 낸 대표 메뉴 값이며, 그 뒤에 올랐을 수 있습니다. 원본에 언제 적어 낸 값인지가 들어 있지 않아 가게마다 언제 기준인지 알 수 없습니다. 가기 전에 확인해 주세요.
- 문 닫은 가게가 지도에 남아 있는 이유는 무엇인가요?
- 문 닫은 사실은 시·군·구청이 한꺼번에 다시 확인할 때 반영되므로 최대 세 달가량 늦습니다. 최고수 공작소는 원본에서 사라진 가게를 다음에 받을 때 함께 지우지만, 원본에 남아 있는 동안에는 저희도 알 방법이 없습니다.
- 전부 음식점인가요?
- 아닙니다. 2026-07-29 에 받은 12,724곳 가운데 3,120곳(24.5%)은 음식점이 아니라 미용실, 이발소, 세탁소, 목욕탕, 숙박, 그 밖의 서비스 가게입니다. “착한가격업소”가 음식점만 가리키는 말이 아니기 때문이며, 지도의 종류 고르개로 갈라 볼 수 있습니다.
- 값이 비어 있는 가게는 왜 있나요?
- 원본의 값 칸이 자유 문자열이라 "1인분 8,000원", "시가", "메뉴별 상이" 같은 표기가 섞여 있습니다. 숫자를 뽑아내지 못한 440곳(전체의 3.5%)은 값을 지어내지 않고 비워 둡니다. 그 가게도 지도와 목록에서 빠지지 않고 그대로 보입니다.
- 데이터를 그대로 내려받을 수 있나요?
- 자료 설명 화면에서 담긴 곳 전부를 CSV 로 내려받을 수 있습니다. 한글 엑셀에서 바로 열리도록 UTF-8 BOM 을 붙여 두었습니다. 인용하실 때는 원 출처가 행정안전부이고 받아서 정리한 곳은 최고수 공작소라는 점을 함께 밝혀 주시면 됩니다.
- 얼마나 자주 새로 고치나요?
- 주 1회 자동으로 다시 받아 옵니다. 14일이 넘도록 새 자료를 받지 못하면 화면 위 줄이 "새로 고침이 밀림"으로 바뀌고 며칠 밀렸는지 함께 적습니다. 원본 기관이 한꺼번에 다시 확인하는 일은 1년에 네 번이라, 받는 일이 제대로 돌아도 내용 자체는 몇 달 전 상태일 수 있습니다.
틀린 값을 찾으셨다면
행정안전부가 공개한 원본이 틀린 경우 저희가 고칠 수 없습니다. 해당 기관에 정정을 요청하고, 그동안 이 페이지에 한계 표기를 답니다. 저희 쪽 가공이 틀렸다면 알려 주세요 — 어느 착한가격업소의 어느 항목인지 알려 주시면 확인해서 고치고 바뀐 것에 남깁니다.