자격 판별 용어 불일치로 매칭 오류 발생하던 문제 해결
목차
HTML에서 파싱한 자격 조건 용어와 매칭 도구가 지원하는 옵션 목록이 어긋나 있었다. 이번 작업으로 두 데이터 소스의 어휘를 정렬(align)하고, 자격 판별 로직의 정확성을 높였다.
데이터 소스 간 용어 불일치 문제
정부 관련 서비스의 자격 판별 기능은 여러 단계의 데이터 정규화를 거친다. HTML 페이지에서 파싱한 자격 조건 목록이 있고, 백엔드 매칭 도구(match tool)가 지원하는 자격 옵션이 있다. 문제는 이 둘이 다른 형식이나 이름 규칙을 사용하고 있었다는 것.
예를 들어 HTML에서 "소득_금액" 같은 형태로 파싱되지만, 매칭 도구는 INCOME_LEVEL 같은 스네이크 케이스 대문자로 정의되어 있을 수 있다. 또는 반대로 매칭 도구에는 ["income", "asset", "age"] 세 가지만 있는데, HTML 파싱 결과에 "savings", "real_estate" 같은 추가 항목이 포함될 수도 있다.
이런 불일치는 다음 같은 상황을 만든다:
- 사용자의 자격 데이터가 HTML에서 파싱한 용어로 입력됨
- 매칭 도구가 그 용어를 인식하지 못함
- 자격 판별 로직이 "해당 자격 항목이 없다"고 판단
- 실제로는 자격이 있는데도 진행이 차단되거나 결과가 부정확함
| 단계 | HTML 파싱 | 매칭 도구 | 결과 |
|---|---|---|---|
| 용어 형식 | 다양함 (케이스, 띄어쓰기) | 정규화됨 (SNAKE_CASE) | 불일치 → 매칭 실패 |
| 범위 | 페이지마다 다를 수 있음 | 고정된 옵션 세트 | 자격 인식 누락 |
정부 서비스에서 자격 판별의 민감성
정부 관련 서비스에서 자격 판별은 단순한 비즈니스 로직이 아니라 규정 준수 이슈다. 수당 지급, 대출 한도, 혜택 적격성이 달려 있다. 용어 불일치로 인해 사용자가 받을 수 있는 혜택을 놓치거나, 반대로 부적격 사용자가 통과될 수 있다.
따라서 데이터 파이프라인의 각 단계에서 동일한 어휘(vocabulary)를 사용하는 것이 매우 중요하다. 한 곳에서 의도한 "월 소득"이 다른 곳에서는 "연 소득"으로 읽혀선 안 되는 것처럼.
이번 수정으로:
- HTML 파싱 결과의 자격 용어를 매칭 도구가 인식하는 표준 형식으로 정규화
- 자격 판별 결과의 신뢰도 상승
- 엣지 케이스(파싱했지만 매칭 도구가 모르는 자격)에 대한 명시적 처리 가능
비슷한 문제의 일반적 패턴
이런 용어 불일치 문제는 데이터가 여러 시스템을 거쳐 변환되는 구조에서 자주 발생한다:
발생 지점:
- 외부 HTML/API → 파싱 → 내부 도메인 모델
- 다양한 소스(레거시, 신규 시스템)가 같은 개념을 다른 이름으로 정의
- 규정 변경에 따라 HTML이 업데이트됐는데 로직은 못 따라감
예방책:
1. Vocab 관리: 자격 판별에 사용하는 모든 용어를 한 곳(enum, config)에 정의
2. 정규화 계층: 파싱 단계에서 즉시 표준 형식으로 변환
3. 테스트 커버리지: HTML 새 형식 추가 시 매칭 도구도 동시 업데이트 확인
4. 스키마 검증: 파싱 결과가 매칭 도구의 옵션 집합에 속하는지 확인
회고
이번 작업으로 느낀 점은, 작은 것처럼 보이는 "용어 정렬"이 얼마나 중요한 게이트키퍼 역할을 하는지였다. 특히 정부 관련 자격 판별은 사용자의 실제 이익이 걸린 만큼, 로직 단계마다 일관성 체크를 빠뜨릴 수 없다. 다음부터는 새로운 자격 항목을 추가할 때, HTML 파싱과 매칭 도구의 옵션을 함께 업데이트하는 체크리스트를 추가할 생각이다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.