# 교통카드 전환: 정확성 검증과 후속 실험

## 현재 확인된 내용
2026년 7월 전환 업무에서 원주 2023.10.16–22 자료의 기존 산출물 49개를 단계별 기준으로 비교했다. 중간표의 R 중복 식별값 7행과 재생성 번호를 구분했으며 최종 혼잡도 결과는 일치했다.
2026년 9월 추가 점검은 보존된 결측보정 CSV 14개를 재대조한 것이다. 코드 전체를 다시 실행한 결과와 구분한다. 결측 표기(NA·빈칸), 숫자의 .0 표기, 행 순서를 기존 비교 기준으로 정규화하되 중복 행 수는 보존한다.

## 1. 오프라인 처리 성능 비교 — R 보관본과 현재 Python
질문: 동일한 업무 결과를 만드는 두 구현의 실행시간·메모리 사용량은 어떻게 다른가?
비교에는 R 보관본의 원주시 결측보정 코드를 사용한다. R/Python 컨테이너에서 계산을 유지하고 경로·Java 환경·대상 날짜만 조정했다. 최초 작성 버전인지는 별도 이력으로 확인하지 않았다. 실행 결과는 ../assets/work-evidence/transit-comparison.json과 포트폴리오의 비교 표를 따른다.

### 이번 측정의 사전 확정 범위
준비 실행의 비용을 확인한 뒤 원주 2023.10.16 하루 결측보정(step1·step2)을 각 2회로 한정했다. 계산이 참조하는 7일 이력 입력은 모두 제공한다. 7일 전체 배치나 시간보정·최종 혼잡도까지 측정한 결과로 설명하지 않는다. 실행 전에 별도 protocol.json에 R → Python → Python → R 교차순서, 2 CPU·24 GiB, 실행별 900초, 출력 불일치·비정상 종료 시 중단을 고정했다. 이 순서는 무작위 배정이 아니다. 이전 단일 준비 실행은 반복 통계에서 제외한다. OS 캐시를 초기화하지 않으며 공유 호스트 조건을 기록한다.

### 더 넓은 후속 측정의 설계

- 입력과 코드 버전, 하드웨어·패키지, 파라미터를 고정한다. 기준 입력은 읽기 전용이다.
- 날짜 간 이력 참조가 있으면 7일 전체를 한 실행 단위로 삼는다.
- 양쪽 사전 실행 1회로 비용과 출력 일치를 확인하고 본 측정 일정·반복 횟수를 확정한다. 자원 부담으로 계획을 바꾸면 측정 전에 기록한다.
- 각 반복 블록에서 R/Python 순서를 무작위로 정하고 직렬 실행한다. 캐시 조건을 기록하며 시스템 캐시를 임의 삭제하지 않는다.
- GNU time으로 벽시계 시간·최대 RSS·종료 상태를 기록한다. 결과 검증 시간은 파이프라인 실행시간과 분리한다.
- 반복 실행은 같은 입력에 대한 측정 안정성이지 독립 업무 사례 수가 아니다. 중앙값과 실행별 분포를 보고하며 업무시간 절감률로 확대하지 않는다.
- 실패·시간 초과도 기록한다. 양쪽 완료·출력 정확성 확인 전에는 빠른 쪽을 우수하다고 결론내리지 않는다.

## 2. 실제 업무 프로세스 A/B — 실행 대기
가설: Python 기반 개선 방식이 기존 R 방식에 비해 결과 오류를 늘리지 않으면서 수작업 시간을 줄인다. 언어뿐 아니라 입력 설정·검증 절차를 포함한 업무 방식 전체를 비교한다.

### 시작 조건
회사 승인, 실제 신규 작업, 두 방식 사용 가능성, 담당자 기록 참여, 동일한 최종 검수자를 확보한다. 승인 없이 업무를 배정하거나 과거 수행을 무작위 실험으로 재분류하지 않는다.

### 배정과 계측
지역·규모·난도·담당자를 기록한 작업 묶음을 배정 단위로 한다. 동일 작업을 같은 담당자가 두 번 수행하는 방식은 학습 효과가 있어 본 실험의 기본 설계에서 제외한다. 사전 시험으로 작업 간 이력 공유나 간섭을 확인하고 필요하면 배정 단위를 담당자·배치 단위로 올린다.

주 지표는 작업당 수작업 분(minute), 보조 지표는 전체 완료시간·재작업 횟수, 안전 지표는 동일 기준의 최종 검수 오류다. 수작업은 입력 확인·설정·오류 수정·결과 확인 구간의 시작/종료 이벤트로 기록하며 기계 실행 대기와 구분한다. 중단·외부 대기는 별도 상태로 남긴다.

사전 시험의 변동성과 업무상 의미 있는 시간 차이를 바탕으로 표본 수·종료 일정·분석 단위·제외 기준을 확정한 뒤 본 실험을 시작한다. 담당자·배치 내 상관을 무시해 로그 건수를 독립 표본으로 세지 않는다. 배정된 작업 전체의 완료·실패·기록 누락을 함께 보고한다. 중도에 유리한 결과가 나왔다는 이유로 종료하지 않는다.

### 판단과 공개
시간 차이의 효과 크기·불확실성과 결과 오류를 함께 해석한다. 표본이 부족하거나 그룹 간 난도·담당자 구성이 다른 경우 결론을 유보한다. 유의하지 않은 결과를 동일성 입증으로 쓰지 않는다. 개인 한 명의 결과는 해당 업무 환경의 탐색적 결과로 제한한다.

현재 배정·참여·측정 기록은 없다. 이 문서는 설계안이며 A/B 수행 완료의 증거가 아니다. 공개물에는 집계 결과만 싣고 카드번호·개별 이동·내부 작업자 식별값은 포함하지 않는다.
