| name | building-register-search |
| description | Use when the user asks to look up a Korean building-register title record by address, PNU, legal-dong code, or parcel number. |
| license | MIT |
| metadata | {"category":"real-estate","locale":"ko-KR","phase":"v1"} |
Building Register Search
What this skill does
๊ตญํ ๊ตํต๋ถ ๊ฑด์ถ๋ฌผ๋์ฅ์ ๋ณด ์๋น์ค์ ํ์ ๋ถ(getBrTitleInfo)๋ฅผ ์กฐํํ๋ค. ์ฃผ์, 19์๋ฆฌ PNU, ๋๋ ๋ฒ์ ๋ ์ฝ๋์ ์ง๋ฒ์ ์
๋ ฅ๋ฐ์ ์ฃผ์ฉ๋, ์ฐ๋ฉด์ , ์ง์/์งํ ์ธต์, ์ฌ์ฉ์น์ธ์ผ, ๊ด๋ฆฌ๋ฒํธ์ ์ฃผ์ ์๋ณ ํ๋๋ฅผ ๋ฐํํ๋ค.
์ด ์คํฌ์ ๊ฑด์ถ๋ฌผ์ ํ์ ๋์ฅ ์ ๋ณด๋ง ์กฐํํ๋ค. ์์ ๊ถ, ๊ทผ์ ๋น, ๊ฐ์๋ฅ ๋ฑ ๊ถ๋ฆฌ๊ด๊ณ๋ ํ์ธํ์ง ์์ผ๋ฉฐ, ๊ทธ ๋ชฉ์ ์๋ ๋ณ๋ iros-registry-automation ์คํฌ์ ์ฌ์ฉํ๋ค.
Official access path
- ๊ณต๊ณต๋ฐ์ดํฐํฌํธ ๋ฐ์ดํฐ์
15134735
- ๊ณต์ endpoint
https://apis.data.go.kr/1613000/BldRgstHubService/getBrTitleInfo
- portable XML ์๋ต์ ํ๋ก์๊ฐ ํ์ฑํด JSON์ผ๋ก ์ ๊ทํ
- ์ฃผ์ ์
๋ ฅ ์ hosted/self-host proxy์
/v1/kakao-local/geocode?q=...๋ก ๋ฒ์ ๋ b_code์ ์ง๋ฒ์ ํ์ ํ ๋ค /v1/building-register/title ํธ์ถ
๊ณต์ API๊ฐ ๊ธฐ๋ณธ ๊ฒฝ๋ก์ด๋ฉฐ ํ๋ฉด scraping์ด๋ ๋น๊ณต์ endpoint๋ก ์ฐํํ์ง ์๋๋ค.
Commands
python3 scripts/building_register.py title --address '์์ธ ๊ฐ๋จ๊ตฌ ์ญ์ผ๋ 123-4'
python3 scripts/building_register.py title --pnu 1168010100101230004
python3 scripts/building_register.py title --sigungu-cd 11680 --bjdong-cd 10100 --plat-gb-cd 0 --bun 123 --ji 4
python3 scripts/building_register.py title --pnu 1168010100101230004 --json
PNU๋ sigunguCd(5) + bjdongCd(5) + ํ ์ง๊ตฌ๋ถ(1) + bun(4) + ji(4)์ 19์๋ฆฌ๋ค. PNU ํ ์ง๊ตฌ๋ถ 1(์ผ๋ฐ ํ ์ง)์ ๊ฑด์ถ๋ฌผ๋์ฅ API platGbCd=0, 2(์ฐ)๋ platGbCd=1๋ก ๋ณํํ๋ค. ๊ฐ๋ณ ํ๋๋ ์ฃผ์ ๊ฒฐ๊ณผ๋ก PNU๋ฅผ ๊ตฌ์ฑํ ๋๋ API ๊ฐ 0์ PNU 1, API ๊ฐ 1์ PNU 2๋ก ์ญ๋ณํํ๋ค. --plat-gb-cd๋ฅผ ์ง์ ์
๋ ฅํ ๋๋ PNU ๊ฐ์ด ์๋๋ผ ๊ฑด์ถ๋ฌผ๋์ฅ API ๊ฐ์ด๋ฉฐ ๊ณต์ ๊ฐ 0, 1, 2๋ฅผ ํ์ฉํ๋ค. API ๊ฐ 2๋ ๊ทธ๋๋ก ์กฐํ์ ์ ๋ฌํ๋ ๋์ํ๋ ํ์ค PNU ํ ์ง๊ตฌ๋ถ์ด ์์ผ๋ฏ๋ก PNU๋ฅผ ๊ตฌ์ฑํ์ง ์๋๋ค. ๊ฐ๋ณ ์
๋ ฅ์ bun, ji๋ 4์๋ฆฌ๋ก ์ผ์ชฝ zero-padding๋๋ฉฐ ji ์๋ต ์ 0000์ด๋ค. pageNo ๊ธฐ๋ณธ๊ฐ์ 1, numOfRows ๊ธฐ๋ณธ๊ฐ์ 10์ด๊ณ ์ต๋ 100์ด๋ค.
์ฃผ์ ์
๋ ฅ์ proxy mode ์ ์ฉ์ด๋ค. Kakao ์๋ต์์ ์ ํํ ํ๋์ ์ฃผ์, 10์๋ฆฌ ๋ฒ์ ๋ b_code, ๋ณธ๋ฒ, ์ฐ ์ฌ๋ถ๋ฅผ ์ป์ด์ผ ํ๋ค. ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฌ ๊ฐ์ด๊ฑฐ๋ ์ฅ์๋ช
fallback๋ง ์๊ฑฐ๋ ํ์ง ์ ๋ณด๊ฐ ๋น ์ก์ผ๋ฉด ์ถ์ ํ์ง ์๊ณ ์ค๋จํ๋ค.
Direct mode
python3 scripts/building_register.py title --pnu 1168010100101230004 --direct
python3 scripts/building_register.py title --pnu 1168010100101230004 --direct --dry-run
--direct๋ ์ฃผ์๋ฅผ ๋ฐ์ง ์๋๋ค. KSKILL_BUILDING_REGISTER_API_KEY, ๊ทธ๋ค์ DATA_GO_KR_API_KEY, ๋ง์ง๋ง์ผ๋ก ~/.config/k-skill/secrets.env์ ๊ฐ์ ํค ์์๋ก ์ฐพ๋๋ค. Kakao direct credential์ ์ฌ์ฉํ์ง ์๋๋ค. --dry-run์ ์ค์ ํค๋ฅผ REDACTED๋ก ๊ฐ๋ฆฐ๋ค.
hosted proxy ์ฌ์ฉ์๋ ํค๊ฐ ํ์ ์๋ค. self-host ์ด์์ ๋๋ direct ์ฌ์ฉ์๋ ๊ณต๊ณต๋ฐ์ดํฐํฌํธ ํค ๋ฐ๊ธ๊ณผ ๋ณ๊ฐ๋ก ๋ฐ์ดํฐ์
15134735์ ๋ณ๋ ํ์ฉ์ ์ฒญํด์ผ ํ๋ค. ์ด ๋ฐ์ดํฐ์
์ ์๋์น์ธ ๋์์ด์ง๋ง ํ์ฑํ ์ ํธ์ถ์ ์ธ์ฆ ์ค๋ฅ๊ฐ ๋ ์ ์๋ค.
Output
๊ธฐ๋ณธ ์ถ๋ ฅ์ ํ๊ตญ์ด ์์ฝ์ด๊ณ --json์ ์ ๊ทํ๋ payload๋ฅผ ์ถ๋ ฅํ๋ค. ์ฃผ์ ํ๋๋ mgmBldrgstPk, regstrKindCdNm, platPlc, newPlatPlc, sigunguCd, bjdongCd, platGbCd, bun, ji, mainPurpsCdNm, totArea, grndFlrCnt, ugrndFlrCnt, useAprDay๋ค. API๊ฐ ์ ๊ณตํ ๊ทธ ๋ฐ์ ์ ์ฉํ ํ์ ๋ถ ์๋ฌธ ํ๋์ ๋ฐ์ดํฐ์
/operation/upstream/XML source metadata๋ ๋ณด์กดํ๋ค.
Fallback order
- PNU๊ฐ ์์ผ๋ฉด ๋ฐ๋ก ๊ฑด์ถ๋ฌผ๋์ฅ route๋ฅผ ํธ์ถํ๋ค.
- ๋ฒ์ ๋ ์ฝ๋์ ํ์ง๊ฐ ์์ผ๋ฉด ๊ฑด์ถ๋ฌผ๋์ฅ API ์๋ฏธ์ ๊ฐ๋ณ ํ๋๋ก ๊ฐ์ route๋ฅผ ํธ์ถํ๋ค.
- ์ฃผ์๋ง ์์ผ๋ฉด proxy Kakao geocode๋ก ๋ฒ์ ๋ ์ฝ๋์ ํ์ง๋ฅผ ํ์ ํ ๋ค building route๋ฅผ ํธ์ถํ๋ค.
- ์ฃผ์๊ฐ ๋ชจํธํ๊ฑฐ๋ ํ์ง๊ฐ ์์ผ๋ฉด ์ฌ์ฉ์์๊ฒ ๋ ์ ํํ ์ง๋ฒ ์ฃผ์ ๋๋ PNU๋ฅผ ์์ฒญํ๋ค.
- official API ์ฅ์ , ์ธ์ฆ/์ฟผํฐ ์ค๋ฅ์๋ ๋น๊ณต์ ๋ฐ์ดํฐ๋ก ๋์ฒดํ์ง ์๋๋ค.
Failure modes
- empty result: ํด๋น ํ์ง์ ํ์ ๋ถ๊ฐ ์๊ฑฐ๋ ์
๋ ฅ ์ฝ๋/์ง๋ฒ์ด ๋ง์ง ์์
- ambiguous address: Kakao ๊ฒฐ๊ณผ๊ฐ ํ๋๋ก ํ์ ๋์ง ์์
- missing parcel or
b_code: ์ฅ์๋ช
/๋๋ก๋ช
๋ง์ผ๋ก ํ์ง๋ฅผ ํ์ ํ ์ ์์
upstream_not_configured: self-host proxy์ DATA_GO_KR_API_KEY๊ฐ ์์
- HTTP 401/403 or semantic auth XML: ๋ฐ์ดํฐ์
15134735 ํ์ฉ์ ์ฒญ/ํ์ฑํ ํ์ธ
- quota/service limit: ๊ณต๊ณต๋ฐ์ดํฐํฌํธ ์ด์ฉ๋๊ณผ ์๋น์ค ์ํ ํ์ธ ํ ์ฌ์๋
- empty/invalid XML: upstream ์๋ต ์ค๋ฅ๋ก ์ฒ๋ฆฌํ๋ฉฐ ์บ์ํ์ง ์์
- proxy down: ์ ์ ํ ์ฌ์๋ํ๊ฑฐ๋ self-host ์ด์์์๊ฒ ๋ฌธ์
Done when
- ์ฃผ์ ๋๋ PNU/๋ฒ์ ๋+ํ์ง ์
๋ ฅ์ด ํ๋์ ์กฐํ ํ์ง๋ก ์ ๊ทํ๋๋ค.
- ํ์ ๋ถ ๊ฒฐ๊ณผ์ source metadata๋ฅผ ์ ๊ณตํ๊ฑฐ๋ ๋ช
์์ ์คํจ ๋ชจ๋๋ก ์ค๋จํ๋ค.
- ๊ฑด์ถ๋ฌผ๋์ฅ ์ ๋ณด์ ๋ฑ๊ธฐ๋ถ ๊ถ๋ฆฌ๊ด๊ณ๋ฅผ ํผ๋ํ์ง ์์๋ค.