자동화 slecs

리뷰 반려 판정을 학습 회로에 자동 연결한 방법

목차

리뷰 루프에서 REJECT 판정이 나면 자동으로 ARCHIVED 상태로 전환하고, 그 판정 데이터를 학습 회로에 연결했다. 단순한 상태 전환 자동화를 넘어, 반려 판정 정보가 다음 리뷰 판단에 피드백되도록 설계한 작업이다.

반려 처리의 반복 작업 문제

리뷰 과정에서 판정이 나면 보통 REJECT 상태까지 도달한다. 그런데 그 이후가 문제였다. 반려 항목을 보관(ARCHIVED) 처리로 정리하는 게 수작업이었고, 높은 처리량 상황에서는 자연스럽게 누락되거나 미뤄졌다. 결국 판정 기록만 있고 상태는 애매한 항목들이 쌓였다.

더 근본적인 문제는 반려 데이터의 활용이었다. "왜 이걸 반려했는가", "반려 판정의 패턴이 뭔가"라는 정보가 단순 기록으로만 남았다. 비슷한 케이스가 또 들어와도 과거 판정을 직접 참고해야 했고, 팀의 판정 기준이 일관되지 않거나 새 팀원 온보딩에 그 기준을 체계적으로 전달할 수 없었다.

자동 상태 전환과 판정 데이터 연결

review_loop.py에서 처리한 변경을 정리하면:

처리 단계 기존 방식 개선 후
REJECT 이후 수동 ARCHIVED 전환 또는 누락 자동 ARCHIVED 처리
판정 데이터 기록만 남음 (피드백 안 됨) 학습 회로에 실시간 전달
정산 주기 주기적 배치 정리 각 판정마다 즉시 연결

핵심은 REJECT 판정이 나는 순간, 그 근거와 컨텍스트가 학습 시스템에 즉시 전달되는 흐름이다. 다음 리뷰에서 비슷한 케이스가 들어오면 시스템이 "지난번엔 이런 이유로 반려됐다"는 패턴을 참고할 수 있게 된다.

# 판정 후 자동 처리 패턴
if verdict == "REJECT":
    # 상태 자동 전환
    item.status = "ARCHIVED"

    # 판정 근거를 학습 회로에 등록
    learning_circuit.record({
        'case_id': item.id,
        'verdict': "REJECT",
        'reason': rejection_reason,
        'context': item.attributes,
        'timestamp': now()
    })

이런 워크플로우는 어디서나 만난다

결제 플랫폼의 정산 검증, 사내 서비스의 신청/승인 프로세스, 콘텐츠 모더레이션 등 리뷰-판정-처리 사이클이 있는 거의 모든 시스템이 이 문제를 마주친다. 초기에는 상태 전환만 자동화하고 넘어가는 게 일반적인데, 그러면 판정 기준이 다음 주기에 전달되지 않는다. 팀 규모가 커지면 일관성 문제가 더 심해진다.

특히 팀 리더 입장에서는 새 멤버 온보딩할 때 이게 큰 비용이다. 과거 판정 사례들이 데이터화되고 학습 시스템에 누적되어 있다면, "이 유형은 보통 이런 이유로 반려된다"는 컨텍스트를 자연스럽게 전달할 수 있기 때문이다.

자동화 수준을 어디까지 할지

한 가지 트레이드오프는 REJECT를 무조건 자동 ARCHIVED 처리할지 여부였다. 복심(재검토) 단계가 필요할 수도 있으니까다.

결국 REJECT는 이미 판정이 난 확정 상태이므로, 자동으로 ARCHIVED 처리하되, 판정 근거와 메타데이터가 손실 없이 학습 회로에 전달되도록 설계했다. 만약 나중에 팀이 REJECT 후 재확인 단계를 원한다면, ARCHIVED 대신 "REJECTED_PENDING_ARCHIVE" 같은 중간 상태로 수정하면 된다.

회고: 자동화와 피드백 루프의 분리

이 작업을 하면서 배운 점은, 자동화와 데이터 피드백이 따로 놀면 결국 팀의 일만 줄어든다는 거다. 진짜 임팩트는 자동화한 데이터를 다시 시스템에 돌려보내서 다음 판정을 개선하는 데서 나온다.

또 하나, 반복되는 작업의 자동화는 "누가 이 작업을 없앨까"에서 시작하지 말고, "왜 반복되나"부터 질문해야 한다. 일이 반복되는 건 대부분 프로세스 자체에 누락이 있거나 피드백이 안 되기 때문이다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.