리뷰 경고 상태를 기한 초과 시 자동 결격 처리로 전환
목차
review_loop.py에서 WARN 상태를 결격 처리로 자동 전환하는 로직을 구현했다. 경고 상태가 일시적이라는 걸 명확히 하면서도, 계속 방치되면 자동으로 처리하는 흐름이 필요했다.
왜 기계적 결격 자동화가 필요했나
리뷰 프로세스에서 "경고(WARN)" 상태는 애매한 중간지대다. 뭔가 문제 신호는 있지만 즉시 거절(결격)하기보다 일단 지켜보자는 의도인데, 그게 언제 다음 단계로 진행할지는 팀이 정해야 한다.
그런데 실제로는 어떻게 되나? 경고 상태로 떠 있는 항목들을 계속 수동으로 체크하다가, 결국 "어, 이건 결격 맞는데?" 하면서 뒤늦게 처리한다. 이 과정에서 몇 가지 불편함이 생긴다.
- 일관성 문제: 사람마다 "언제까지 지켜봐야 하는지" 판단 기준이 다름
- 누락: 경고 상태를 놓치거나 잊어버림
- 지연: 수동 체크·승인 대기 시간이 누적
- 판단 재작업: 비슷한 경고인데 어떤 건 결격, 어떤 건 통과하는 등 불일치
자동화는 이런 모호성을 명확하게 만든다는 게 핵심이다.
구현: WARN → 자동 rewrite + UPDATE
# 의사 코드로 보면 대략 이런 흐름
if item.status == WARN and has_been_warned_for(timeout):
item.status = DISQUALIFIED # 결격 처리
update_timestamp(item) # 상태 변경 시점 기록
log_transition(item) # 감사 추적
핵심은 세 가지:
| 요소 | 역할 |
|---|---|
| WARN 상태 감지 | 리뷰 루프가 주기적으로 기계적 결격 대상을 발견 |
| 자동 rewrite | 조건 충족 시 상태를 DISQUALIFIED로 변경 |
| UPDATE 처리 | 상태 변경 시점과 이유를 기록해 추적 가능하게 함 |
자동화할 때 빠지기 쉬운 부분:
- 타이밍: 언제부터 결격 처리할지 (3일? 7일? 정책에 따라 다름)
- 감사 추적: 누가 언제 어떻게 변경했는지 기록
- rollback 대비: 잘못 자동 처리된 항목을 돌릴 수 있어야 함
- 알림: 팀이 자동 전환된 항목을 안 놓치도록
회고: 팀에 미치는 영향
이 기능이 들어가면서 달라지는 부분:
- 수동 리뷰 감소: 경고 상태를 매번 눈으로 찾아 처리할 필요 없음
- 일관된 정책 적용: 결격 기준이 코드로 명시되니까 누가 봐도 같음
- 빠른 피드백: 자동 처리되는 항목은 지연 없이 진행
- 감사 추적: 누군가 "왜 이게 결격됐어?"라고 물을 때 명확한 답변 가능
다만 다음 부분도 신경 써야 한다:
- 개발자 UX: 경고 받은 사람이 "왜 내 것만 자동 결격 됐어?" 할 수 있으니 명확한 정책 공지
- 예외 케이스: "이건 경고지만 결격하면 안 되는 케이스"가 있는지 미리 파악
- 모니터링: 자동 전환되는 항목 수 추적 — 너무 많으면 정책 재검토
일반론: 상태 기계 자동화할 때
비슷한 상황에서 자동화할 때 봐야 할 체크리스트:
- 상태 전환 규칙이 정책화되어 있는가?
- 수동 개입의 "예외"를 정의했는가? (누가, 언제 override 할 수 있나)
- 자동 처리 내역을 기록하고 조회할 수 있는가?
- 롤백 시나리오가 있는가?
- 팀이 이 규칙을 이해하고 동의했는가?
마지막은 기술만큼 중요하다. 아무리 좋은 자동화도 팀이 "이게 왜 자동으로 되지?" 하면서 의심하면 소용없다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.