법령정보 지식베이스 연계 도구 4개가 에러 없이 항상 0건 이던 장애를 복구한다. #155 (@yoonkhsc) 머지. 테스트 722 → 733.
법제처는 실재하지 않는 target 에 HTTP 200 + 빈 본문 을 돌려준다. 에러도 아니고 XML 오류 메시지도 아니라 fetchApi 가 정상 반환하고 파서가 0건을 내는 것으로 끝나, 재시도·폴백에도 걸리지 않고 사용자에게는 "해당 자료가 없다"로만 보였다.
Fixed
get_related_laws·get_term_articles·get_daily_to_legal·get_legal_to_daily가 상시 0건이던 장애 (#155):src/tools/knowledge-base.ts가 쓰던target3개(lstrmRel·lstrmJo·lawRel)가 실재하지 않는 값이었다. 각각lawService.do&target=lstrmRlt·lawService.do&target=lstrmRltJo·lawSearch.do&target=lsRlt로 바로잡는다.relType(DL/LD)은lstrmRlt에 없는 파라미터라 함께 제거했다. 재실측(2026-09-06, OC 로컬): 같은 조건type=XML응답 바이트가lstrmRel·lstrmJo·lawRel모두 0B — 아예 없는 대조군bogus123과 바이트 단위로 동일, 반면lstrmRlt4,659B /lstrmRltJo439,634B /lsRlt(건축법) 정상 응답target만 고쳐도 남던 0건 (#155): 이 세 응답은 항목을 한글 래퍼(<연계용어>·<연계법령>·<관련법령>)에 담고 필드명도 다른데, 공유 파서parseKBXML은 항목 태그를["lstrm","lstrmAI","law","jo","rel","item"]로 고정한다. 정상 동작 중인get_legal_term_kb·get_daily_term·fallbackTermSearch가 이 파서를 함께 쓰므로 공유 파서는 건드리지 않고, 연계 도구 4개 전용 파서(parseRelationXML)를 같은 파일에 두어 영향 범위를 고친 함수 4개로 닫았다- 총건수 오독 (#155):
<검색결과개수>는 연계 항목 수가 아니라 기준 용어·기준 법령의 개수(항상 1) 다. 파싱한 항목 수를 총건수로 쓴다.lawService.do는display를 무시하고 연계 조문 전문을 통째로 주므로(임대차기준 약 430KB) 건수 제한은 파서에서 건다 - 조가지번호 표기 (#155): 조번호
0024+ 조가지번호02를제24조의2로 조립한다(종전 경로의제24의2조는 존재하지 않는 조문 표기)