작업 기간: 2026.07.15–07.31
관제 화면의 빈칸과 경고는 운영자에게 다음 행동을 알려 주는 신호예요. 2026년 7월 중순부터 말까지 저는 회색 칸, 사라진 마지막 수신 시점, 로그인 만료를 자료 장애로 안내하던 문구처럼 같은 모양 아래 서로 다른 뜻이 섞인 표시를 하나씩 나눴어요. 표시가 약속하는 사실과 실제 기록이 어긋나면 운영자는 엉뚱한 곳부터 점검하게 돼요.
관제 화면에는 최근 상태를 칸으로 쌓아 보여 주는 표시와 월간 수집 품질 화면이 있었어요. 최근 상태 표시는 어느 순간 갑자기 가득 차거나, 같은 시간의 확인이 여러 칸처럼 보이기도 했어요. 월간 화면의 회색 칸 하나는 실제로 들어온 자료가 없는 날, 대상 기간 밖의 날, 집계가 저장되지 않은 날, 아직 끝나지 않은 날을 모두 뜻하고 있었어요. 운영자가 해야 할 일은 저마다 다른데 화면은 같은 신호를 주고 있었던 거예요.
없는 기록은 정상으로 채우지 않고 비어 있는 이유를 드러냈어요
최근 상태 표시에서는 실제로 확인된 기록과 표시할 자리를 구분했어요. 같은 시간 구간에 확인이 반복돼도 시간이 더 지난 것처럼 보이지 않게 하고, 목록과 상세 화면이 같은 기간을 보여 주도록 맞췄어요. 이미 사라진 과거 기록은 저장된 근거 없이 정상 칸으로 채우지 않았고, 근거를 찾을 수 없는 구간은 기록을 기다리는 상태로 남겼어요.
월간 수집 품질에서는 자료가 실제로 없는 날과 그날의 집계 자체가 없는 날을 나눴어요. 대상 기간 밖의 날짜는 운영 실패처럼 보이지 않게 하고, 아직 마감되지 않은 날은 완료된 하루와 같은 기준으로 읽지 않게 했어요. 날짜 옆에는 요일과 작업 단계의 맥락을 더해 다른 화면에서 기준일을 다시 찾아 계산하지 않아도 되게 했어요. 위험을 가리키는 비율이 운영 의도와 다르게 적용된 문제는 문구만 고치는 대신 판정과 저장된 결과, 보고서와 화면의 표현을 같은 기준으로 맞추는 작업으로 이어 갔어요.

문제가 오래될수록 사라지던 마지막 수신 시점을 되살렸어요
마지막으로 자료를 받은 시점은 방금 끊긴 것인지, 오래전부터 멈춘 것인지 가르는 단서예요. 그런데 최근 자료만 조회하는 범위 밖으로 마지막 기록이 밀려나면, 화면은 그 항목을 한 번도 확인한 적 없는 것처럼 보여 줬어요. 가장 조사가 필요한 오래된 문제일수록 맥락을 먼저 잃는 역전이 생기고 있었어요.
최근 상태를 읽는 범위는 그대로 두고, 문제 항목에는 확인 가능한 마지막 수신 시점을 유지하도록 정리했어요. 오래된 시점을 보여 준다고 현재 상태를 정상으로 바꾸지는 않았고, 실제 이력이 없는 항목에는 다른 항목의 시각이나 최근 실행 시각을 끼워 넣지 않았어요. 수정 뒤 관련 시험을 거쳐 운영 화면이 읽는 결과를 보니, 비어 있던 항목 중 일부에 기존 근거가 있는 값이 다시 나타났어요. 돌아온 값이 해당 항목의 실제 마지막 기록에서 왔는지도 함께 살폈어요.

비슷한 경고도 원인에 따라 다음 행동을 다르게 안내했어요
그보다 앞선 작업에서는 로그인한 사용자에게 추가 확인값을 다시 요구하는 흐름이 있었어요. 화면에 들어올 때 확인한 이용 자격과 버튼을 누를 때 적용되는 기준이 달랐던 탓이에요. 같은 서비스 안에서 반복 입력하지 않도록 접근 흐름을 정리하되, 자동 실행과 자료 적재의 별도 이용 기준은 그대로 뒀어요.
그 뒤 관제 화면에 전체 목록을 읽지 못했다는 경고가 나왔어요. 직전에 조회 기능을 바꾼 터라 새 변경을 먼저 의심했지만, 서버 쪽에는 전체 목록이 정상적으로 반환된 기록이 있었어요. 사용자가 오래 열어 둔 탭을 살펴보니 로그인 상태가 만료돼 있었는데, 화면은 서버를 점검하라고 안내하고 있었어요. 로그인 만료는 로그인 화면으로 이어지고 다시 들어온 뒤 보던 위치로 돌아가도록 바꿨고, 인증하지 못한 상태에서 예전 문제 목록을 현재 상태처럼 재구성하는 흐름도 막았어요.


뒤이어 전체 목록 대신 일부 문제 항목만 보인 사건은 반대로 로그인은 정상인데 자료 공급이 멈춘 경우였어요. 로그인한 화면과 다른 이력 조회는 정상적으로 동작했으니, 지난번 기억대로 재로그인을 요구했다면 해결할 수 없었을 거예요. 자료를 만드는 실행이 개발 작업과 영향을 주고받으며 실패한 것을 확인하고 실행 범위를 분리했어요. 복구 직후의 수동 성공에 더해, 다음 실제 예약 실행에서 최신 상태가 전달되는지도 확인했어요.
확인한 범위에는 한계가 있어요. 저장된 기록과 화면의 칸을 대조했고 일부 기간은 운영 반영까지 이어졌지만, 오래된 모든 기간이 같은 수준으로 복원된 것은 아니에요. 당시 상태 기록이 없는 날짜는 완전한 운영 보고서로 취급하지 않았고, 선택한 달 전체에 자료가 없는 대상은 현재 표만으로 발견하기 어려워요. 과거 기준이 나중에 바뀌면 이미 만든 집계도 다시 확인해야 해요. 마지막 수신 시점을 되살린 변경이 실제 복구 시간을 줄였는지는 측정하지 않았고, 로그인한 사용자의 모든 버튼 조작이나 만료 순간의 화면 이동을 끝까지 관찰하지도 않았어요.