@dssp/integration-allbaro
v1.0.0-alpha.84
Published
올바로(Allbaro) 폐기물적법처리시스템 연계용 Things-Factory 통합 태스크. headless-connector 위에서 올바로 사이트에 로그인하여 건설폐기물 발생량 등을 조회한다.
Downloads
498
Readme
@dssp/integration-allbaro
올바로(Allbaro) 폐기물적법처리시스템 연계용 Things-Factory 통합 패키지.
개요
올바로는 공식 외부 API 가 없으므로 시공사 회원 계정으로 로그인해 화면에서 건설폐기물 발생량 등을 추출한다. 본 패키지는 다음 3 가지 컴포넌트로 구성:
- Connector (
allbaro-connector) — 올바로 사이트 URL/로그인 셀렉터를 내부 기본값으로 갖는 올바로 전용 connector. 사용자는 Connection 생성 시 올바로 시공사 ID/PW 만 입력. 내부적으로HeadlessConnector의 풀· 세션·쿠키 캐시 인프라를 재사용. - Runner (
withManagedPage) — 자원 누수 방지(자식 창 추적 force close, wall-clock 5분 타임아웃) + 프로젝트간 상태 격리(cookies/ localStorage/sessionStorage clear) wrapper. 모든 task 가 이 wrapper 안에서 실행. - Task — 올바로 화면 navigation 과 데이터 추출만 책임.
기존 Python Selenium PoC (dkpi/server/integrations/olbaro/) 의 흐름을
Things-Factory 통합 엔진으로 이식.
제공 Connector
allbaro-connector
Connection params (사용자 입력):
username(필수) — 올바로 시공사 회원 IDpassword(필수, secret) — 비밀번호- 기타 셀렉터/path 는 사이트 업데이트 대응용 (고급, 평소 비워둠)
제공 태스크
allbaro-fetch-waste-plan — 건설폐기물 처리계획(예상량) 조회
기초정보관리 > 증명서(허가증) 변경요청/조회/수정 > "건설폐기물 처리계획 신고증명서" 행 [변경] 클릭 → 증명서정보변경요청 화면의 "4.건설폐기물 발생 예상량 및 처리계획" 표에서 폐기물 종류별 예상량 + 총량 추출.
allbaro-fetch-waste-by-year — 연도별 건설폐기물 발생량
매칭 키: 현장명 (siteName) — 올바로에 등록된 사업장 명 텍스트 일치.
주소가 아니라는 점에 주의.
추출 결과:
{
"siteName": "은평 시니어레지던스 개발사업 현장",
"records": [
{ "year": 2024, "totalText": "32,575.820", "totalTon": 32575.82 },
{ "year": 2025, "totalText": "12,103.450", "totalTon": 12103.45 }
],
"source": "allbaro",
"fetchedAt": "2026-..."
}사용 흐름
- Connection 생성 — type
allbaro-connector. params 에 올바로 시공사 계정 (username/password) 만 입력. endpoint/로그인 셀렉터는 connector 가 자동 주입. - Scenario step 추가 — task
allbaro-fetch-waste-by-year또는allbaro-fetch-waste-plan. - step output 은 다음 step (예: KPI 자동 등재) 의
context.data로 전달.
자원 누수 / 상태 격리 (Runner)
모든 task 는 withManagedPage wrapper 안에서 실행되어 다음을 자동 처리:
- 자식 창 추적:
browser.on('targetcreated')로 작업 중 열리는 모든 page (예: 상세 마법사 새 창) 를 추적, finally 에서 강제 close (참조 유실 대비). - Wall-clock 타임아웃: 5분 초과 시 강제 종료 + 정리.
- 상태 격리: task 종료 시점에 page 의
localStorage/sessionStorage/cookies를 모두 clear. 다른 프로젝트 자격증명 task 와의 교차오염 방지. (Connection.cookies in-memory 캐시는 영향 없음)
사이트 DOM 의존성 / 주의
올바로 사이트는 IBSheet 기반이라 다음 DOM 패턴에 의존:
- 현장명 셀:
td.GMCell b텍스트 일치 → 더블클릭으로 새 창 - 새 창의
4.건설폐기물 발생량 및 처리현황탭p요소 클릭 - 합계 셀:
td.GMSumCell.HideCol2C6(총발생량 컬럼)
사이트 업데이트 시 이 셀렉터들의 우선 점검 필요.
후속 태스크 후보 (미구현)
allbaro-fetch-cert— 최신 처리계획 신고증명서 엑셀 다운로드 (PoColbaro_예상량.py대응)allbaro-fetch-waste-by-type— 폐기물 종류별 세분 집계allbaro-fetch-monthly— 월별 추이
참조 자료
packages/dkpi/docs/KISCON 및 올바로 메뉴 접근 경로정리_0212_김다희.pdf —
실제 사이트의 메뉴 경로와 화면 캡쳐. 본 패키지의 두 태스크가 따르는 흐름의 출처.
약관 / 보안
시공사 계정 자동 로그인 + 화면 스크래핑은 한국환경공단 올바로 이용약관 검토가 필요. 운영 도입 전 법무 협의 권장.
