체카
경력근거: 기아·벤츠·BMW·볼보 등 주요 완성차 브랜드의 인증중고차 상품화를 맡고 있습니다.
※ 실제 산출물이 아닌 AI 예측 시안입니다.
체카는 기아와 벤츠, BMW, 볼보의 인증중고차 상품화를 맡고 그 과정을 소프트웨어로 표준화하는 회사이며, 입고부터 출고까지 전 과정을 자체 플랫폼으로 운영합니다. 브랜드별 통과선이 한 회사 안에 나란히 쌓인다는 점이 이 판정을 성립시킵니다. 같은 타이어 트레드 항목도 기아와 볼보의 통과선이 다르고, 그 차이를 아는 곳이 여러 브랜드를 함께 받는 상품화 사업자이기 때문입니다. 전국 파트너사를 API 로 연결한다는 대목도 이 화면에서 뜻을 가집니다. 손이 여럿이면 단위와 항목 이름이 갈라져 들어오고, 그 갈라짐을 출고 앞에서 잡아야 인증 이름이 지켜집니다. 다만 이 포트폴리오는 기준표 대조와 단위 환산, 그 결과를 읽는 화면을 보여줍니다. 실제 정비 판단이나 브랜드 인증 심사 실무의 전문성은 주장하지 않습니다. 기준표와 측정값을 견주는 데까지가 제가 만들어 본 범위이고, 차를 직접 보고 상품화 여부를 가리는 판단은 현장에서 배워야 하는 자리입니다.
체카는 기아와 벤츠, BMW, 볼보의 인증중고차 상품화를 맡고 그 과정을 소프트웨어로 표준화한다고 공고가 밝혔습니다. 같은 항목이라도 브랜드마다 통과선이 달라, 검수 결과를 브랜드 기준표와 맞춰 보는 자리가 상품화의 마지막 관문입니다.
상품화 공정 운영 플랫폼과 현장 작업자용 화면이 주요업무에 함께 적혀 있고, 백엔드와 프론트엔드를 가리지 않는 자리입니다. 검수 태블릿이 남긴 값을 그대로 받아 판정 화면까지 잇는 일이 이 자리의 일상입니다.
완성차사와 외부 파트너사 API 연동이 주요업무이고 데이터 정합성 관리 경험이 우대사항입니다. 전국 파트너사가 올린 검수 값이 브랜드 기준표와 단위부터 어긋나는 일이 정합성 문제의 실물입니다.
검수 태블릿이 남긴 항목별 측정값과 브랜드별 인증 기준표를 받아, 측정 단위를 기준표 단위로 옮긴 뒤 항목마다 통과선을 넘었는지 봅니다. 통과선은 항목에 따라 이상 조건이기도 하고 이하 조건이기도 해서 방향까지 기준표에서 읽어 적용합니다. 브랜드가 반드시 보라고 정한 항목인데 그 차의 기록에 한 줄도 없는 경우와, 현장이 적었는데 기준표에 없는 항목도 따로 세워, 상품화 담당자가 출고 전에 어느 차를 되돌릴지 정합니다.
출고 전 차를 확인하는 체카 상품화 공정 담당자
출고 대기 차량은 하루 수십 대씩 나가는데 브랜드마다 통과선과 필수 항목이 다르고 현장이 적는 단위도 제각각입니다. 기준표를 기계가 들고 항목마다 견주면 되돌릴 차가 네 갈래로 나뉘고, 인증 이름을 달고 나간 뒤 반품으로 돌아오는 일이 줄어듭니다.
검수 기록과 브랜드 기준표, 단위 환산표를 올리면 항목마다 네 판정 중 하나가 붙고 사유별로 나오는 관리자 페이지입니다. 검수 기록은 태블릿이 이미 내보낸 표 형태를 받는다고 두고 시작하며, 사진 판독이나 자동 검수 모델은 다루지 않습니다.
검수 기록 320건에 손으로 매긴 정답 판정을 붙여 자동 판정과 대조하고 사유별 일치율을 냅니다. 2주차부터 AWS 로 배포해 담당자가 웹 주소로 들어와 자기 출고 목록을 올려 봅니다.
항목 판정을 차 한 대로 모아 되돌릴 사유와 남은 작업을 적은 출고 판정서를 만들고, 파트너사에 그대로 넘길 수 있는 파일로 내려받는 단계입니다.
담당자가 검수 기록 표와 브랜드 기준표를 올리면 되돌릴 차가 사유별로 화면에 나오는 과정을 시연합니다.
정답 판정을 손으로 매긴 검수 기록 320건을 자동 판정과 맞춰 사유별 일치율을 냅니다. 측정값도 기준표도 작성자가 지어낸 것이라, 이 값은 브랜드 인증 심사의 성능과 무관하고 더미 표에서 빠뜨리는 항목이 없는지 세어 본 숫자입니다.
검수 파일 자리에 망가진 표 21가지를 먼저 올려 봅니다. 측정 단위 칸이 비었거나 환산표에 없는 단위가 들어오거나 한 차에 같은 항목이 두 시각으로 들어와도 화면이 서고, 견줄 기준 행이 없는 항목은 판정 자리 대신 hedge 로 내려갑니다.
차 2천 대와 항목 6만 건 규모에서 판정 한 바퀴의 시간을 재고, 출고 직전에 눌러도 라인이 기다리지 않는지 봅니다.
검수 기록 320건의 사유별 일치율, 잰 것은 그것 하나입니다. 일치율은 작성자가 꾸민 검수 기록에 작성자가 매긴 정답을 붙여 나온 숫자이고, 반품이 실제로 줄었는지는 체카의 출고 이력과 브랜드 반려 기록이 있어야 나옵니다. 그 이력이 붙는 날 그대로 돌아가도록 대조 러너와 정답 판정서 서식을 먼저 짜 두었습니다.
검수 측정값과 브랜드 기준표를 작성자가 지어내고 정답까지 작성자가 매긴 터라, 사유별 일치율은 출고 판정의 정확도가 아니라 이 화면이 도는 범위를 보이는 숫자입니다. 면접에서는 그 범위와, 체카의 실제 검수 기록이 오면 바로 다시 잰다는 준비 상태까지만 말씀드립니다.
측정값을 적은 손과 정답을 매긴 손이 같으니 둘이 맞는 것은 증거가 되지 못합니다. 그래서 측정 단위 칸이 빈 기록, 통과선과 소수점까지 같은 측정값, 기준표에 없는 항목 이름을 일부러 섞어 소수점 한 자리와 빈 단위 칸에서 판정이 어느 쪽으로 가는지 보이게 했습니다.
이 포트폴리오는 기준표 대조와 단위 환산, 그 결과를 읽는 화면을 보여줍니다. 정비 판단이나 브랜드 인증 심사 실무의 깊이는 주장하지 않습니다. 판정은 환산과 대소 비교가 하고 모델은 현장이 읽을 문장만 씁니다.
기준 미달이 곧 출고 불가는 아닙니다. 소모품은 갈아 끼우면 그 자리에서 통과로 바뀌므로, 이 판정은 확정이 아니라 담당자가 작업 지시를 낼 후보로 냅니다.
실제 브랜드 기준은 연식과 주행거리에 따라 통과선이 갈리고 사진 판정이 섞이는 항목도 있습니다. 여기서는 숫자로 재는 항목만 다루므로, 조건부 통과선과 사진 항목을 붙이는 일은 도입 단계 과제로 둡니다.
① 인라인 샘플 · ② seed.json 다운로드 · ③ 증강 프롬프트. 세 층 모두 동일한 schema 에서 파생.
검수 태블릿이 남긴 항목별 측정값입니다. 판정의 대상 표이며, 측정 단위 칸이 비어 있는 기록과 기준표에 없는 항목 이름을 담아 값이 모자란 채로도 판정이 서는 경로를 보여줍니다.
| result_no | vin | brand | item_code | measured_value | measured_unit | inspected_at | inspector_id |
|---|---|---|---|---|---|---|---|
| IR-40201 | KNAE551CBPA334417 | 기아 | BRK-FRONT-PAD | 3.1 | mm | 2026-09-20T10:12:00 | INS-011 |
| IR-40202 | KNAE551CBPA334417 | 기아 | TIRE-TREAD-FL | 4 | mm | 2026-09-20T10:20:00 | INS-011 |
| IR-40203 | KNAE551CBPA334417 | 기아 | UNDER-RUST | 1 | 등급 | 2026-09-20T10:31:00 | INS-011 |
| IR-40204 | KNAE551CBPA334417 | 기아 | PAINT-THICK-DOOR | 7.5 | mil | 2026-09-20T10:44:00 | INS-011 |
| IR-40205 | KNAE551CBPA334417 | 기아 | ODO-KM | 62,000 | km | 2026-09-20T10:52:00 | INS-011 |
아래 JSON Schema 에 맞는 검수 기록 행을 더 만들어 주세요. {"type":"object","properties":{"result_no":{"type":"string"},"vin":{"type":"string"},"brand":{"type":"string"},"item_code":{"type":"string"},"measured_value":{"type":["number","null"]},"measured_unit":{"type":["string","null"]},"inspected_at":{"type":"string"},"inspector_id":{"type":"string"}},"required":["result_no","vin","brand","item_code","measured_value","measured_unit","inspected_at","inspector_id"]} 쉬운 데이터만 만들지 말 것 — 다음 하드 케이스를 의도적으로 섞어라: (1) measured_unit 이 null 인 기록, (2) 기준표 단위와 다른 단위로 적힌 기록, (3) cpo_standards 에 없는 item_code 를 적은 기록, (4) 통과선과 소수점까지 같은 measured_value. 차대번호는 17자리로 쓰고, 생성한 행은 반드시 위 스키마를 통과해야 하며, 형식을 깨뜨리는 시도는 별도로 3건만 표시해 두세요.{"type":"object","properties":{"result_no":{"type":"string"},"vin":{"type":"string"},"brand":{"type":"string"},"item_code":{"type":"string"},"measured_value":{"type":["number","null"]},"measured_unit":{"type":["string","null"]},"inspected_at":{"type":"string"},"inspector_id":{"type":"string"}},"required":["result_no","vin","brand","item_code","measured_value","measured_unit","inspected_at","inspector_id"]}브랜드마다 항목별 통과선과 비교 방향, 필수 여부를 적은 기준 표입니다. 같은 항목 코드라도 브랜드에 따라 통과선이 다르게 서 있습니다.
| standard_no | brand | item_code | item_name | threshold | unit | compare_dir | is_required |
|---|---|---|---|---|---|---|---|
| STD-KIA-0117 | 기아 | BRK-FRONT-PAD | 앞 브레이크 패드 두께 | 5 | mm | 이상 | true |
| STD-KIA-0118 | 기아 | TIRE-TREAD-FL | 앞좌측 타이어 트레드 깊이 | 4 | mm | 이상 | true |
| STD-KIA-0121 | 기아 | UNDER-RUST | 하부 부식 등급 | 2 | 등급 | 이하 | true |
| STD-KIA-0130 | 기아 | PAINT-THICK-DOOR | 운전석 도어 도장 두께 | 180 | um | 이하 | false |
| STD-MB-0204 | 벤츠 | BRK-FRONT-PAD | 앞 브레이크 패드 두께 | 6 | mm | 이상 | true |
아래 JSON Schema 에 맞는 브랜드 기준표 행을 더 만들어 주세요. {"type":"object","properties":{"standard_no":{"type":"string"},"brand":{"type":"string"},"item_code":{"type":"string"},"item_name":{"type":"string"},"threshold":{"type":"number"},"unit":{"type":"string"},"compare_dir":{"type":"string","enum":["이상","이하"]},"is_required":{"type":"boolean"}},"required":["standard_no","brand","item_code","item_name","threshold","unit","compare_dir","is_required"]} 쉬운 데이터만 만들지 말 것 — 다음 하드 케이스를 의도적으로 섞어라: (1) 같은 item_code 인데 브랜드마다 threshold 가 다른 행, (2) compare_dir 이 이하인 항목, (3) threshold 가 0 인 항목, (4) is_required 가 거짓인 항목. 생성한 행은 반드시 위 스키마를 통과해야 합니다.{"type":"object","properties":{"standard_no":{"type":"string"},"brand":{"type":"string"},"item_code":{"type":"string"},"item_name":{"type":"string"},"threshold":{"type":"number"},"unit":{"type":"string"},"compare_dir":{"type":"string","enum":["이상","이하"]},"is_required":{"type":"boolean"}},"required":["standard_no","brand","item_code","item_name","threshold","unit","compare_dir","is_required"]}현장이 쓰는 단위에서 기준표 단위로 옮기는 계수를 적은 표입니다. 환산값은 이 계수를 곱해 구하며 판정은 환산한 값으로 합니다.
| conv_no | from_unit | to_unit | factor | conv_note |
|---|---|---|---|---|
| CV-001 | mm | mm | 1 | 기준표와 같은 단위로 적힌 경우입니다. |
| CV-002 | cm | mm | 10 | 현장 태블릿에서 cm 로 적어 넘어오는 항목이 있습니다. |
| CV-003 | mil | um | 25.4 | 도장 두께계가 mil 단위로 출력되는 기기가 있습니다. |
| CV-004 | um | um | 1 | 도장 두께의 기준 단위입니다. |
| CV-005 | 등급 | 등급 | 1 | 부식 등급은 환산하지 않습니다. |
아래 JSON Schema 에 맞는 단위 환산 행을 더 만들어 주세요. {"type":"object","properties":{"conv_no":{"type":"string"},"from_unit":{"type":"string"},"to_unit":{"type":"string"},"factor":{"type":"number"},"conv_note":{"type":"string"}},"required":["conv_no","from_unit","to_unit","factor","conv_note"]} 쉬운 데이터만 만들지 말 것 — 다음 하드 케이스를 의도적으로 섞어라: (1) from_unit 과 to_unit 이 같아 factor 가 1 인 행, (2) 소수 계수가 붙는 행, (3) 개수나 등급처럼 환산하지 않는 단위 행. 이 표에 넣는 줄은 검수 기록에서 한 번은 실제로 걸리는 단위여야 합니다. 생성한 행은 반드시 위 스키마를 통과해야 합니다.{"type":"object","properties":{"conv_no":{"type":"string"},"from_unit":{"type":"string"},"to_unit":{"type":"string"},"factor":{"type":"number"},"conv_note":{"type":"string"}},"required":["conv_no","from_unit","to_unit","factor","conv_note"]}| TypeScript | 검수 기록과 판정 결과의 필드 모양을 한 곳에 정의해 현장 화면과 서버가 같은 형태를 씁니다. |
| React | 사유별 목록과 차 한 대를 펼쳐 보는 상세, 브랜드 기준표를 그리는 화면입니다. |
| Node.js | 검수 파일을 받아 판정기에 넘기고 결과를 화면으로 돌려주는 API 서버입니다. |
| Python | 단위 환산과 기준선 비교, 필수 항목 대조를 담는 판정 엔진의 언어입니다. |
| AWS | 2주차부터 배포와 운영을 맡습니다. 판정 결과와 올린 검수 파일을 S3 에 남기고 RDS 로 저장소를 띄우며, 컨테이너로 판정 엔진을 올립니다. |
| 파트너사 API 연동 | 전국 파트너사가 올리는 검수 값을 이 편의 입력 스키마로 받아들이는 자리이며, 단위와 항목 코드가 갈라져 들어오는 지점을 판정 앞단에서 맞춥니다. |
| 모니터링 | 3주차에 출고 판정서 생성이 실패한 차량과 기준표에 없는 항목 발생 건수를 지표로 남겨 알림으로 받습니다. |
| LLM | 판정이 정해진 뒤 되돌릴 사유를 현장 작업자가 읽을 한 문장으로 바꿉니다. |
✗ fail → 기준표 밖 항목이 전체의 두 자리 비율이면 항목 코드 체계를 브랜드별로 다시 맞춘 뒤 판정을 돌립니다.
✓ pass → 2주차 정답 대조와 AWS 배포를 이어서 붙입니다.
✗ fail → 어긋난 자리를 모아 단위 환산 규칙과 필수 항목 판정 범위를 다시 봅니다.
✓ pass → 3주차 출고 판정서 생성으로 넘어갑니다.
위 예측 UI 는 3주차까지 완주했을 때의 화면입니다. 1주차에 실제로 만드는 것은 아래 표시된 화면 하나입니다.
verdict사유 라벨 · target_no + 한 줄 요약(근거 수치 포함)화면·코드·면접에서 이 단어를 그대로 씁니다. 키는 출력 스키마의 enum 과 같습니다.
기준 충족기준 충족기준 미달기준 미달검수하지 않은 필수 항목필수 항목 빠짐기준표에 없는 항목기준표 밖 항목출고 대기 차의 항목 하나가 브랜드 기준표와 견줘 어떤 판정을 받는지 남기는 형식입니다. 판정은 규칙이 정하고 현장이 읽을 한 문장만 모델이 씁니다.
{"type":"object","properties":{"target_no":{"type":"string"},"target_kind":{"type":"string","enum":["검수 기록","기준 항목"]},"vin":{"type":"string"},"brand":{"type":"string"},"item_code":{"type":"string"},"verdict":{"type":"string","enum":["기준 충족","기준 미달","검수하지 않은 필수 항목","기준표에 없는 항목"]},"converted_value":{"type":["number","null"],"description":"measured_value 에 unit_conversion.factor 를 곱해 기준표의 unit 으로 맞춘 값입니다. measured_unit 이 비어 있으면 기준표 단위로 적힌 것으로 보고 factor 1 을 씁니다. 견줄 기준 행이 없으면 비웁니다."},"threshold":{"type":["number","null"]},"compare_dir":{"type":["string","null"]},"evidence":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"agg":{"type":["string","null"]},"value":{}},"required":["field","value"]}},"summary":{"type":"string"},"hedge":{"type":["string","null"]}},"required":["target_no","target_kind","vin","brand","item_code","verdict","converted_value","evidence","summary"]}[
{
"target_no": "IR-40201",
"target_kind": "검수 기록",
"vin": "KNAE551CBPA334417",
"brand": "기아",
"item_code": "BRK-FRONT-PAD",
"verdict": "기준 미달",
"converted_value": 3.1,
"threshold": 5,
"compare_dir": "이상",
"evidence": [
{
"field": "result_no",
"value": "IR-40201"
},
{
"field": "measured_value",
"value": 3.1
},
{
"field": "measured_unit",
"value": "mm"
},
{
"field": "factor",
"value": 1
},
{
"field": "threshold",
"value": 5
},
{
"field": "item_name",
"value": "앞 브레이크 패드 두께"
}
],
"summary": "기아 인증 기준은 앞 브레이크 패드 두께 5.0mm 이상인데 이 차는 3.1mm 로 측정됐습니다.",
"hedge": null
},
{
"target_no": "IR-40204",
"target_kind": "검수 기록",
"vin": "KNAE551CBPA334417",
"brand": "기아",
"item_code": "PAINT-THICK-DOOR",
"verdict": "기준 미달",
"converted_value": 190.5,
"threshold": 180,
"compare_dir": "이하",
"evidence": [
{
"field": "result_no",
"value": "IR-40204"
},
{
"field": "measured_value",
"value": 7.5
},
{
"field": "measured_unit",
"value": "mil"
},
{
"field": "factor",
"value": 25.4
},
{
"field": "threshold",
"value": 180
},
{
"field": "compare_dir",
"value": "이하"
}
],
"summary": "도장 두께계가 mil 로 적은 7.5 를 um 로 옮기면 190.5um 라, 운전석 도어 도장이 기아 기준 180um 이하를 넘습니다.",
"hedge": "도장이 두꺼운 것과 사고 이력은 다른 이야기라, 도어 교환 기록은 현장에서 따로 확인해야 합니다."
},
{
"target_no": "IR-40218",
"target_kind": "검수 기록",
"vin": "WBA5R7C50KAJ77731",
"brand": "BMW",
"item_code": "TIRE-TREAD-FL",
"verdict": "기준 미달",
"converted_value": 2.9,
"threshold": 4,
"compare_dir": "이상",
"evidence": [
{
"field": "result_no",
"value": "IR-40218"
},
{
"field": "measured_value",
"value": 0.29
},
{
"field": "measured_unit",
"value": "cm"
},
{
"field": "factor",
"value": 10
},
{
"field": "threshold",
"value": 4
},
{
"field": "item_name",
"value": "앞좌측 타이어 트레드 깊이"
}
],
"summary": "현장에서 cm 로 적은 0.29 를 mm 로 옮기면 2.9mm 라, BMW 기준 4.0mm 에 1.1mm 모자랍니다.",
"hedge": null
},
{
"target_no": "STD-MB-0207",
"target_kind": "기준 항목",
"vin": "WDDZF4JB7JA322208",
"brand": "벤츠",
"item_code": "UNDER-RUST",
"verdict": "검수하지 않은 필수 항목",
"converted_value": null,
"threshold": 1,
"compare_dir": "이하",
"evidence": [
{
"field": "standard_no",
"value": "STD-MB-0207"
},
{
"field": "item_name",
"value": "하부 부식 등급"
},
{
"field": "is_required",
"value": true
},
{
"field": "result_no",
"agg": "count",
"value": 0
}
],
"summary": "벤츠 인증에 반드시 들어가는 하부 부식 등급이 이 차의 검수 기록에 한 줄도 없습니다.",
"hedge": "리프트 점검을 건너뛴 것인지 기록만 빠진 것인지는 현장에서 확인해야 갈라집니다."
},
{
"target_no": "IR-40232",
"target_kind": "검수 기록",
"vin": "YV1RS61T942250562",
"brand": "볼보",
"item_code": "LAMP-REAR-COND",
"verdict": "기준표에 없는 항목",
"converted_value": null,
"threshold": null,
"compare_dir": null,
"evidence": [
{
"field": "result_no",
"value": "IR-40232"
},
{
"field": "item_code",
"value": "LAMP-REAR-COND"
},
{
"field": "brand",
"value": "볼보"
},
{
"field": "standard_no",
"agg": "count",
"value": 0
}
],
"summary": "현장이 적은 리어램프 결로 항목은 볼보 기준표에 없어 합격도 불합격도 매기지 못합니다.",
"hedge": "브랜드가 기준표에 새 항목을 넣기 전까지는 이 줄을 참고 기록으로만 둡니다."
},
{
"target_no": "IR-40202",
"target_kind": "검수 기록",
"vin": "KNAE551CBPA334417",
"brand": "기아",
"item_code": "TIRE-TREAD-FL",
"verdict": "기준 충족",
"converted_value": 4,
"threshold": 4,
"compare_dir": "이상",
"evidence": [
{
"field": "result_no",
"value": "IR-40202"
},
{
"field": "measured_value",
"value": 4
},
{
"field": "factor",
"value": 1
},
{
"field": "threshold",
"value": 4
},
{
"field": "compare_dir",
"value": "이상"
}
],
"summary": "타이어 트레드가 기아 기준과 같은 4.0mm 라 이상 조건을 만족해 통과합니다.",
"hedge": null
},
{
"target_no": "IR-40241",
"target_kind": "검수 기록",
"vin": "KNAE551CBPA349903",
"brand": "기아",
"item_code": "TIRE-TREAD-FL",
"verdict": "기준 충족",
"converted_value": 5.5,
"threshold": 4,
"compare_dir": "이상",
"evidence": [
{
"field": "result_no",
"value": "IR-40241"
},
{
"field": "measured_value",
"value": 5.5
},
{
"field": "measured_unit",
"value": null
},
{
"field": "unit",
"value": "mm"
},
{
"field": "threshold",
"value": 4
}
],
"summary": "타이어 트레드 5.5 는 기아 기준 4.0mm 를 넘어 통과합니다.",
"hedge": "측정 단위 칸이 비어 있어 기준표 단위인 mm 로 적힌 것으로 보고 견줬습니다."
},
{
"target_no": "IR-40240",
"target_kind": "검수 기록",
"vin": "KNAE551CBPA349903",
"brand": "기아",
"item_code": "BRK-FRONT-PAD",
"verdict": "기준 충족",
"converted_value": 6.8,
"threshold": 5,
"compare_dir": "이상",
"evidence": [
{
"field": "result_no",
"value": "IR-40240"
},
{
"field": "measured_value",
"value": 6.8
},
{
"field": "factor",
"value": 1
},
{
"field": "threshold",
"value": 5
},
{
"field": "item_name",
"value": "앞 브레이크 패드 두께"
}
],
"summary": "앞 브레이크 패드가 6.8mm 로 기아 기준 5.0mm 를 넘어 통과합니다.",
"hedge": null
}
][자동 검증 · 코드가 판정합니다] 1. verdict 가 네 값 중 하나이고 target_kind 가 검수 기록과 기준 항목 두 값 중 하나인지 확인합니다. 규칙이 정한 값이라 모델이 다른 값을 적으면 그 응답을 버립니다. 2. target_no·target_kind·vin·brand·item_code·verdict·converted_value·evidence·summary 필드가 빠짐없이 존재하는지 확인합니다. 3. converted_value 가 measured_value 에 factor 를 곱한 값과 같은지 다시 계산합니다. factor 는 from_unit 이 그 기록의 measured_unit 이고 to_unit 이 그 기준 행의 unit 인 unit_conversion 행에서 가져옵니다. 다만 measured_unit 이 비어 있으면 factor 1 을 쓰고 그 사실을 hedge 에 적습니다. 4. 기준 미달은 compare_dir 이 이상일 때 converted_value 가 threshold 보다 작은지, 이하일 때 threshold 보다 큰지 다시 계산합니다. 원시 measured_value 로는 견주지 않습니다 — 단위가 갈린 기록에서 방향이 뒤집힙니다. 5. 기준 충족은 같은 비교에서 통과선을 만족하는지 다시 계산합니다. 통과선과 값이 같으면 이상 조건과 이하 조건 모두 충족으로 둡니다. 6. 검수하지 않은 필수 항목은 is_required 가 참인 그 브랜드의 item_code 가 그 vin 의 inspection_results.item_code 에 하나도 없는지 다시 계산합니다. 7. 기준표에 없는 항목은 그 기록의 item_code 가 같은 brand 의 cpo_standards.item_code 어디에도 없는지 다시 계산합니다. 8. evidence 의 field 이름이 입력에 있는 컬럼인지 대조합니다. 없는 이름을 인용하면 요약이 지어낸 문장이라는 뜻이라 규칙이 만든 기본 문장으로 되돌립니다. 9. evidence 의 value 가 수록된 행의 원문 값과 같은지 확인합니다. 여러 행을 세어 얻은 수치는 agg 를 함께 적습니다. 10. threshold 와 compare_dir 은 견줄 기준 행이 있을 때만 채우고, 기준표에 없는 항목이면 둘 다 비웁니다. 11. summary 가 존댓말 한 문장으로 끝나는지 확인합니다. [평가 러너 · 2주차] 손으로 매긴 정답 판정 320건과 자동 판정을 대조해 사유별 일치율을 내고, 어긋난 자리는 따로 모아 단위 환산 규칙을 넓힐지 정합니다. 통과선 언저리 값을 무작위로 심은 검수 기록을 만들어 심은 개수와 잡은 개수를 견주는 일도 이 러너에서 합니다. [수동 검증 · 사람이 봅니다] 1. 기준 미달로 걸린 항목 20건을 열어 소모품 교체로 그 자리에서 풀리는 항목인지 담당자가 판단합니다. 2. 기준표에 없는 항목으로 걸린 이름을 모아 브랜드 기준표에 새로 넣을지, 현장 항목 코드를 고칠지 정합니다.