A단계만 완료해도 의미 있는 결과이고, B단계까지 되면 파일럿은 충분히 성공한 것입니다. C단계와 코드 정리, 지도 제작은 시간이 되실 때만 부탁드립니다.
—
점-다각형 공간조인).검증 방법 — 아래 「가게 명단 전체」를 내려받아 직접 세어보거나,
지도에서 해당 읍·면을 열어 네이버 지도로 약국을 검색해 실제로 없는지 확인할 수 있습니다.
좌표가 없던 판매업소 2,786건은 구 자료 이식·지오코딩으로 보완했고
(coord_src 열에 출처 표기), 보완하지 않았다면 무약촌이 486곳으로
집계됐을 것입니다.
—
보건소·보건지소·보건진료소는 건강보험심사평가원 병원정보서비스에서 종별코드
71·72·73·75로 받았습니다. 요청서 2장이 "존재만으로 해결로 보지 말고 운영·인력을
확인해야 한다"고 지적한 대로, 의사 총원(drTotCnt)을 함께 받아
엑셀의 기능 확인 상태 열에 기재했습니다.
다만 24시간 상주 여부와 운영일은 공개 데이터가 없어 판정하지 않았고, 해당 열에 전부 "미확인"으로 적었습니다. 요청서 2장이 공공거점 공백형을 "보조지표로만 제시, 기능자료가 없으면 잠정치로 표시"하라고 한 지시에 따른 것입니다.
—
요청서 5.1의 인구중심 방식으로 읍·면마다 기준점을 하나 정하고, 네이버 길찾기 API로 실제 도로 소요시간을 물었습니다. 요청서 5.3이 지정한 평일 오전 10-11시 비혼잡 시간대로 전국을 고정했습니다 (—, 총 —회 조회, 경로 탐색 실패 0건).
가장 가까워 보이는 시설이 실제로 가장 빠른 경우는 —뿐이라 (강 건너편·산 너머·고속도로 진입 방향) 주변 8곳을 모두 조회해 최소값을 취했습니다. 요청서 5.3대로 평균속도 보정은 하지 않았습니다 — API가 이미 실제 도로 소요시간을 반환하므로 다시 곱하면 이중 보정이 됩니다.
이 질문에는 아직 답하지 못했습니다. 요청서가 C단계(선택)로 둔 표본 격자 분석이 수행되지 않았기 때문입니다. 대표점 1개 방식으로는 한 읍·면 안의 중심마을과 외곽마을 차이를 원리상 볼 수 없습니다.
필요한 자료(500m 인구격자 —칸)는 이미 확보돼 있고 대표점 산정에 쓰고 있습니다. 표본 30곳 기준 약 8,100회 조회가 필요하며, 이번 달 잔여 무료 한도 안에서 수행 가능합니다.
| 구분 | 정의 | 용도 | 주의 |
|---|---|---|---|
| 행정적 무약촌 I | 해당 읍·면 안에 영업 중 약국 0곳 + 영업 중 안전상비약 판매업소 0곳 | 한지아 의원안 및 정부 논의의 기본 숫자와 직접 비교 | 보건기관 존재 여부로 이 숫자 자체를 바꾸지 않음 |
| 공공거점 보유형 | 행정적 무약촌 I 중 보건소·보건지소·보건진료소가 존재하는 지역 | 정부의 공공대안이 이미 있는지 파악 | 존재만으로 해결로 보지 말고 운영·인력을 확인해야한다는 비판가능 |
| 공공거점 공백형 (탐색용) |
행정적 무약촌 I 중 공공거점(보건소 등)이 확인되지 않는 지역 (약사회가 생각하는 실질 무약촌II) |
"민간 판매처뿐 아니라 공공 대안도 없는 곳" 규모 비교 | 보조지표로만 제시. 공공기관 기능자료가 없으면 잠정치로 표시 |
| 생활권 접근취약지 | 행정적 무약촌 I 중 읍면동 인구중심점 또는 500m 인구격자에서 최근접 공급처까지 차량 30분 초과 | 실제 정책대상 선별 | 약국·판매업소·공공거점을 따로 계산한 뒤 필요하면 종합 시나리오 제시 |
주의사항까지 각각 지켰습니다. 아래 표의 값은 엑셀 마스터의 같은 이름 열에서 그대로 나옵니다.
| 용어 | 결과 | 요청서 주의사항을 어떻게 지켰나 |
|---|
2026년 3월 복지부 자료는 보건지소 1,326개, 보건진료소 1,894개를 제시하고, 보건진료전담공무원이 91종 의약품을 처방할 수 있다고 설명합니다. 동시에 공보의 미상주 보건지소를 통합형·진료소 전환형·순회진료형 등으로 개편하고, 보건진료전담공무원의 처방 가능 의약품과 의료행위 범위를 재정비·확대하기 위한 연구를 추진한다고 밝혔습니다.
따라서 정부가 의료취약지에서 보건지소·보건진료소를 대안적 일차의료 및 의약품 접근거점으로 강화하려는 방향은 분명합니다. 다만 안전상비의약품을 소매점처럼 자유구매하는 구조와는 다르고, 진료 후 처방·투약, 운영일, 인력 상주 여부에 따라 실제 이용 가능성이 달라진다는 비판을 받을 수는 있습니다.
2012년 제도 도입 당시 보건복지부 보도자료(11.15.)를 확인한 결과, "농어촌에 있는 1,907개의 보건진료소에도 안전상비의약품이 비치되며, 편의점이 없고 보건진료원이 상주하는 보건진료소도 없는 읍·면 지역은 특수장소 220개를 추가 지정해 안전상비의약품을 비치했다"는 내용이 실제로 확인됩니다. 즉 보건진료소를 의약품 접근거점으로 보는 시각은 이번에 새로 만든 논리가 아니라 정부가 제도 도입 당시부터 취해온 입장과 일치합니다. 파일럿에서는 보건소를 카운팅한 경우와 뺀 경우 모두를 병기합니다.
—
요청서가 인용한 복지부 2026년 3월 자료는 보건지소 1,326개·보건진료소 1,894개인데, 본 분석의 심평원 API 집계는 —입니다. 기관 신설·통폐합과 집계 시점 차이로 보이며, 두 자료 모두 공개 출처입니다.
특수장소는 세지 못했습니다. 「특수장소에서의 의약품 취급에 관한 지정」 (복지부고시 2025-98호) 제2조제8호의 지정 요건이 본 분석의 무약촌 I 정의와 거의 같은데, 특수장소는 약사법 제44조의2 등록 판매자가 아니라 부칙 제4조에 따른 시장·군수·구청장 지정이라 행정안전부 인허가 데이터에 잡히지 않습니다. 전국 통합 목록도 공개돼 있지 않습니다. 무약촌 중 일부에는 이미 특수장소가 지정돼 있을 수 있습니다.
| 단계 | 부탁드리는 내용 | 산출 결과 |
|---|---|---|
| A. 기초 전수 (필수) |
전국 읍·면별 ▲약국 ▲영업 중 판매업소 ▲보건소·보건지소·보건진료소 수와 인구를 결합. 행정적 무약촌 I, 공공거점 보유형, 공공거점 공백형II을 목록화. | 엑셀 마스터 1개와 요약 숫자 |
| B. 전국 간이 접근성 (권장) |
행정적 무약촌 I마다 대표점 1개를 정해 최근접 약국·판매업소·공공보건기관까지 도로거리·차량시간을 계산 (카카오·네이버 API 활용). 15분·30분 구분. | 읍·면별 최근접 시설·거리·시간 열 추가 |
| C. 500m 격자 심화 (선택) |
일부 지역에만 적용. 각 격자에서 최근접 시설까지 도로시간을 계산하고, 격자인구로 가중해 접근인구율과 평균·중앙값·90분위 시간을 산출. 전국 500여 곳 전수 격자분석은 필수 아님. | 표본지역 접근인구율과 간단 지도 |
이번 파일럿에서 요구하지 않는 것
전국 500m 격자 전수분석, 대중교통 접근성 분석, 완성형 HTML 지도, 정식 연구보고서,
50곳 이상 수작업 검증은 필수가 아니니, 가능한 곳까지만 부탁드립니다.
| 단계 | 상태 | 산출물 |
|---|---|---|
| A. 기초 전수 | 완료 | 엑셀 마스터 1개(4시트) + 요약 숫자. 읍·면 1,408곳과 동 2,151곳을 모두 담아 읍면동 3,559곳 전체로 재집계할 수 있게 했습니다. |
| B. 전국 간이 접근성 | 완료 | 대표점 488곳 × 유형 3종을 네이버 API로 실측. 15분·30분 구분 열 포함. |
| C. 500m 격자 심화 | 미수행 | 표본 지역 미선정. 1장 질문 4가 여기에 해당합니다. |
완성형 HTML 지도를 만들었습니다. 요청서 7장은 "최종 후보 몇 곳의 예시 이미지 정도면 충분"이라고 했으나, 검증 편의를 위해 인터랙티브 지도로 제공합니다. 슬쩍 끼워 넣지 않고 초과분임을 밝힙니다.
전국 500m 격자 전수분석은 한때 수행했으나 산출물에서 전부 걷어냈습니다. 요청 범위를 벗어난 데다, 상용 API로 실측할 수 없는 규모(18.8만 칸)라 추정치에 의존해야 했기 때문입니다. 현재 산출물의 이동시간은 100% 실측값입니다.
대중교통 분석과 50곳 이상 수작업 검증은 수행하지 않았습니다.
가장 좋은 대표점은 500m 격자 중심좌표를 인구로 가중평균한 읍·면별 인구중심점입니다. 투영좌표계에서 X̄=Σ(인구×X)/Σ인구, Ȳ=Σ(인구×Y)/Σ인구로 계산합니다. 산출된 점이 산·바다·도로 밖에 놓이면 가장 가까운 '인구가 있는 격자 중심점' 또는 도로점으로 보정합니다.
이 작업이 번거로우면 1차 파일럿에서는 읍·면사무소 또는 가장 인구가 많은 500m 격자 중심점을 대표점으로 사용해도 됩니다. 다만 결과표에 대표점 산정방식을 반드시 적습니다.
—
격자 보정만으로 부족한 경우가 한 건 있었습니다. 밀양 산외면은 면 안에 보건지소가 있는데도 55.5분으로 계산됐습니다. 직선거리 2.2km인데 도로거리가 75.6km, 역방향 조회는 12.0분이었습니다 — 기준점이 도로에서 멀어 API가 출발점을 엉뚱한 도로에 붙인 것입니다.
요청서가 대안으로 허용한 최대인구격자로 옮겨 다시 조회하니 2.6분이 나왔습니다.
이 검출·보정 절차를 파이프라인에 넣었고(우회비 8배 초과 기준), 488곳 중 해당은
이 한 곳뿐이었습니다. 대표점 방식은 결과표의 rep_method 열에 적혀 있습니다.
복지부의 2026년 일차의료취약도 방법은 500m 인구격자별 도로망거리를 계산한 뒤 보정인구수로 가중평균합니다. 반면, 당뇨병 진료기관 접근성 논문은 읍·면·동당 인구가중 중심점 1개를 사용했습니다. 이번 파일럿에서는 전국 간이분석에 대표점 1개, 표본 심화분석에 500m 격자를 쓰는 절충안이 가장 현실적이라 생각합니다.
행정적 무약촌 I 에 대한 500m 격자 분석은 서버 용량 등이 가능하실 때만 해주시고, 그게 아니라면 특별히 봐야할거 같은 일부 표본 지역에만 적용합니다. 각 격자에서 최근접 시설까지 도로시간을 계산하고, 격자인구로 가중해 15분·30분 내 접근인구율과 평균·중앙값·90분위 시간을 산출하면 됩니다.
절충안 중 전국 간이분석(대표점 1개)만 수행했고 표본 심화분석은 하지 못했습니다. 500m 인구격자 자료는 확보돼 있으며 대표점 산정에 이미 사용 중입니다.
다만 API는 '실시간 교통 반영' 옵션과 '기본 소요시간' 옵션을 함께 제공하는 경우가 많아, 조회 시점(출퇴근 시간대 vs 심야)에 따라 실시간 값이 달라질 수 있습니다. 전 지역을 평일 오전 10~11시처럼 비혼잡 시간대 하나로 고정해 조회하고, 엑셀에 '조회 시각·API 종류'를 한 줄 메모로 남겨두면 지역 간 비교가 일관됩니다.
평균속도 보정은 '거리'만 있을 때 쓰는 대체 방법입니다. 당뇨병·응급의료 논문들이 시·도 또는 읍면동 평균속도를 곱해 이동시간을 추정한 이유는, 인구중심점 간 도로망 '거리(km)'만 구할 수 있고 실제 경로의 소요시간 데이터가 없었기 때문입니다. 반면 카카오·네이버 길찾기 API는 좌표 두 점을 넣으면 실제 도로망을 따라간 이동시간을 직접 반환합니다 — 이미 실제 도로 상황 (제한속도, 굴곡, 신호 등)이 반영된 값이므로, 그 위에 지역 평균속도를 다시 곱하면 오히려 이중 보정이 되어 왜곡됩니다. 따라서 API 기반 계산에서는 별도의 읍면동 평균속도 단계를 생략해도 됩니다.
네이버 Directions 5는 목적지를 여러 개 넣어 한 번에 조회할 수 있어 호출 수를 1/10로 줄일 수 있습니다. 그러나 반환값이 실제 최소가 아니었습니다. 경북 의성에서 목적지 10곳을 넣었을 때 API는 15.1분(11.46km) 지점을 반환했으나, 같은 후보군을 하나씩 조회한 실제 최소는 4.9분(2.57km)이었습니다. 시간 최소도 거리 최소도 아니며 옵션을 바꿔도 같았습니다.
호출 수가 늘더라도 목적지 1개씩 개별 조회만 사용했습니다.
| 레이어 | 따로 계산할 내용 | 종합 해석 |
|---|---|---|
| 약국 | 최근접 영업 중 약국의 도로거리·차량시간 | 전문가 상담·조제·일반의약품 접근 |
| 안전상비약 판매업소 | 최근접 영업 중 등록판매업소의 도로거리·차량시간 | 현재 제도상 약국 외 자유구매 접근 |
| 공공보건기관 | 최근접 보건소·보건지소·보건진료소의 도로거리·차량시간 | 진료 후 처방·투약 또는 순회진료 등 공공대안 접근 |
| 종합 시나리오 | ① 위 세 유형 중 하나라도 실제 이용 가능한 곳까지의 최소시간 ② 약국과 안전상비약판매업소 두 유형 중 하나라도 실제 이용 가능한 곳까지의 최소시간 |
"기본의약품 접근 가능"의 넓은 시나리오 |
세 유형을 각각 조회해 도로거리와 차량시간을 따로 냈고, 그 최소값을 조합해 시나리오를 만들었습니다. 시나리오 번호는 요청서 정의를 그대로 따랐습니다.
| 시나리오 | 정의 | 15분 이내 | 15-30분 | 30분 초과 | 중앙값 |
|---|
| 요청 항목 | 상태 | 제공물 |
|---|---|---|
| 엑셀 1개 (시트 구성) | 충족 | README / 요약 / 전국_읍면동_마스터 / 무약촌I_접근성. 표본 500m 결과 시트는 C단계 미수행으로 없습니다. |
| 엑셀 안 메모 5종 | 충족 | 기준일(항목별 3분할)·출처·좌표계·대표점 방식·조회 시각과 API 종류를 README 시트에 기재. |
| 코드 또는 스크립트 | 충족 | 수집부터 산출까지 전 과정 Python. 공공 API와 오픈소스만으로 재현됩니다. |
| 지도 (예시 이미지 수준) | 초과 | 인터랙티브 지도 3종. 요청 수준을 넘으므로 4장에 초과분으로 명시했습니다. |
| 구분 | 예시 열 |
|---|---|
| 기본정보 | 행정코드, 시도, 시군구, 읍면, 총인구, 65세 이상 인구 |
| 민간 공급 | 약국 수, 영업 중 판매업소 수, 행정적 무약촌 I 여부 |
| 공공 공급 | 보건소·보건지소·보건진료소 수, 기능 확인 상태, 공공거점 보유형 여부, 공공거점공백 II 여부 |
| 대표점 | 대표점 위도·경도, 대표점 방식(인구중심/최대인구격자/면사무소) |
| 접근성 | 최근접 약국·판매업소·공공기관(보건소) 명칭, 도로거리, 차량시간, 15분·30분 구분, API 조회 시각 |
| 검증 | 직선거리, 지도 수작업 검증 여부, 특이사항(섬·산악·교량·약방 등) |
요청서가 든 예시 열과 실제 엑셀 열의 대응입니다.
| 구분 | 요청서 예시 열 | 실제 엑셀 열 |
|---|---|---|
| 기본정보 | 행정코드, 시도, 시군구, 읍면, 총인구, 65세 이상 인구 | adm_cd · sido · sigungu · emd ·
pop_total · pop_65plus (+ 구분·읍면여부) |
| 민간 공급 | 약국 수, 영업 중 판매업소 수, 행정적 무약촌 I 여부 | n_pharmacy · n_outlet · 무약촌I
(+ n_outlet_rest 휴게소분, 무약촌I_휴게소제외) |
| 공공 공급 | 보건소·지소·진료소 수, 기능 확인 상태, 보유형 여부, 공백 II 여부 | n_phc·n_phc_branch·n_phc_post ·
기능확인상태 · 공공거점보유형 · 공공거점공백형II |
| 대표점 | 대표점 위도·경도, 대표점 방식 | rep_lat·rep_lon · rep_method
(인구중심 / 인구중심(격자보정) / 최대인구격자 / 폴리곤대표점) |
| 접근성 | 최근접 시설 명칭, 도로거리, 차량시간, 15·30분 구분, API 조회 시각 | 최근접_* · 도로거리km_* · 시간분_* ·
②_15분이내·②_30분초과·①_* · API조회시각 |
| 검증 | 직선거리, 지도 수작업 검증 여부, 특이사항(섬·산악·교량·약방 등) | 직선거리km_* · 수작업검증여부 · 특이사항 |
대표점 방식 — 요청서가 든 세 가지(인구중심/최대인구격자/면사무소) 중 인구중심을 채택했고, 보정이 들어간 경우를 구분해 적었습니다. —곳은 세 방식이 모두 적용 불가한 경우입니다. 민통선 지역이라 상주인구가 0이고 면사무소도 설치돼 있지 않습니다(행정안전부 총괄표 각주의 '면사무소 없는 9개 면'에 해당). 폴리곤 내부 대표점을 쓰고 특이사항에 적었습니다.
특이사항 — —곳에 자동 기재했습니다. 섬(최근접 시설이 다른 육괴), 판매업소가 고속도로 휴게소뿐, 민통선 세 종류입니다. 요청서가 예로 든 '약방'(약업사·매약상)은 전국 통계가 없어(심평원 요양기관이 아님) 수기 기재 칸으로 남겼습니다.
협업 방식
A단계 결과가 나오면 먼저 공유받아 오류와 범위를 함께 조정합니다. B단계까지 되면 파일럿은
충분히 성공한 것입니다. C단계는 시간과 흥미가 허락하는 범위에서만 부탁드립니다.
| 원칙 | 상태 | 지킨 방법 |
|---|---|---|
| 무약촌 I을 헤드라인으로 유지 | 준수 | 보건기관 유무로 헤드라인 숫자를 바꾸지 않았습니다. 공공거점은 별도 열·별도 시나리오입니다. |
| 공공기관 포함 시 감소분을 별도 시나리오로 | 준수 | 시나리오 ①②로 분리. 6장 표와 그래프가 그 차이입니다. |
| 최종 후보는 배차횟수·대중교통 시간 추가 확인 | 미수행 | 생활권 접근취약지 —곳이 그 후보입니다. 자동화가 어려워 수기 확인이 필요합니다. |
| 결론을 미리 정하지 않기 | 준수 | 본 산출물은 판단을 제시하지 않고 정의별 숫자와 근거만 싣습니다. 아래 사다리가 그 차이입니다. |
| 자료 | 건수 | 출처·기준일 |
|---|
① C단계 표본 격자 분석 — 1장 질문 4에 해당합니다. 표본 30곳 기준 약 8,100회 조회로 수행 가능하며, 산출은 요청서 5.2가 지정한 접근인구율·평균·중앙값·90분위입니다.
② 최종 후보 대중교통 확인 — 9장이 권고한 항목입니다. 생활권 접근취약지 —곳이 대상입니다.