신선도
Freshness
지표
지금 보고 있는 표나 화면의 값이 언제까지의 일을 반영한 것인지를 재는 지표로, 그 숫자로 오늘 결정을 내려도 되는지 판단할 때 씁니다.
등장 배경
숫자가 틀리면 금방 알아챕니다. 매출이 갑자기 0이 되거나 가입자가 음수로 찍히면 누구든 이상하다고 말합니다. 그런데 숫자가 늦는 고장은 아무도 알아채지 못합니다. 화면에는 그럴듯한 값이 그대로 떠 있고, 그게 어제 값인지 오늘 값인지는 어디에도 적혀 있지 않기 때문입니다.
페이지덱에서도 그랬습니다. 월요일 오전 회의에서 지현이 주간 활성 사용자 수를 읽고 지난주보다 늘었다고 말했는데, 그 표를 채우는 처리가 금요일 밤에 실패한 뒤로 다시 돌지 않은 상태였습니다. 화면의 숫자에는 주말 이틀이 통째로 빠져 있었고, 회의에 있던 여섯 명 중 누구도 그걸 알 방법이 없었습니다.
신선도는 이 종류의 고장을 보이게 만들려고 붙인 이름입니다. 값이 맞는지를 묻는 대신 값이 언제 것인지를 묻습니다. 질문을 바꾸면 이 표가 몇 시간 전까지를 담고 있는지가 화면에 드러납니다. 이 숫자가 있으면 늦은 표를 늦었다고 말할 수 있고, 없으면 그 표는 틀릴 때까지 멀쩡해 보입니다.
계산 방법
지금 시각에서 표에 담긴 가장 최근 데이터의 시각을 빼면 그 차이가 신선도입니다. 이 차이를 지연이라고 부르고 보통 분이나 시간 단위로 셉니다.
지금이 오후 2시 20분이고 접속 기록 표에서 가장 늦은 줄의 시각이 오후 1시라면 지연은 1시간 20분입니다. 매시 정각에 갱신하기로 한 표라면 정상 범위입니다. 같은 표에서 가장 늦은 줄이 어젯밤 11시라면 지연은 15시간이고, 처리가 어딘가에서 멈췄다는 뜻입니다.
여기서 어느 시각을 기준으로 삼을지 먼저 정합니다. 후보는 둘입니다.
- 이벤트가 실제로 일어난 시각. 사용자가 문서를 연 바로 그 순간입니다. 사용자 쪽에서 본 지연이라 정직하지만, 앱이 기록을 늦게 보내는 경우까지 섞여 들어옵니다.
- 값이 표에 들어온 시각. 데이터 파이프라인은 흩어진 원천 데이터를 분석할 수 있는 형태로 옮기고 다듬는 흐름인데, 그것이 원천에서 값을 가져와 분석용 표에 적재한 순간입니다. 이 시각으로 재면 파이프라인이 도는지는 바로 보이지만, 옛날 데이터를 가져와 넣어도 신선하다고 나옵니다.
둘 다 재 두고 함께 보는 팀이 많습니다. 두 값의 차이 자체가 정보라서, 이벤트 시각으로 잰 지연이 6시간인데 적재 시각으로 잰 지연이 5분이라면 파이프라인은 멀쩡하고 원천이 늦게 주고 있다는 뜻입니다.
재는 단위는 창고 전체가 아니라 표 하나하나입니다. 결제 표는 10분마다, 접속 기록은 1시간마다, 고객사 정보는 하루에 한 번 갱신하는 식이라 같은 기준을 전체에 걸 수 없습니다. 표마다 기대 주기를 적어 두고 그 주기를 넘긴 시간을 따로 세면, 매시간 갱신하기로 한 표가 3시간째 그대로일 때 초과분은 2시간입니다.
좋은 수준의 기준
지연이 짧을수록 좋은 것은 아닙니다. 기준은 그 표를 보고 내리는 결정의 주기입니다. 분기 예산을 짜는 데 쓰는 표가 하루 늦어도 결정은 달라지지 않지만, 장애 대응 중에 보는 접속 표가 20분 늦으면 이미 지나간 상황을 보면서 손을 쓰게 됩니다.
그래서 표마다 허용 지연을 적어 둡니다. 페이지덱은 세 칸으로 나눴습니다.
- 15분 — 결제와 장애 대응에 쓰는 표입니다. 넘기면 바로 담당자에게 알림이 갑니다.
- 3시간 — 대시보드에 걸린 일반 지표입니다. 오전에 한 번 늦어도 그날 결정에는 대개 영향이 없습니다.
- 하루 — 고객사 정보나 요금제 이력처럼 원래 자주 바뀌지 않는 표입니다.
숫자를 적어 두는 것만으로는 모자라고, 넘겼을 때 무슨 일이 벌어지는지까지 함께 정합니다. 담당자에게 알림을 보내거나, 화면에 마지막 갱신 시각을 띄워 보는 사람이 스스로 판단하게 하는 둘 중 하나입니다. 뒤쪽이 값싸고 효과가 큽니다. 대시보드 구석의 "3시간 전 기준" 한 줄이면 늦은 표를 늦은 줄 모르고 읽는 일이 사라집니다.
한 달 치를 모아 보면 한 번 크게 늦은 표와 매일 조금씩 늦는 표는 고쳐야 할 곳이 다릅니다. 앞쪽은 그날 무슨 일이 있었는지 데이터 계보를 따라 거슬러 가면 됩니다. 데이터 계보는 이 값이 어느 원천에서 나와 어떤 가공을 거쳐 화면까지 왔는지의 경로입니다. 뒤쪽은 처리량이 이미 주기를 못 따라가고 있다는 신호라서 처리 방식이나 장비를 손봐야 합니다. 720번의 갱신 중 5번이 15분을 넘겼다면 준수율은 99.3퍼센트라는 식으로, 기준을 넘긴 비율로 관리하기도 합니다.
실무 용례
"이 대시보드 언제 기준이에요? 오전 숫자면 지금 말씀하신 것과 안 맞는데요."
지금 보는 값이 몇 시까지를 담고 있는지 모른 채로는 논의를 이어갈 수 없다는 말입니다.
"숫자가 틀린 게 아니라 늦은 거예요. 새벽에 처리가 한 번 실패했습니다."
값 자체는 정확하지만 어제 상태에서 멈춰 있다는 뜻입니다.
"결제 표만 15분 기준으로 올리고 나머지는 3시간으로 두죠."
표마다 허용 지연을 다르게 두자는 제안입니다.
페이지덱에서 이 말이 가장 자주 나오는 자리는 월요일 오전 회의입니다. 지현이 주간 지표를 띄우면 태오가 먼저 화면 구석의 갱신 시각을 봅니다. 한동안은 이 확인이 없어 금요일 저녁 값으로 두 번쯤 회의를 했고, 그 뒤로 모든 대시보드 상단에 마지막 갱신 시각을 넣었습니다.
지금은 늦은 표가 있으면 회의 전에 태오에게 알림이 가고, 태오가 자리에 앉자마자 "결제 쪽은 아직 오늘 게 안 올라왔습니다" 하고 먼저 말합니다. 숫자를 읽기 전에 언제 것인지를 맞춰 두는 셈입니다.
흔한 오해
신선하면 정확하다고 읽는 오해가 가장 흔합니다. 갱신 시각이 5분 전으로 찍혀 있으면 그 표를 믿게 되는데, 신선도가 보장하는 것은 값이 늦지 않았다는 사실 하나뿐입니다. 5분 전에 들어온 줄에 결제 금액이 음수로 적혀 있어도 지연은 여전히 5분입니다. 그쪽은 값이 미리 정한 규칙에 맞는지 확인하는 데이터 검증이 잡습니다. 신선도만 걸어 둔 표에서는 이상한 값이 제시간에 도착해 그대로 쓰입니다.
모든 표를 더 자주 갱신하면 된다는 생각도 자주 나옵니다. 지연이 문제니 지연을 없애자는 말이라 자연스럽게 들립니다. 실제로는 갱신 주기를 하루에서 5분으로 줄이면 처리 비용이 수십 배로 뛰는데, 그렇게 만든 표의 상당수는 하루에 한 번 열리고 그중 결정이 바뀌는 경우는 더 적습니다. 정할 것은 얼마나 빠르게가 아니라 이 표를 보고 내리는 결정이 몇 시간까지 늦어도 되는가입니다.
자주 헷갈리는 용어
| 용어 | 무엇을 보는가 | 신선도와의 차이 |
|---|---|---|
| 완결성 | 있어야 할 줄과 칸이 채워져 있는지 | 양을 봅니다. 제시간에 도착한 데이터라도 하루치의 3분의 1만 들어와 있으면 신선도는 통과하고 완결성이 걸립니다 |
같이 보면 좋은 페이지
마지막 업데이트 2026-09-16