교차 검증자동 검증을 전부 통과한 PR 11건을 모델을 바꿔 다시 읽었다
구분
CASE 10 · 교차 검증
교차 검증 · 검토자 모델 교체
상태
수정 완료
2026
역할
설계 · 판정 · 운영
코드는 AI
분야
검증 + AI
교차 검토 · UGC · 이중 렌더
CASE-10검증
11건
다시 읽은 PR #429~#439
개요
교차 검증
빌드 · 테스트 · 심볼 대조를 통과한 PR 11건(#429~#439)이 있었습니다. 세 겹을 통과해도 결함이 남는다고 봤고 같은 모델은 같은 맹점을 반복하므로 검토자 모델을 바꿔 처음부터 다시 읽는 라운드를 두었습니다. 전제는 "의심하되 무죄도 기록한다"였습니다.
01
결과
무죄 4건. 위젯 갱신 경로 교체, 욕설 필터의 쓰기 경로 커버리지, 2월 29일 나이 계산, 빌드 스크립트. 의심했으나 코드로 반증됐고 그 근거를 남겼습니다
신규 결함 1(P1). 닉네임 변경 API가 길이 검증만 하고 있었습니다. 닉네임은 카드와 참가자 목록에 공개 노출되는 UGC라 욕설·태그가 그대로 나갑니다. 필터는 있었지만 다른 두 경로에만 붙어 있었습니다. sanitize + 욕설 필터 + 테스트로 수정(#440)
신규 결함 2(P2). iOS 캘린더 계정의 Gmail과 앱의 Google 직접 연동을 둘 다 켜면 같은 이벤트가 타임라인에 두 번 그려집니다. 직전 PR이 선택 화면에서 Gmail 그룹을 숨겨 끌 수단까지 사라진 상태였습니다. 데이터 층에서 외부 소스를 제외해 화면과 기준을 일치시켰습니다(#441)
한계 기록 1. 인증 미들웨어 테스트가 계약을 재현하는 방식이라 리팩터 시 이탈을 못 잡습니다. 고치지 않고 승격 조건과 함께 적어 두었습니다
기록
잰 숫자와 출처
측정 · PR 기록
11건다시 읽은 PR #429~#439
측정 · 검토 기록
4무죄로 기록한 의심
측정 · PR 기록
2신규 결함 P1 · P2 · #440 · #441로 수정
측정 · 검토 기록
1고치지 않고 적어 둔 한계
결과
PR 11건 재검토 · 무죄 4 · 신규 결함 2(UGC 모더레이션 공백 · 일정 이중 렌더) · 둘 다 후속 PR로 수정
배운 것
자동 검증은 "있어야 할 것이 있는가"를 봅니다. 두 결함은 둘 다 있어야 할 것이 다른 경로에만 있던 경우였고 그건 규칙보다 눈이 잡습니다. 검토자를 바꾸는 것이 가장 싼 독립성이었습니다.
