데이터 프라이버시 및 컴플라이언스
데이터가 내 인프라를 떠나나요?
아니요. 은행 명세서 파서는 상태 비저장 라이브러리로 작동합니다. 모든 처리 -- 파싱, PII 마스킹, 아카이브 추출 -- 는 로컬 런타임 메모리 내에서 발생합니다. API 호출 없음, 클라우드 서비스 없음, 텔레메트리 없음. XML 파서는 no_network=True로 강화되어 파서 수준에서 모든 아웃바운드 접근을 차단합니다.
PII 마스킹은 어떻게 작동하나요?
민감한 필드는 애플리케이션 로직에 도달하기 전에 마스킹됩니다. 파서는 채무자 이름, 채권자 이름, IBAN 및 우편 주소를 식별하여 콘솔 출력 및 스트리밍 모드에서 ***REDACTED***로 대체합니다.
- 마스킹은 기본적으로 활성화되어 있습니다 (CLI 출력 및 스트리밍 모드).
- 파일 내보내기 (CSV, JSON, Excel)는 다운스트림 처리를 위해 마스킹되지 않은 데이터를 유지합니다.
- CLI에서
--show-pii또는 API에서redact_pii=False로 전체 데이터에 옵트인합니다.
추출 프로세스는 결정론적인가요?
예 -- 매 실행마다 바이트 동일한 출력. 동일한 입력 파일이 주어지면 파서는 매번 동일한 결과를 생성합니다. 무작위성, 모델 추론, 휴리스틱 샘플링 없음. CI는 Hypothesis를 통한 속성 기반 퍼징을 포함하여 100% 브랜치 커버리지의 467개 테스트로 결정론을 강제합니다.
성능 및 확장성
은행 명세서 파서는 얼마나 빠른가요?
| 측정 | 값 |
|---|---|
| CAMT.053 처리량 | 27,000+ 트랜잭션/초 |
| PAIN.001 처리량 | 52,000+ 트랜잭션/초 |
| 트랜잭션당 지연 시간 (CAMT) | 37 마이크로초 |
| 트랜잭션당 지연 시간 (PAIN.001) | 19 마이크로초 |
| 첫 번째 결과까지의 시간 | < 2 ms |
대용량 파일은 어떻게 처리되나요?
제한된 메모리로 스트리밍 -- 파일당 50,000개 트랜잭션에서 테스트됨. parse_streaming()을 사용하여 XML 파일을 점진적으로 처리합니다. 각 트랜잭션은 딕셔너리로 생성되며, 요소는 처리 후 클리어되어 메모리 증가를 방지합니다.
설치 및 호환성
은행 명세서 파서를 어떻게 설치하나요?
pip install bankstatementparser
선택적 Polars DataFrame 지원:
pip install bankstatementparser[polars]
어떤 Python 버전이 지원되나요?
Python 3.9~3.14. 모든 버전은 CI에서 467개 테스트, 100% 브랜치 커버리지로 테스트됩니다.