피드로 돌아가기
Dev.toBackend
원문 읽기
Modulo-11 기반 Local Validation으로 API 호출 5% 절감
Validar DNI y RUC peruanos sin llamar a una API (módulo-11 en TypeScript)
AI 요약
Context
KYC 및 온보딩 과정에서 DNI/RUC 검증을 위해 외부 API(SUNAT, RENIEC)에 의존하는 구조. 단순 오타나 무작위 입력값으로 인한 불필요한 API 호출 및 네트워크 Latency 발생.
Technical Solution
- API 호출 전 단계에 Offline Validation 레이어를 추가한 필터링 구조 설계
- DNI 검증을 위한 8자리 숫자 정규식 및 동일 숫자 반복 시퀀스 차단 로직 적용
- RUC 검증을 위한 Modulo-11 알고리즘 기반의 Check-digit 계산 방식 도입
- RUC 접두사(10, 15, 17, 20) 분석을 통한 납세자 유형(Entity Type) 사전 분류 로직 구현
- Zero-dependency 기반의 TypeScript ESM 모듈화를 통한 런타임 오버헤드 최소화
Impact
- Modulo-11 로컬 검증 도입을 통한 유효하지 않은 Submission 약 5% 사전 제거
Key Takeaway
외부 API 의존성이 높은 시스템에서 비용과 Latency를 줄이기 위해, 데이터의 구조적 특성을 이용한 Client-side 또는 Edge-side의 사전 검증 계층 구축 필요.
실천 포인트
1. 외부 API 호출 전 데이터 포맷 및 Check-sum 검증 로직이 존재하는지 확인
2. 입력값의 단순 패턴(반복 숫자 등)을 제거하는 정규식 필터링 적용
3. 데이터 접두사 정보를 활용한 비즈니스 로직 분기 가능성 검토
4. 외부 라이브러리 도입 시 Zero-dependency 및 ESM 지원 여부 확인