콘텐츠로 이동

마감 전 준비 상태 확인

월말 결산, 예측 제출, 이사회 자료처럼 가장 중요한 날에는 “Weave가 무엇을 발견했는가?“가 아니라 “준비가 되었는가?“가 핵심 질문입니다. 준비 상태 세트는 기한이 의존하는 워크플로를 지정하며, 세트를 선택하면 그 모든 워크플로에 대해 이 질문의 답을 한 번에 하나의 체크리스트로 보여 줍니다. 체크리스트는 자체 집계로 시작합니다.

13개 중 11개 준비됨, 1개 준비되지 않음, 1개 검사할 수 없음.

세트의 각 워크플로는 해당 워크플로의 줄 중 가장 나쁜 결과를 기준으로 세 가지 답 중 하나를 받습니다. 검사에서 문제가 하나라도 발견되면 준비되지 않음입니다. 문제는 그 아래에 나열되며, Weave 탭과 동일한 수정, 이동, Weave가 아는 방법 버튼이 함께 표시됩니다. 그렇지 않고 판단할 방법이 없는 검사가 하나라도 있으면 검사할 수 없음이며 사유가 함께 기재됩니다. Weave가 실행할 수 있었던 모든 검사를 통과한 경우에만 준비됨입니다. Weave가 판단하지 않은 항목은 준비된 것으로 표시되지 않습니다. 단, 비교할 이전 이력이 너무 적은 마지막 실행은 아래에 설명한 대로 평소와 같은 것으로 간주합니다.

누군가 예상된 항목으로 표시한 문제도 해당 줄은 여전히 준비되지 않음이며, 그 줄에 예상된 항목으로 표시되었다고 나타납니다. Weave 탭은 이러한 문제를 더 이상 보고하지 않지만, 체크리스트는 사실 그대로를 알려 줍니다.

검사는 Weave가 이미 실행하는 규칙이며 AI를 사용하지 않으므로, 체크리스트를 아무리 자주 요청해도 비용이 들지 않습니다. 이 규칙이 무엇을 읽고 그 답이 무엇을 의미하는지는 Weave 점검 항목을 참조하십시오.

  1. 프로젝트의 Weave 탭을 열고 결과 항목의 도구 모음에서 준비 상태를 클릭합니다.
  2. 새로 만들기를 클릭합니다. 세트 이름(예: “월말 결산”)을 입력하고, 세트가 의존하는 워크플로를 프로젝트의 워크플로에서 이 세트의 워크플로로 옮깁니다.
  3. 필요한 경우 마감 시간 있음을 선택하고, 세트의 기한을 cron 식과 그 식이 작성된 시간대로 지정합니다. 이는 예약된 이벤트에서 제공하는 선택 항목과 같습니다. 0 9 5 * *는 해당 시간대 기준으로 매월 5일 09:00이고, 0 8 * * 1은 매주 월요일 08:00입니다. 오프셋은 예약된 이벤트가 읽는 방식과 동일하게 해석됩니다. UTC +0은 영국 서머타임을 포함한 런던 시간이며, 일부 다른 오프셋은 해당 오프셋에 위치한 지역의 서머타임을 따르고 나머지는 고정되어 있습니다. 이벤트 스케줄러 페이지에 각 오프셋이 어떻게 해석되는지 나와 있습니다.
  4. 마감 시간이 있는 세트는 Tell the owner this many hours before it is due 아래에서 기한 몇 시간 전에 Weave가 메시지를 보낼지 1~168시간 범위로 지정합니다. 기본값은 24입니다.
  5. 저장을 클릭합니다.

세트는 프로젝트에 속하며, 프로젝트의 Weave 탭에서 결과 항목 권한이 있는 모든 사용자가 세트를 확인할 수 있습니다. 세트를 만들거나 편집하거나 삭제할 수 있는 사람은 프로젝트 아키텍트뿐이며, 세트의 모든 워크플로는 해당 프로젝트에 있어야 합니다. 세트를 마지막으로 저장한 사람이 소유자입니다. 같은 세트를 두 사람이 동시에 편집하는 경우에도 충돌하지 않도록 구분됩니다. 두 번째 저장은 거부되고, 세트를 다시 읽어 들이며, 양식에 사유와 함께 더 최신 사본이 표시됩니다.

Weave는 입력 테이블이 언제 기록되었어야 하는지 알려 주는 정보가 있어야만 해당 테이블을 최신이라고 판단할 수 있습니다. 그 정보란 테이블을 기록하는 워크플로의 일정, 또는 테이블의 최신 상태 임계값입니다. 먼저 이를 설정하지 않으면 대부분의 워크플로 첫 번째 줄이 검사할 수 없음으로 표시됩니다.

왼쪽에서 세트를 선택합니다. Weave는 Weave 탭과 동일한 방식으로 프로젝트 전체를 읽고 세트의 각 워크플로를 판단합니다. 무언가를 수정한 후에는 다시 확인을 클릭합니다.

각 항목에는 워크플로 이름, 판정, 그리고 해당 워크플로에 적용되는 검사별 한 줄이 표시됩니다. 줄에 검사할 수 없음이 표시되면 그 옆에 사유가 기재됩니다. 가장 자주 만나게 될 사유는 다음과 같습니다.

줄 Weave가 비교하는 내용 “검사할 수 없음”으로 표시되는 일반적인 사유
Inputs are fresh 워크플로가 읽는 모든 테이블을, 그 테이블을 기록하는 워크플로의 일정 또는 테이블 자체의 최신 상태 임계값과 비교합니다. 사용자의 역할로는 테이블을 읽을 수 없음, Weave가 어떤 테이블을 읽는지 파악하지 못했거나 Weave가 추적할 수 있는 테이블을 읽지 않음, 읽는 테이블이 사용자에게 숨겨져 있음, 변수로 선택한 테이블처럼 Weave가 파악할 수 없는 테이블을 단계가 읽음, 읽는 테이블에 예약된 기록 워크플로도 최신 상태 임계값도 없어 언제 기록되었어야 하는지 알 수 없음, 그 테이블을 기록하는 워크플로가 실행 중이거나 대기 중이거나 방금 끝남.
Last run succeeded 워크플로의 가장 최근 실행이며, 완료되어야 합니다. 실패한 실행은 준비되지 않음입니다. 기록된 실행이 없음, 실행 이력을 읽을 수 없음, 마지막 실행이 중지되었거나 아직 진행 중임.
Last run looked usual 마지막 실행에 걸린 시간, 실행 후 테이블에 있던 행 수, 빈 값의 수, 값의 분포를 이전 실행과 비교합니다. 마지막 실행이 실패했거나 중지되었거나 아직 진행 중이라 비교할 평소 기준이 없음, 실행이 기록한 테이블에 행 액세스가 적용되어 그 테이블의 값을 비교하지 않음, 실행에 사용자의 역할로 볼 수 없는 단계가 포함됨.
Inputs unchanged since it last ran 워크플로가 마지막으로 읽은 이후에 다른 워크플로가 읽는 테이블에 기록했는지 여부. 사용자의 역할로는 테이블을 읽을 수 없음, Weave가 워크플로가 읽는 대상을 추적할 수 없음, 또는 워크플로에 비교할 실행이 없음.
Schedule is healthy 예약된 이벤트: 유효한 타임테이블인지, 스케줄러와 일치하는지, 도래한 실행을 놓치지 않았는지, 실행 중인 작업 때문에 도래 시점을 잃지 않았는지. 스케줄러를 읽을 수 없음.
Reconciliations tie out 워크플로에 연결된 각 대사를, 승인된 버전으로 사용자 권한으로 실행합니다. 아직 승인되지 않은 대사가 있음, 사용자의 역할로는 테이블 데이터를 읽을 수 없음, 행 액세스 때문에 한쪽의 일부 행만 보임, 사용된 테이블이나 열이 변경됨, 체크리스트가 대사를 실행하는 시간 제한을 초과함.

예약된 이벤트가 없는 워크플로에는 Schedule is healthy 줄이 없으며, 항목에 예약되지 않았다고 표시됩니다. 연결된 대사가 없는 워크플로에는 Reconciliations tie out 줄이 없습니다. 이는 워크플로에 관한 사실이며 Weave가 검사하지 못한 것이 아닙니다.

세트를 만든 이후 프로젝트에서 삭제되었거나 사용자의 역할로는 볼 수 없는 워크플로도 여전히 집계에 포함됩니다. 이러한 워크플로는 사유와 함께 검사할 수 없음으로 표시되므로, 개수가 조용히 줄어드는 일은 없습니다.

실행은 이전 실행과 비교해야만 평소와 다르게 보일 수 있습니다. 비교할 이전 이력이 너무 적으면 Last run looked usual은 해당 실행을 평소와 같은 것으로 간주하고 그렇게 표시합니다. 여기에는 새 워크플로나 새 단계, 주간 워크플로처럼 최근 30일 동안 충분한 실행 횟수가 쌓이지 않을 만큼 드물게 실행되는 경우, 테이블을 처음 채운 실행이 해당됩니다.

Weave는 마지막 실행과 비교할 이전 이력이 너무 적어 평소와 같은 것으로 간주합니다.

실행의 일부를 비교할 수 있었던 경우에는 평소 범위에 있던 항목을 이름으로 알려 주고 “Weave에 비교할 이전 이력이 너무 적은 부분은 평소와 같은 것으로 간주합니다.“를 덧붙입니다. Weave 탭에서는 이러한 항목이 여전히 Weave가 수행할 수 없었던 검사로 나열됩니다. 한 번도 실행된 적이 없는 워크플로는 Last run succeeded와 Last run looked usual 줄 모두에서 여전히 검사할 수 없음이며, 마지막 실행이 중지되었거나 아직 진행 중인 워크플로도 마찬가지입니다.

마감 시간이 있는 세트의 경우, Weave는 기한이 다가오면 스스로 검사를 실행하고, 세트가 기한에 도달할 때마다 한 번씩 세트 소유자(마지막으로 저장한 사람)에게 앱 내 메시지로 알립니다.

“월말 결산”의 기한이 3일 남았습니다(10월 31일 17:00 UTC). 워크플로 13개 중 11개 준비됨, 1개 준비되지 않음, 1개는 Weave가 검사할 수 없음.

메시지의 Weave 열기를 클릭하면 프로젝트의 Weave 탭과 해당 세트의 체크리스트가 열립니다. 메시지에는 개수만 포함되며, 이름과 사유는 체크리스트에 있습니다. 메시지는 30초 동안 화면에 표시되고 소유자가 그 시점에 로그인해 있는 경우에만 표시되며, 같은 기한에 대해서는 다시 전송되지 않지만 체크리스트는 창에서 언제든 확인할 수 있습니다. 소유자가 더 이상 프로젝트를 열 수 없으면 아무것도 전송되지 않습니다.

Weave는 한 시간에 한 번 검사하므로 메시지는 알림 시점으로부터 한 시간 이내에 도착합니다. 24시간 전 알림이라면 기한 24시간 전 시점으로부터 한 시간 이내입니다. 알림 시점이 지난 후에 저장된 세트는 다음 검사에서 알림을 받습니다. 검사가 늦게 시작되어 실행되기 전에 기한이 지나더라도, 세트가 기한 이후에 저장된 경우가 아니라면 해당 검사는 “20분 전이 기한이었습니다”와 같이 소유자에게 알립니다. 검사는 소유자 권한으로 실행되며, 소유자가 세트를 마지막으로 저장했을 때 테이블을 읽을 수 있었던 경우에만 테이블을 읽습니다.

준비 상태 세트는 플랫폼 API의 /analyze/weave/readiness 아래에서 사용할 수 있습니다. GET /sets는 프로젝트의 세트를 나열하고, GET /set, POST /set, PUT /set, DELETE /set은 각각 세트 하나를 읽고, 만들고, 교체하고, 삭제하며, GET /check는 창에 표시되는 것과 같은 체크리스트를 각 줄의 결과 항목과 함께 반환합니다. API로 읽은 세트에는 etag가 포함됩니다. PUT 요청에서 이를 if_match로 다시 보내면 더 새로운 저장본을 덮어쓰는 편집이 거부됩니다. 보내지 않으면 마지막 쓰기가 적용됩니다.