자동화 파이프라인6 분 읽기

내 자동 개선 장치가 켜졌는지 저는 알 수 없었습니다

유튜브 파이프라인에는 데이터가 충분히 쌓여야 스스로 켜지는 개선 장치가 여섯 개 있었습니다. 대시보드에는 채널 지표만 있었고, 이 장치들이 발동했는지는 보이지 않았습니다. 그래서 발동 상태와 임계값 대비 진행도를 보여주는 표를 하나 추가했습니다.

#dashboard#self-improvement#youtube#observability#thresholds
왼쪽은 상태가 보이지 않는 여섯 개의 자동 개선 장치, 오른쪽은 발동/대기와 진행도를 보여주는 표
조용히 기다리는 장치와 조용히 고장 난 장치는 표 없이는 구분되지 않았습니다.

스스로 켜지는 장치는 켜졌는지도 스스로만 압니다

유튜브 자동화 파이프라인에 '자기 게이트(self-gating)' 방식의 개선 장치를 여러 개 붙여 두었습니다. 조건이 충족되기 전에는 아무 일도 하지 않고 기다리다가, 데이터가 임계값을 넘으면 그때 동작하는 구조입니다. 앱 노출 순서, 리텐션 힌트, 크리에이티브 DNA, 카테고리별 성과, 리패키징 플래그, 시리즈 재생목록 이렇게 여섯 가지이고, 쇼츠와 롱폼 양쪽에 걸쳐 있습니다.

설계 의도는 맞았습니다. 표본이 적을 때 섣불리 움직이지 않게 하려는 장치니까요. 그런데 이 구조에는 빠진 게 있었습니다. 장치가 조용히 기다리는 상태와 조용히 고장 난 상태가 겉으로는 똑같아 보인다는 점입니다.

대시보드에는 채널 지표 표 하나만 있었습니다. 조회수와 구독 같은 숫자는 보였지만, 여섯 장치 중 어느 것이 발동했고 어느 것이 아직 문턱 아래에 있는지는 어디에도 보이지 않았습니다. 확인하려면 장치마다 결과 파일을 직접 열어 봐야 했습니다.

여러분의 프로젝트에도 '조건이 맞으면 알아서 켜지는' 로직이 있다면, 지금 그게 켜져 있는지 꺼져 있는지 5초 안에 답할 수 있습니까?

무엇을 보여줄지보다 어디서 읽을지가 먼저였습니다

표를 추가하는 일 자체는 단순합니다. 고민은 데이터 출처에 있었습니다. 기존 채널 표는 API를 호출하고 그 결과를 15분 동안 캐시합니다. 게이트 상태를 같은 경로에 얹으면 두 가지 문제가 생깁니다. 상태를 보려고 할 때마다 API 호출이 늘어나고, 게이트 상태가 채널 캐시 주기에 묶여 최대 15분 늦게 보입니다.

당신이라면 상태 패널을 기존 API 캐시 경로에 얹으시겠습니까, 아니면 따로 떼시겠습니까?

저는 따로 뗐습니다. 각 장치는 어차피 로컬에 결과 파일(artifact)을 남기니, 패널은 그 파일들만 읽습니다. API 호출은 없고, 15분 채널 캐시 바깥에 있습니다.

추가한 것

대시보드에 두 번째 표를 붙였습니다. 행 하나가 장치 하나이고, 상태는 ● 발동 / ○ 대기 두 가지로만 표시합니다. 옆에는 현재 값과 임계값을 나란히 적어서, 대기 중인 장치가 문턱까지 얼마나 남았는지 보이게 했습니다.

행을 만드는 로직은 _gate_rows()라는 순수 함수로 분리했습니다. 파일 읽기와 화면 출력을 빼고 '입력 → 행 목록'만 남겨서 테스트에서 가짜 artifact를 넣어 확인할 수 있게 한 것입니다. 변경은 대시보드 쪽 96줄, 테스트 66줄입니다.

자가진단 체크리스트

  • 조건부로 켜지는 로직마다 '발동/대기' 상태를 코드를 열지 않고 볼 수 있는 곳이 있습니까?
  • 대기 중인 로직에 대해 현재 값과 임계값을 함께 볼 수 있습니까, 아니면 '아직'이라는 사실만 압니까?
  • 상태 표시가 다른 데이터의 캐시나 API 호출에 묶여 있어서, 실제보다 늦거나 비싸게 보이고 있지는 않습니까?

솔직한 부분

이 패널은 장치를 하나도 더 빨리 켜 주지 않습니다. 문턱을 넘느냐는 결국 데이터가 쌓이는 속도에 달려 있고, 거기에는 값싼 수정이 없습니다. 패널이 하는 일은 기다림과 고장을 구분해서 보여주는 것뿐입니다. 그리고 패널은 로컬 artifact 파일을 읽기만 하므로, 그 파일을 만드는 작업이 멈추면 패널도 오래된 상태를 그대로 보여줄 수 있습니다. 파일이 언제 갱신됐는지까지 이 표가 검증하는지는 이번 변경 범위에 들어 있지 않습니다. 발동한 장치가 실제로 성과를 개선했는지도 이 표로는 알 수 없습니다. 이 표는 '켜졌다'까지만 말해 줍니다.

관련 글