착한가격업소 지정 현황
시·군·구청이 살펴보고 정한 착한가격업소의 이름·도로명주소·종류·대표 메뉴·값·좌표입니다. 시·군·구청이 정하고 행정안전부가 착한가격업소 누리집에 모아 공개합니다.
인용과 내려받기
행정안전부, 「착한가격업소 지정 현황」, 2026-07-29 기준. 최고수 공작소 가공. https://python-choigosu.com/data/goodprice-2026/ (확인일: YYYY-MM-DD). 기준일 2026-07-29 은 원본 기관이 공개한 자료의 날짜이고, 최종 수집은 2026-07-29 입니다. 이 주소는 최신 수집분을 가리키므로, 특정 시점을 인용하실 때는 위 기준일을 함께 적어 주십시오 — 그 시점의 원본은 아래 스냅샷 이력에 그대로 남아 있습니다.
UTF-8 BOM 을 붙였습니다. 한국어 Windows 의 Excel 은 BOM 이 없는 UTF-8 CSV 를
cp949 로 해석해 상호와 주소가 전부 깨집니다. 이 파일의 1차 독자가 기자와 연구자이고
그들이 여는 도구가 대부분 Excel 이므로, 그쪽이 바로 열리는 쪽을 골랐습니다.
pandas·R·duckdb 로 읽으실 때는 인코딩을 utf-8-sig 로 지정하시면 됩니다
(지정하지 않으면 첫 열 이름 앞에 보이지 않는 문자가 붙습니다 — 그렇게 눈에 보이는
실패가 되도록 고른 것입니다).
줄바꿈은 CRLF(RFC 4180), 참·거짓 항목은 참일 때 Y, 아니면 빈 칸입니다.
이용조건이 미확인인 동안 원본 전량을 그대로 재배포하지 않으며, 이 CSV 는 주소를 정리하고 시군구 코드를 붙인 가공본입니다.
출처와 이용조건
| 자료 ID | goodprice-2026 |
|---|---|
| 출처 기관 | 행정안전부 |
| 원본 | https://goodprice.go.kr/ |
| 이용조건 | 공공누리 유형 미확인 착한가격업소 누리집은 이용조건(공공누리 유형)을 이 엔드포인트에 대해 명시하고 있지 않습니다. 같은 내용의 공공데이터포털 파일데이터(행정안전부 「착한가격업소 현황」, 데이터 번호 3045247)는 이용허락범위에 제한이 없다고 고지돼 있으나, 그 고지가 이 엔드포인트에 그대로 적용된다고 단정할 수 없어 미확인으로 표기합니다. 원본 전량 재배포는 하지 않으며, 이 페이지의 CSV 는 좌표·주소를 시군구 코드로 정규화하고 출처를 명시한 가공본입니다. 기관의 고지가 확인되면 유형을 여기에 적습니다. |
| 데이터 기준일 | |
| 최종 수집 | |
| 담긴 곳 | 12,724건 |
| 기간 | 2026 |
| 지역 | 대한민국 |
| 새로 고침 주기 | 주 1회 자동으로 받음 · 14일이 넘으면 밀렸다고 적음 |
| 쓰는 도구 | A-01 착한가격 지도 |
어느 경로로 받았나
재현에 필요한 것을 전부 적습니다. 공식 오픈API 인지 아닌지도 그대로 밝힙니다 — 경로를 숨기면 재현할 수 없고, 재현할 수 없는 자료는 인용할 가치가 없습니다.
-
HTTP POST 인증 불필요
https://goodprice.go.kr/bssh/selectMapData.json파라미터
swLat=33.0 · swLng=124.5 · neLat=38.7 · neLng=131.0 · level=1착한가격업소 누리집 지도 화면이 쓰는 사이트 내부 엔드포인트입니다. 공공데이터포털에 문서화된 오픈API 가 아닙니다. 전국 통합 오픈API 가 존재하지 않아 (행정안전부 전국판 3045247 은 파일데이터만 제공되고 오픈API 는 지방자치단체별로 파편화돼 있습니다) 좌표가 포함된 전국 데이터를 한 번에 받을 수 있는 경로가 이것뿐이었습니다. robots.txt 에서 차단되지 않은 경로임을 확인했고, 주 1회로 호출을 제한합니다. level=1 은 서버측 클러스터링을 끄는 값이며, 올리면 개별 좌표 대신 군집 좌표가 내려옵니다.
-
HTTP POST (파셋) 인증 불필요
https://goodprice.go.kr/bssh/selectMapData.json파라미터
srchDlvrYn · parkingYn · packingYn · rsvtYn · grpUsePosblYn · mwmnToiletSeYn · componAnimalAcmpnyYn · infntFcltyYn · pwdbsFcltyYn · pregnantPrefrYn · areaCrrncyYn (각 Y)같은 엔드포인트에 편의시설 플래그를 붙이면 해당 조건에 맞는 가게 식별번호 목록이 내려옵니다. 플래그 11종을 각각 1회씩, 본체와 합쳐 요청 12회로 수집이 끝납니다.
-
HTTP GET (폴백, 미사용) 인증 불필요
https://goodprice.go.kr/bssh/bsshPageExcel.do?pageIndex=1&searchKeyword=위 경로가 막혔을 때를 대비한 공식 엑셀 내려받기입니다. 12,736건이 내려오지만 좌표가 없어 전량 지오코딩이 필요합니다. 현재는 쓰지 않으며, 폴백이 존재한다는 사실 자체를 적어 둡니다.
커버리지
| 범위 | 전국 17개 시·도 · 시·군·구 256곳 가운데 가게가 있는 지역 전부. 특정 지역만 골라 받지 않았습니다. |
|---|---|
| 데이터가 있는 지역 | 256개 시군구 · 16개 시도 |
| 지역 페이지 | 255개. 담긴 곳이 3건 미만인 지역은 만들지 않습니다 — 내용 없는 페이지를 대량 생산하지 않기 위해서입니다. |
| 지역 미매칭 | 주소에서 시·군·구를 뽑지 못한 곳 0곳 |
스냅샷 이력
받은 원본을 항목을 골라내지 않고 통째로 압축해 저장소에 커밋합니다. 필요한 것만 남기면 공공데이터의 항목이 바뀐 사실 자체를 영원히 알 수 없기 때문입니다. 원본 API 가 죽어도 이 스냅샷만으로 사이트를 다시 빌드할 수 있습니다.
| 수집일 | 파일 | 구분 | 크기(압축) |
|---|---|---|---|
data/raw/chakhan/2026-07-29.facets.json.gz | 부속 | 39.3KB | |
data/raw/chakhan/2026-07-29.json.gz | 본체 | 1.2MB |
가공 산출물: data/dist/chakhan/index.json 313.7KB · data/dist/chakhan/meta.json 206B
보존 정책 — 최신 1개와 매월 1일자 수집분은 영구 보관하고, 그 사이 주간 수집분은 정리합니다.
알려진 한계
- 가격은 정해질 당시의 값이라 그 뒤에 올랐을 수 있습니다
- 문 닫은 가게가 목록에서 빠지기까지 최대 세 달이 걸립니다
- 가격을 모르는 가게가 100곳 가운데 3~4곳 있습니다
- 4곳 가운데 1곳은 음식점이 아닙니다 — 미용실·이발소·세탁소·목욕탕·숙박 3,120곳(24.5%)이 함께 들어 있습니다
- 유난히 비싼 값을 지우지 않았습니다 — 가장 비싼 854,400원까지 원본 그대로 싣습니다
각 항목을 풀어 쓴 설명과 자주 묻는 질문은 착한가격 지도 자료 설명에 있습니다. 여기 적힌 출처나 이용조건이 틀렸다면 알려 주세요.
스키마
아래 열 이름이 CSV 의 머리글이자 JSON 산출물의 키입니다. 채움률은 이번 수집분 12,724건을 직접 세어 계산했습니다. 참·거짓 항목은 참인 건수만 셉니다 — 원본이 참일 때만 기록하기 때문입니다.
| 열 | 이름 | 형 | 채움률 | 설명 |
|---|---|---|---|---|
id | 식별번호 | string | 100.0% (12,724) | 착한가격업소 누리집이 가게마다 붙인 번호. 겹치지 않습니다. 원본 항목 bsshSn |
name | 가게 이름 | string | 100.0% (12,724) | 기관이 공개한 가게 이름. 원본 항목 bsshNm |
lat | 위도 | coordinate | 100.0% (12,724) | WGS84 위도. 기관이 부여한 좌표를 그대로 씁니다. 원본 항목 lat |
lng | 경도 | coordinate | 100.0% (12,724) | WGS84 경도. 원본 항목 lot |
addr | 도로명주소 | string | 100.0% (12,724) | 기관이 공개한 도로명주소. 괄호 뒤와 층·호 표기는 지웠습니다. 원본 항목 roadNmAddr |
sgg | 시군구 코드 | string | 100.0% (12,724) | 행정안전부 행정표준코드 5자리. 주소를 읽어 우리가 붙인 값이며 원본에는 없습니다. |
cat | 종류 | string | 100.0% (12,724) | 기관이 적은 종류를 정리한 값. 원본 표기를 그대로 씁니다. 예: 한식·일반, 미용업. 원본 항목 indutyNm |
menu | 대표 메뉴 | string | 100.0% (12,724) | 기관이 공개한 대표 품목. 원본 항목 menuNm |
price | 가격 | number | 96.5% (12,284) | 대표 메뉴 값(원). 원본이 자유 문자열이라 숫자를 뽑았고, 뽑지 못하면 비웁니다. 원본 항목 menuPc |
flags.delivery | 배달 | boolean | 11.4% (1,451) | 배달 가능 가게로 표시돼 있음. 원본 항목 srchDlvrYn=Y |
flags.parking | 주차 | boolean | 22.7% (2,886) | 주차 가능 가게로 표시돼 있음. 원본 항목 parkingYn=Y |
flags.takeout | 포장 | boolean | 25.1% (3,190) | 포장 가능 가게로 표시돼 있음. 원본 항목 packingYn=Y |
flags.reservation | 예약 | boolean | 24.4% (3,103) | 예약 가능 가게로 표시돼 있음. 원본 항목 rsvtYn=Y |
flags.group | 단체 이용 | boolean | 19.0% (2,416) | 단체 이용 가능 가게로 표시돼 있음. 원본 항목 grpUsePosblYn=Y |
flags.restroom | 남녀 화장실 구분 | boolean | 16.2% (2,060) | 남녀 화장실이 구분된 가게로 표시돼 있음. 원본 항목 mwmnToiletSeYn=Y |
flags.pet | 반려동물 동반 | boolean | 1.7% (214) | 반려동물 동반 가능 가게로 표시돼 있음. 원본 항목 componAnimalAcmpnyYn=Y |
flags.infant | 유아 시설 | boolean | 1.2% (153) | 유아 시설을 갖춘 가게로 표시돼 있음. 원본 항목 infntFcltyYn=Y |
flags.barrierFree | 장애인 편의 | boolean | 0.6% (74) | 장애인 편의시설을 갖춘 가게로 표시돼 있음. 원본 항목 pwdbsFcltyYn=Y |
flags.pregnant | 임산부 우대 | boolean | 0.1% (8) | 임산부 우대 가게로 표시돼 있음. 원본 항목 pregnantPrefrYn=Y |
flags.localCurrency | 지역화폐 | boolean | 41.1% (5,234) | 지역화폐 결제가 가능한 가게로 표시돼 있음. 원본 항목 areaCrrncyYn=Y |