배경
FSS API는 상품 링크를 주지 않아서, FSS 예금·적금 상품의 apply_url은 전부 은행 URL 스크래퍼(BankProductUrlTasklet) 결과에 의존한다.
스크래퍼가 FAIL/WARN이면 링크가 비고, PASS여도 목록 페이지나 깨진 링크가 들어간 사례가 있었다(경남 목록 링크, 신한 모바일 대체 링크 등).
반면 KFB(입출금자유예금)는 공시에 상품 링크가 있어서, 공시 링크를 기본으로 두고(은행 도메인 대조·홈페이지 링크 제외) 스크래퍼 PASS로 덮는 구조로 운영 중이다.
확인한 것 (2026-09-27, 수동 조회)
은행연합회 소비자포털에 예금·적금 비교공시가 따로 있고, 결과 행마다 은행 상품 링크가 들어 있다.
| 공시 |
검색 결과 요청 |
결과 상품 수 |
상품 링크 |
예금 (/compare/receiving_deposit_3.php) |
POST /compare/receiving_deposit_3_search_result_new2.php (FP_DepositSearch_Sort_new) |
38 |
38개 모두 있음 |
적금 (/compare/receiving_neosave.php) |
POST /compare/receiving_neosave_search_result_new.php (FP_ReceivingDepositSearch_new) |
18 |
18개 모두 있음 |
- 페이지 구조는 입출금자유예금 공시(
KfbClient/KfbFreeDepositParser)와 비슷하다: 은행 체크박스(BankSelect), 결과 행의 td.tl > a[href].
- 예:
KDB 정기예금 → https://banking.kdb.co.kr/bp/BMDEWP01N10.act?_mnuId=IBFMFM0015&PRD_C=100237000101
- 예: 신한
쏠편한 정기예금 → https://bank.shinhan.com/bank_bridge.jsp?cr=020102010110&pcd=207013512, 신한My플러스 정기예금 → ...&pcd=207013416 (신한 스크래퍼 폴백 링크와 같은 형식)
- 적금 공시 결과에는 기본 검색 조건에서 신한 상품이 없었다(조건 때문인지 미확인).
제안
KFB 입출금 상품과 같은 방식으로 FSS 예금·적금에도 공시 링크를 기본 링크로 쓰고, 스크래퍼는 검증·보완(PASS면 덮기)용으로 돌린다.
검토할 점
- FSS 상품 ↔ 공시 행 매칭: 공시 행에는 상품명과 은행만 있다(은행 코드는 FSS
fin_co_no와 같은 체계로 보임). 상품명 표기 차이(괄호 접미사, 띄어쓰기, 은행명 접두어)를 어떻게 맞출지. 매칭 실패·중복 매칭 처리.
- 공시 링크 품질: 입출금 공시에서는 은행 홈페이지 링크(전북), 404(SC
SavingDetailPop.jsp), 카테고리 목록 링크(수협 PRODNO)가 섞여 있었다. 도메인 대조만으로는 404·목록 링크를 거를 수 없다.
- 검색 조건: 예금·적금 공시는 적립방식·이자계산방식·가입방식 등 필터가 있다. 전체 상품을 받으려면 어떤 값으로 요청해야 하는지.
- 범위: 수집(raw)까지 할지, 링크 보강만 할지. 링크만이면 정규화 단계에서 붙일지 별도 step으로 둘지.
- 스크래퍼와의 관계:
ProductSyncService의 링크 보존 규칙(기존 값 유지, 비었을 때만 draft 값)과 스크래퍼 PASS 덮어쓰기가 FSS에도 그대로 맞는지.
참고
- 관련 작업: KFB 수집·링크 검증 브랜치
yuyeol3/feat/kfb-llm-enrichment (공시 링크 도메인 대조 KfbProductUrlNormalizer, 링크 보존 ProductProperty.applyDraft).
- 현재 은행 URL 스크래핑 결과(2026-09-27 로컬 ALL 실행): FSS+KFB 대상 143건 중 PASS 141, FAIL 2(KDB 입출금통장, 제주 퍼스트적금).
배경
FSS API는 상품 링크를 주지 않아서, FSS 예금·적금 상품의
apply_url은 전부 은행 URL 스크래퍼(BankProductUrlTasklet) 결과에 의존한다.스크래퍼가 FAIL/WARN이면 링크가 비고, PASS여도 목록 페이지나 깨진 링크가 들어간 사례가 있었다(경남 목록 링크, 신한 모바일 대체 링크 등).
반면 KFB(입출금자유예금)는 공시에 상품 링크가 있어서, 공시 링크를 기본으로 두고(은행 도메인 대조·홈페이지 링크 제외) 스크래퍼 PASS로 덮는 구조로 운영 중이다.
확인한 것 (2026-09-27, 수동 조회)
은행연합회 소비자포털에 예금·적금 비교공시가 따로 있고, 결과 행마다 은행 상품 링크가 들어 있다.
/compare/receiving_deposit_3.php)POST /compare/receiving_deposit_3_search_result_new2.php(FP_DepositSearch_Sort_new)/compare/receiving_neosave.php)POST /compare/receiving_neosave_search_result_new.php(FP_ReceivingDepositSearch_new)KfbClient/KfbFreeDepositParser)와 비슷하다: 은행 체크박스(BankSelect), 결과 행의td.tl > a[href].KDB 정기예금→https://banking.kdb.co.kr/bp/BMDEWP01N10.act?_mnuId=IBFMFM0015&PRD_C=100237000101쏠편한 정기예금→https://bank.shinhan.com/bank_bridge.jsp?cr=020102010110&pcd=207013512,신한My플러스 정기예금→...&pcd=207013416(신한 스크래퍼 폴백 링크와 같은 형식)제안
KFB 입출금 상품과 같은 방식으로 FSS 예금·적금에도 공시 링크를 기본 링크로 쓰고, 스크래퍼는 검증·보완(PASS면 덮기)용으로 돌린다.
검토할 점
fin_co_no와 같은 체계로 보임). 상품명 표기 차이(괄호 접미사, 띄어쓰기, 은행명 접두어)를 어떻게 맞출지. 매칭 실패·중복 매칭 처리.SavingDetailPop.jsp), 카테고리 목록 링크(수협PRODNO)가 섞여 있었다. 도메인 대조만으로는 404·목록 링크를 거를 수 없다.ProductSyncService의 링크 보존 규칙(기존 값 유지, 비었을 때만 draft 값)과 스크래퍼 PASS 덮어쓰기가 FSS에도 그대로 맞는지.참고
yuyeol3/feat/kfb-llm-enrichment(공시 링크 도메인 대조KfbProductUrlNormalizer, 링크 보존ProductProperty.applyDraft).