Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BStHFrjQj2VypecSG9ex1V
8.9 KiB
8.9 KiB
2026-09-25 페르소나 리뷰 — 소크라테스 3단논법 검증
각 페르소나의 요구를 대전제, 코드·실측으로 확인한 사실을 소전제로 놓고 결론을 낸 뒤, 반문으로 두 전제를 공격해 결론이 살아남는지 본다. 판정: 성립 / 부분 성립 / 붕괴. 근거는 모두 이 저장소의 코드와 2026-09-22 실이미지 20장 실측이다. 판정 데이터는 0건이다.
페르소나 1 — 심사 운영자 (하루 50~100건)
1-A. 순서
- 대전제: 운영자는 위험한 건부터 봐야 시간을 아낀다.
- 소전제: 큐는
riskScore내림차순이고, v5 이후 실이미지 20장이 100 하나에서 75·80·92·95 네 단계로 갈라졌다. - 결론: 큐에 순서가 생겼다.
- 반문: 그 순서가 위험의 순서인가? 92 와 95 의 차이는 네이버 승격 신뢰도 0.8 과 1.0 의 차이다. 20장 모두 high 라 high 안의 순서는 "배경 인물인가"와 "이름 검색이 걸렸나"로만 갈린다. 두 축 모두 권리 위험과의 상관이 측정된 적 없다.
- 판정: 부분 성립. 밴드 사이의 순서는 설계 근거가 있다. 밴드 안의 순서는 근거가 없다.
1-B. 첫 1초
- 대전제: 첫 1초에 방향을 잡을 수 있어야 한다.
- 소전제: 한 줄 요약
웹 완전일치 사본 4곳 · 식별 가능 인물 · …을 실렌더로 확인했다. - 결론: 방향을 잡을 수 있다.
- 반문: "4곳"이 언론사인가, 스크래퍼인가? 한 줄 요약은 사실을 말할 뿐 판단을 돕지 않는다. 원저작자 쪽일 가능성이 높은 언론·공식 계정과 무단 게시처를 가르는 분류가 없어서, 운영자는 결국 링크를 연다.
- 판정: 부분 성립. 읽는 시간은 줄었지만 여는 횟수는 줄지 않았다.
1-C. 되돌리기
- 대전제: 실수한 판정은 흔적 없이 바로잡혀야 한다.
- 소전제: 판정을 바꿀 수 있다. 승인으로 바꾸면 파생된 주의 후보가 철회되고, 영향받은 케이스는 리스코어되며, 메모는 마지막 판정 것만 남는다(2026-09-23).
- 결론: 바로잡힌다.
- 반문: 반려에서 보류로 바꾸면 주의 후보는 남는다(의도). 전용 "취소" 동작은 없고 재판정만 가능하다.
- 판정: 성립.
페르소나 2 — 권리·법무 담당 (판정의 책임자)
2-A. 재현 가능성
- 대전제: 판정은 "누가, 무엇을 보고" 내렸는지 사후에 재현 가능해야 한다.
- 소전제:
- (a) 감사 actor 가
rights.ops로 하드코딩돼 있다(sqlite_store.py외 다수). - (b) 판정 시점의 표시 상태는
decisionSnapshot에 저장된다. - (c) 그런데 내보내기는 스냅샷이 아니라 현재 값을 읽는다.
store_workflow.py_export_row의riskScore와evidenceUsed가 그렇다.
- (a) 감사 actor 가
- 결론: "누가"는 재현할 수 없다. "무엇을 보고"는 판정 뒤에 증거 표시를 바꾸거나 리스코어가 돌면 내보내기 내용이 달라진다.
- 반문: 스냅샷이 있으니 재현 데이터는 있지 않은가? 있다. 하지만 사람이 받는 산출물은 그것을 쓰지 않는다.
- 판정: 붕괴. 데이터는 있으나 산출물이 그것을 쓰지 않는다.
2-B. 점수의 의미
- 대전제: "위험 점수"는 권리 위험을 반영해야 한다.
- 소전제: 점수 축은 웹 존재·인물·이름 검색·라벨·등록 일치다. 라이선스·동의 같은 권리 증빙 축은 없다. 비인물 작품의 완전일치 사본은 50/medium 이고, 라이선스가 있는 인물 사진은 80/high 다(codex 시나리오를 재확인).
- 결론: 점수는 권리 위험이 아니라 노출도 × 식별성을 잰다.
- 반문: 그러면 "높음 위험"이라는 이름이 과장인가? 그렇다. 운영자가 high 를 "침해 가능성 높음"으로 읽으면 오도된다.
- 판정: 붕괴(명칭 한정). 순서 도구로는 쓸 만하다. "위험"이라는 이름은 증명되지 않았다.
페르소나 3 — 제출자
3-A. 거절 사유
- 대전제: 거절 사유는 정확하고, 실제로 전달되어야 한다.
- 소전제: 지원자용 내보내기는 내부 신호를 제거하고 마지막 판정의 메모만 싣는다(2026-09-23 수정). 통지 연동이나 수신 확인은 없다.
- 결론: 사유는 정확하다. 전달 여부는 알 수 없다.
- 판정: 부분 성립.
3-B. 재제출의 공정성
- 대전제: 같은 이미지를 다시 냈을 때 새로 심사받아야 한다.
- 소전제: 이전 보류·반려로 생긴 주의 후보에 일치하면 +40 이 붙고, 한 줄 요약 맨 앞에 "주의 후보 일치"가 뜬다.
- 결론: 이전 판정이 다음 심사의 출발점이 된다.
- 반문: 그것이 공정한가, 선입견인가? 같은 이미지라면 이전 판정을 참고하는 것이 일관성이다. 다만 검색 장애로 생긴 보류는 v7 에서 후보를 만들지 않게 막았다. 남은 위험은 운영자가 이전 결론을 그대로 따라가는 것이고, 이는 가이드("다르면 이유를 메모")로만 막혀 있다.
- 판정: 부분 성립.
페르소나 4 — 폐쇄망 인프라·납품 담당
4-A. 네트워크 없이 동작하는가
- 대전제: 폐쇄망 납품물은 런타임에 네트워크 없이 동작해야 한다.
- 소전제: 설치 의존성(numpy·opencv·Pillow)은 오프라인 휠로 동봉한다. 그러나 핵심 탐지(Vision·Naver)는 외부 API 호출이 필수이고,
offline-install.md도 egress 가 필요하다고 명시한다. - 결론: "폐쇄망"은 설치 측면에서만 성립한다. 기능 측면에서는 "제한적 egress 망"이다.
- 반문: 완전 폐쇄에서는 무엇이 남는가? 지문·얼굴·출처 메타데이터와 기준 DB 일치만 남는다. 모든 신규 이미지가 low 와 "외부 검색 꺼짐"으로 떨어지고, 순서 도구로서의 가치는 대부분 사라진다.
- 판정: 부분 성립. 두 운영 모드(egress 허용 / 완전 폐쇄)와 각각의 기대 성능을 납품 문서에 명시해야 한다.
4-B. 납품물을 추적할 수 있는가
- 대전제: 납품물은 버전으로 추적 가능해야 한다.
- 소전제:
VERSION0.1.0 과/health에 버전이 있다. 패키징 스크립트는 없고, main 에 병합되지 않은 커밋이 51개, 원격에 없는 커밋이 28개다. - 결론: 버전의 출처는 있지만 납품 가능한 단위가 없다.
- 판정: 미성립.
페르소나 5 — 팀장·도입 결정자
5-A. 효과 측정
- 대전제: 도구 도입의 효과는 측정되어야 한다.
- 소전제: 판정이 0건이다. 임계 70/30 은 미검증이다. 코퍼스 20장은 모두 웹에 유통되는 인물 사진이라 low 쪽 분모가 영원히 0이다. 측정 도구(스냅샷·
sweep_thresholds·score_distribution)는 갖춰져 있다. - 결론: 효과는 미측정이다. 도입 판단의 근거가 없다.
- 반문: 그럼 지금까지의 개선은 무엇에 근거했나? 스코어러가 사흘 동안 v4 에서 v7 로 네 번 바뀌었다. 근거는 구조적 추론, 실이미지 20장, codex 교차검토다. 운영자 판단과의 대조는 한 번도 없다.
- 판정: 붕괴(현 시점). 측정 장치는 있고 데이터가 없다. 파일럿이 곧 측정이다.
종합
| 페르소나 | 판정 | 핵심 |
|---|---|---|
| 운영자 | 부분 성립 | 순서·첫 1초·되돌리기는 됨. 호스트 성격 구분이 없어 링크는 여전히 열어야 함 |
| 법무 | 붕괴 | actor 익명, 내보내기가 판정 시점이 아닌 현재 값을 읽음 |
| 제출자 | 부분 성립 | 사유 정확. 전달 추적 없음. 재제출에 이전 판정이 앵커로 작용 |
| 인프라 | 부분 / 미성립 | "폐쇄망"의 실제 범위가 불명확. 납품 단위 없음 |
| 결정자 | 붕괴 | 판정 0건. 가중치 네 번 변경이 모두 판정 데이터 없이 이루어짐 |
권고 (적용 비용이 낮은 순)
- 내보내기를 판정 시점 스냅샷으로.
decisionSnapshot에 이미 점수·표시 상태가 있다. 법무 2-A 의 절반이 이 한 곳에서 풀린다. (S) - "위험" 명칭 교정. 밴드 설명을 "노출·식별성 기반 검토 우선순위"로 바꾸고, 가이드에 "high ≠ 침해 판정"을 명시한다. (S)
- 운영 모드 문서. egress 허용 / 완전 폐쇄 두 모드와 각각의 기대 동작을 적는다. (S)
- 운영자 신원. 법무 2-A 의 나머지 절반이다. 앞서 건너뛰기로 한 결정의 재고를 권한다. 공유 토큰 하나라도 운영자 이름을 받아 actor 에 싣는 방식이면 된다. (M)
- 호스트 성격 태깅. 언론·공식 / 커뮤니티 / 스크래퍼 구분을 기준 DB 로 도입한다. 신뢰 출처 기능의 확장이다. (M)
- 파일럿 40장.
calibration-corpus.md1절 구성대로 진행한다. 결정자 5-A 와 운영자 1-A 반문의 유일한 해소 경로다. (사람) - main 병합 · push · 패키징 스크립트. (S, 사용자 확인 필요)