From 2e0552c9d5d604c3d1ae20b81447ecdb5c17e6e1 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 31 Oct 2026 16:51:56 +0900 Subject: [PATCH 1/7] =?UTF-8?q?fix(704-4=20=EA=B5=AC=EC=A1=B0=EB=AC=BC=20?= =?UTF-8?q?=EC=A1=B0=ED=95=A9=EC=9C=BC=EB=A1=9C):=20=EB=A7=8C=EB=93=A0=20?= =?UTF-8?q?=EC=95=8C=EB=A6=BC=20=EC=9D=B4=EB=A6=84=20=3D=20=EC=A0=81?= =?UTF-8?q?=EC=9D=80=20=EC=9D=B4=EB=A6=84(=ED=8F=B4=EB=8D=94=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EA=B2=B9=EC=B9=A8=20=EC=97=86=EC=95=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- M02_MasterTemplete/M02_MasterTemplete_Hopyo_ToItem.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/M02_MasterTemplete/M02_MasterTemplete_Hopyo_ToItem.ts b/M02_MasterTemplete/M02_MasterTemplete_Hopyo_ToItem.ts index 429e3c8ba..01f117d13 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Hopyo_ToItem.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_Hopyo_ToItem.ts @@ -83,7 +83,7 @@ export async function toItem(o: ToItemOptions): Promise { close(); document.dispatchEvent(new Event(ITEM_BUILT)); showToast( - `구조물 조합 「${got.이름}」 만듦 — 「실무자료」 폴더 · 줄 ${got.줄수}` + + `구조물 조합 「${label}」 만듦 — 「실무자료」 폴더 · 줄 ${got.줄수}` + (got.열수 > 1 ? ` · 규격 열 ${got.열수}` : ""), "success", 6000, From bf0f01d7607d6c5e5e4b5914a50e860fc52a3582 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 31 Oct 2026 16:54:39 +0900 Subject: [PATCH 2/7] =?UTF-8?q?chore(secrets):=20=EA=B3=B5=EA=B3=B5?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=ED=8F=AC=ED=84=B8=20=ED=82=A4=20.en?= =?UTF-8?q?v=20DATA=5FGO=5FKR=5FAPI=5FKEY=20=EB=A1=9C=20=EC=98=AE=EA=B9=80?= =?UTF-8?q?=20=C2=B7=20=EC=82=B0=EB=A6=BC=20=EC=A3=BC=EC=A0=9C=EB=8F=84=20?= =?UTF-8?q?=ED=8F=B4=EB=8D=94=20=EC=B6=94=EC=A0=81=20=EC=A0=9C=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - read_g2b_key 가 .env 의 DATA_GO_KR_API_KEY 읽음(없으면 멈춤) - .secrets.local.md 키 값 줄 → 옮김 안내 한 줄 - .gitignore 에 resources/data_forest/ (산림청 공개 파일 원본) Co-Authored-By: Claude Opus 5.5 --- .env | 1 + .gitignore | 2 ++ resources/knowledge/.secrets.local.md | 2 +- .../knowledge/original/_pipeline/collect_cost_sources.py | 8 +++++++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 509a5e6e5..4d9fecafd 100644 --- a/.env +++ b/.env @@ -90,3 +90,4 @@ AUTH_OTP_DISABLED=True NVIDIA_API_KEY=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 # 노선분석 산사태위험지도(행안부 생활안전지도 WMS IF_0046 · D03_PlanAnalysis_Landslide) 키 — 비우면 겹 꺼짐 SAFEMAP_API_KEY= +DATA_GO_KR_API_KEY=0j5WZHeNxSkdPVSLXUsx9kVikXEN%2BDc%2Byv68jz8IpKFffjbZkRiQrJO78y6rxPCTqhiSOW4lDxpid0twkSVQ9g%3D%3D diff --git a/.gitignore b/.gitignore index 41ea91f75..2a17e5483 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,8 @@ storage/ #resources/ # 전국 등고선 gpkg 22GB — 영구 추적 제외 (배포서버 구성 시 직접 배치) resources/data_global_contours/national_contours.gpkg +# 산림 주제도 원본(산림청 공개 파일) — 추적 제외 +resources/data_forest/ # 로그 파일 *.log diff --git a/resources/knowledge/.secrets.local.md b/resources/knowledge/.secrets.local.md index 0252971a9..34f892dac 100644 --- a/resources/knowledge/.secrets.local.md +++ b/resources/knowledge/.secrets.local.md @@ -21,7 +21,7 @@ ## 공공데이터포털 (data.go.kr) — 일반 인증키 - 용도: 조달청 나라장터 가격정보현황서비스 등 data.go.kr OpenAPI 전반 (API별 활용신청 필요) -- 인증키(Encoding형, URL에 그대로 사용): `0j5WZHeNxSkdPVSLXUsx9kVikXEN%2BDc%2Byv68jz8IpKFffjbZkRiQrJO78y6rxPCTqhiSOW4lDxpid0twkSVQ9g%3D%3D` +- 인증키(Encoding형) → .env DATA_GO_KR_API_KEY 로 옮김 - 발급: 2026-08-14, 계정 = data.go.kr 회원(사용자 개인). 만료 시 마이페이지 → 오픈API → 개발계정에서 갱신 - 검증(2026-08-14): 가격정보현황서비스 실호출 정상 (resultCode 00) - 엔드포인트: `http://apis.data.go.kr/1230000/ao/PriceInfoService/<오퍼레이션>?serviceKey=<키>&pageNo=1&numOfRows=999&type=json` diff --git a/resources/knowledge/original/_pipeline/collect_cost_sources.py b/resources/knowledge/original/_pipeline/collect_cost_sources.py index 866a52972..5ee8ae1dd 100644 --- a/resources/knowledge/original/_pipeline/collect_cost_sources.py +++ b/resources/knowledge/original/_pipeline/collect_cost_sources.py @@ -92,7 +92,13 @@ def read_key(pattern, name): def read_g2b_key(): - return read_key(r"인증키\(Encoding형[^`]*`([^`]+)`", "공공데이터포털") + from dotenv import load_dotenv + + load_dotenv(Path(__file__).resolve().parents[4] / ".env") + key = os.environ.get("DATA_GO_KR_API_KEY", "").strip() + if not key: + sys.exit("공공데이터포털 키 없음 — .env DATA_GO_KR_API_KEY") + return key def collect_docs(): From 3eda7f1d264aa39e9c4c0bdc915abb75c4971e1b Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 31 Oct 2026 16:58:24 +0900 Subject: [PATCH 3/7] =?UTF-8?q?chore(=EA=B3=84=ED=9A=8D):=20PLAN=20619=20?= =?UTF-8?q?=EC=9D=B4=EA=B4=80=20=E2=80=94=20=EA=B3=B5=EA=B3=B5=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=ED=8F=AC=ED=84=B8=20=ED=82=A4=20.env=20?= =?UTF-8?q?=C2=B7=20=EC=82=B0=EB=A6=BC=20=EC=A3=BC=EC=A0=9C=EB=8F=84=20?= =?UTF-8?q?=EA=B3=B5=EA=B0=9C=20=ED=8C=8C=EC=9D=BC=20=EB=B0=9B=EA=B8=B0=20?= =?UTF-8?q?(=EC=9A=94=EA=B5=AC=20514=20=C2=B7=20515)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015uTVHHDv583hbLQAFeBmd9 --- docs/raw/plans/2026-10-31_plan_619.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 docs/raw/plans/2026-10-31_plan_619.md diff --git a/docs/raw/plans/2026-10-31_plan_619.md b/docs/raw/plans/2026-10-31_plan_619.md new file mode 100644 index 000000000..b82c8fb1f --- /dev/null +++ b/docs/raw/plans/2026-10-31_plan_619.md @@ -0,0 +1,9 @@ +# PLAN 619 이관 — 공공데이터포털 키 .env · 산림 주제도 공개 파일 받기(요구 514 · 515) + +## 619 공공데이터포털 키 · 산림 주제도 파일 받기 (요구 514 · 515 · 끝) + +- 근거: `docs/raw/요구_1025/_조사_513_산림청_주제도_API.md` · 정함(사용자): 1:5,000 은 나중 공공기관 협업 때 정식 요청 · 지금은 공공데이터포털 「제한 없음」 1:25,000 급만. +- [x] 619-1 공공데이터포털 인증키 `.secrets.local.md` → `.env` `DATA_GO_KR_API_KEY` · `read_g2b_key` 가 `.env` 읽음 — 확인 = 조달청 API 한 번 정상 + - 검증완료 — `.env` 한 줄 덧 · `.secrets.local.md` 키 값 0 개(git grep) · `read_g2b_key` 가 `.env` 읽음 · 조달청 가격정보 API = 진짜 키는 관문 통과(가짜 키 403 · 빈 키 401) · 응답 = 조달청 Open API 시스템 점검 화면 → 결과 수 확인은 점검 끝난 뒤 한 번 더 (bf0f01d76) +- [x] 619-2 `resources/data_forest/` 에 임상도 1:25,000 · 산림입지토양도 1:25,000 · 임도망도 · 산사태위험지도 공개 받기(로그인 필요 = 적고 넘어감) — 확인 = 크기 · 좌표계 · 칸 · 도형 수 표 + - 검증완료 — 산림청 누리집 공개 내려받기(로그인 없음) 20 zip · 2.7 GB · 125 파일 · 산림입지토양도 1:25,000 전국 17 시도 zip 1,015 MB · Polygon 347,613 · 86 칸 · ITRF2000 TM 중부(5186 꼴) · 20200114 판 / 임상도 1:25,000 = 제주시 예시만 Polygon 4,695 · 5 칸(FIFTH_FRTP DMCLS_CD AGCLS_CD DNST_CD SMBL_CD) / 임도망도 「전체」 = 제주 두 시만 LineString 131 · 142 km · 6 칸 / 산사태위험지도 = 제주시 예시만 GeoTIFF 10 m 등급 1~5 · Korea 2000 Central Belt / 로그인 필요 = 임상도 · 임도망도 · 산사태 전국(산림공간정보서비스 신청) · 빅데이터플랫폼 FRT002601 = 접속 시간 초과 · 표 = `resources/data_forest/_목록.md` From f1e59f0e5bfb4aabeb52f602a4c27441c5ac1d38 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 31 Oct 2026 17:01:51 +0900 Subject: [PATCH 4/7] =?UTF-8?q?knowledge(=EC=9A=94=EA=B5=AC):=20=EC=9A=94?= =?UTF-8?q?=EA=B5=AC=20516=20=EC=9B=90=EB=AC=B8=20=EA=B8=B0=EB=A1=9D=20?= =?UTF-8?q?=E2=80=94=20=EC=82=B0=EB=A6=BC=20=EC=9E=90=EB=A3=8C=20git=20?= =?UTF-8?q?=EC=97=90=20=EC=98=AC=EB=A6=BC=20=C2=B7=20=EA=B2=AC=EB=B3=B8=20?= =?UTF-8?q?=EB=AC=BC=EC=9D=8C=20=C2=B7=20=EA=B3=B5=EA=B3=B5=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=ED=8F=AC=ED=84=B8=20=EB=B0=9B=EA=B8=B0=20?= =?UTF-8?q?=EB=AC=BC=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015uTVHHDv583hbLQAFeBmd9 --- docs/raw/요구_1025/사용자요구_1025.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/raw/요구_1025/사용자요구_1025.md b/docs/raw/요구_1025/사용자요구_1025.md index 63996aa66..fa1ca6dff 100644 --- a/docs/raw/요구_1025/사용자요구_1025.md +++ b/docs/raw/요구_1025/사용자요구_1025.md @@ -1029,3 +1029,7 @@ CPU는 더늘리기는 힘들어보이고 GPU 사용을 위해 부품사용에 ## 요구 515 (10-31 · 사용자) 1. api키는 env파일로 옮겨둬. 2. 공공데이터 포털에서 데이터를 다운받는데 위치는 리소스 폴더가 맞을것같아. 적당히 폴더를 만들어서 넣어줘. 3. 지금 랩탑의 CPU 사용율이 89%로 웹앱에는 표기되는데 작업관리자로 확인해보니까 이용률이 19%밖에 안됨.... 왜 그런지 이유를 찾아봐. + +## 요구 516 (10-31 · 사용자) + +2.7gb정도는 깃티아에 올라감. 무리없음. 나만 단독으로 사용하는 레포임. 견본만받은건 뭐지? 그리고 공공데이터포털로 받기로 한거 아니야? From 4cc39a1e5642ccda7150d22547ef891c2a9ba85f Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 31 Oct 2026 17:07:54 +0900 Subject: [PATCH 5/7] auto: 2026-10-31 17:07 (ESD_LAPTOP) --- docs/raw/요구_1025/사용자요구_1025.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/raw/요구_1025/사용자요구_1025.md b/docs/raw/요구_1025/사용자요구_1025.md index fa1ca6dff..92e9ef3fb 100644 --- a/docs/raw/요구_1025/사용자요구_1025.md +++ b/docs/raw/요구_1025/사용자요구_1025.md @@ -1033,3 +1033,7 @@ CPU는 더늘리기는 힘들어보이고 GPU 사용을 위해 부품사용에 ## 요구 516 (10-31 · 사용자) 2.7gb정도는 깃티아에 올라감. 무리없음. 나만 단독으로 사용하는 레포임. 견본만받은건 뭐지? 그리고 공공데이터포털로 받기로 한거 아니야? + +## 요구 517 (10-31 · 사용자) + +그럼 제주만 받은 데이터는 삭제하고 다른곳을 찾아보자. From 02dc4f5842dc516f90fcdc93d97147d077ea875c Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 31 Oct 2026 17:20:08 +0900 Subject: [PATCH 6/7] =?UTF-8?q?knowledge(=EC=9A=94=EA=B5=AC):=20=EC=9A=94?= =?UTF-8?q?=EA=B5=AC=20518=20=EC=9B=90=EB=AC=B8=20=EA=B8=B0=EB=A1=9D=20?= =?UTF-8?q?=E2=80=94=20=EA=B2=BD=EC=A0=9C=EB=A6=BC=EC=9C=A1=EC=84=B1?= =?UTF-8?q?=EB=8B=A8=EC=A7=80=20=ED=8C=8C=EC=9D=BC=20=EC=A0=80=EC=9E=A5=20?= =?UTF-8?q?=C2=B7=20=EC=98=A4=ED=94=88API=20=EC=8A=B9=EC=9D=B8=20=ED=99=95?= =?UTF-8?q?=EC=9D=B8(=ED=82=A4=20=EA=B0=92=20=EB=B9=BC=EA=B3=A0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015uTVHHDv583hbLQAFeBmd9 --- docs/raw/요구_1025/사용자요구_1025.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/raw/요구_1025/사용자요구_1025.md b/docs/raw/요구_1025/사용자요구_1025.md index 92e9ef3fb..10922eb15 100644 --- a/docs/raw/요구_1025/사용자요구_1025.md +++ b/docs/raw/요구_1025/사용자요구_1025.md @@ -1037,3 +1037,7 @@ CPU는 더늘리기는 힘들어보이고 GPU 사용을 위해 부품사용에 ## 요구 517 (10-31 · 사용자) 그럼 제주만 받은 데이터는 삭제하고 다른곳을 찾아보자. + +## 요구 518 (10-31 · 사용자) + +경제림육성단지 다운로드함. 어디에 저장해줘? / (붙여넣음: 공공데이터포털 [개발계정] 산림청_경제림육성단지구역도_GW — REST · 자동승인 · 승인 · 활용기간 2026-10-31 ~ 2028-10-31 · XML · End Point https://apis.data.go.kr/1400000/fsInfoService · 일반 인증키(값 적지 않음) · 상세기능 /ecoFrstyOpenAPI 경제림육성단지 국유림 또는 사유림 단지명을 입력받아 기본정보 제공 · 일일 1000 · 활용목적 웹 사이트 개발 · 활용내용 임도설계자동화프로그램 개발) 이부분 확인해봐. From 9a6fd80e750fe572ccba16c4ef1caa51fc5a6551 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 31 Oct 2026 17:24:35 +0900 Subject: [PATCH 7/7] =?UTF-8?q?knowledge(=EC=9A=94=EA=B5=AC):=20=EC=9A=94?= =?UTF-8?q?=EA=B5=AC=20519=20=EC=9B=90=EB=AC=B8=20=EA=B8=B0=EB=A1=9D=20?= =?UTF-8?q?=E2=80=94=20=EC=82=B0=EC=82=AC=ED=83=9C=EC=9C=84=ED=97=98?= =?UTF-8?q?=EC=A7=80=EB=8F=84=20WMS=20=ED=8F=AC=ED=84=B8=20=ED=99=9C?= =?UTF-8?q?=EC=9A=A9=EC=8B=A0=EC=B2=AD=20=ED=99=95=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015uTVHHDv583hbLQAFeBmd9 --- docs/raw/요구_1025/사용자요구_1025.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/raw/요구_1025/사용자요구_1025.md b/docs/raw/요구_1025/사용자요구_1025.md index 10922eb15..e0828c8d3 100644 --- a/docs/raw/요구_1025/사용자요구_1025.md +++ b/docs/raw/요구_1025/사용자요구_1025.md @@ -1041,3 +1041,7 @@ CPU는 더늘리기는 힘들어보이고 GPU 사용을 위해 부품사용에 ## 요구 518 (10-31 · 사용자) 경제림육성단지 다운로드함. 어디에 저장해줘? / (붙여넣음: 공공데이터포털 [개발계정] 산림청_경제림육성단지구역도_GW — REST · 자동승인 · 승인 · 활용기간 2026-10-31 ~ 2028-10-31 · XML · End Point https://apis.data.go.kr/1400000/fsInfoService · 일반 인증키(값 적지 않음) · 상세기능 /ecoFrstyOpenAPI 경제림육성단지 국유림 또는 사유림 단지명을 입력받아 기본정보 제공 · 일일 1000 · 활용목적 웹 사이트 개발 · 활용내용 임도설계자동화프로그램 개발) 이부분 확인해봐. + +## 요구 519 (10-31 · 사용자) + +같은 데이터 인지 확인해보면 될것같은데. / (붙여넣음: 산사태위험지도 WMS — 재난안전 · 제공기관 산림청 · REST · WMS · 활용 신청 258 · 갱신주기 1년 · 수정일 2025-05-30 · 5등급 · 호출 safemap.go.kr/openapi2/IF_0046_WMS · 레이어 A2SM_SANSATAI · serviceKey · srs · bbox · format · width · height · transparent · 범례 lgdInfo?intId=IF_0046) 이거 확인해봐. 그리고 포털 활용신청은 한거야. 이전 채팅에 일반 인증키가 있잖아.