피드로 돌아가기
Dev Log: When the design contradicts itself, stop typing
Dev.toDev.to
Backend

False Positive 방지를 위한 엄격한 데이터 추론 매칭 설계

Dev Log: When the design contradicts itself, stop typing

Ernesto Herrera Salinas2026년 6월 20일4intermediate

Context

C# NuGet 패키지 Munchausen의 데이터 생성기 설계를 위한 시맨틱 카탈로그 구축 과정. 일반적인 매칭 규칙과 특정 도메인(Vehicle)의 예외 규칙이 충돌하며 발생하는 설계 모순 해결이 핵심 과제.

Technical Solution

  • member name 정규화를 통한 후보군 탐색 및 Value Type 일치 여부 검증 프로세스 구축
  • Model Hint 불일치 시 Confidence Level을 하향 조정하는 계층적 필터링 로직 적용
  • 정교한 데이터 생성보다 '잘못된 데이터 제공 방지'를 우선하여 엄격한 매칭 규칙(Strict Reading) 채택
  • 후보 모델 내 Optional Override 필드를 추가하여 일반 규칙과 개별 예외 사항의 공존 구조 설계
  • 구현체와 독립적인 테스트용 기대값 집합을 별도로 구축하여 데이터 오염을 방지하는 Conformance Test 도입

- 추론 엔진 설계 시 '정확도 향상'보다 '잘못된 추론의 가시성 확보'가 유지보수 비용을 낮추는지 검토 - 설정 데이터(Catalog)의 무결성을 보장하기 위해 구현체와 분리된 독립적 검증 데이터셋 구축 권장 - 일반 규칙과 예외 규칙 충돌 시, 사용자 경험 관점에서 False Positive와 False Negative 중 더 위험한 케이스를 정의하고 이에 따라 우선순위 결정

원문 읽기