본문 바로가기
C.W.K.
Stream
Lesson 04 of 05 · published

Derived Status: 판단

~10 min · derived-status, red-is-violated-expectation, membership-gates-health

Level 0Lone Machine
0 XP0/37 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"status 는 저장하는 필드가 아냐. 세 입력에서 그때그때 계산하는 판단이야."

status 는 필드가 아니라 함수

기계 레코드에 status: healthy 를 적지 마. 매번 세 가지에서 계산해. policy 가 어때야 한다는지(desired), probe 가 뭘 봤는지(observed), 그 observation 이 얼마나 낡았는지(freshness). 입력을 저장하고 판단은 뽑아내. 저장된 status 는 세상이 그 밑에서 움직이길 기다리는 거짓말이야.

판단의 어휘

초록 아니면 빨강은 너무 좁은 언어야. 쓸 만한 엔진은 이유 를 담은 판단으로 말해. healthy, healthy_sleeping, maintenance, waiting_for_gui_setup, stale, degraded, unreachable_expected, unreachable_unexpected, suspended, retired, unknown. 하나하나가 뭔가 틀렸다는 것뿐 아니라 어디를 손봐야 하는지까지 알려줘.

membership 이 health 를 가른다

어떤 판단은 나머지를 건너뛰어. suspended 호스트는 일부러 관리 안 하는 거고, retired 호스트는 지나간 기록이야. 둘 다 아픈 게 아니라, 지금은 아무것도 기대하지 않기로 한 것뿐이야. retired 기계는 '다운' 이 아니라 '이제 우리가 지켜볼 게 아님' 이야.

빨강은 비싸게, 그리고 늘 설명하게

빨강은 unreachable_unexpected 랑 그 친척들 거야. 현실이 약속을 깬 상태. 자는 랩탑은 healthy_sleeping 이지 절대 빨강이 아냐. 그리고 색 하나로는 안 돼. 화면은 근거가 된 사실들을 같이 보여줘야 해. 이유를 안 달아준 빨강 은 관리가 아니라 그냥 사람 불안하게 만드는 거니까.

판단은 계산하고, 이유는 보여줘. 읽는 사람이 desired·observed·freshness 로 되짚어낼 수 없는 status 는 진단이 아니라 그냥 기분이야.

Code

status 는 매번 파생돼·python
def derive_status(policy, obs):
    # membership 이 전부를 가른다. 관리 안 하면 health 판단 자체가 없어.
    if policy.membership == "retired":   return "retired"
    if policy.membership == "suspended": return "suspended"

    # fresh 한 observation 이 없어. 이 침묵이 policy 상 예정된 거야?
    if obs is None or obs.age_seconds > policy.alert_after_seconds:
        return "unreachable_expected" if policy.may_sleep else "stale"

    # fresh 한데 안 닿아. 같은 질문, 더 센 판돈.
    if not obs.reachable:
        return "healthy_sleeping" if policy.may_sleep else "unreachable_unexpected"

    # 닿는데 OS phase 가 틀렸거나 약속한 서비스가 빠졌어.
    if obs.gui_phase == "setup_assistant": return "waiting_for_gui_setup"
    if obs.missing_expected_services():    return "degraded"
    return "healthy"

# 빨강은 unreachable_unexpected(랑 친척)만 벌어. policy 가 허락한
# 그대로 도는 기계는 차분한 색이야. 비상이 아니라 계획이 돌아가는 중이니까.

External links

Exercise

네 기계 하나에 작은 derive_status 를 짜봐. 최소한 이건 다뤄. 자는데 허용됨, 자는데 불허, stale, degraded(떠 있는데 약속한 서비스가 빠짐). 그다음 빨강을 벌 판단 딱 하나를 골라, 나머지는 왜 아닌지 대봐.
Hint
빨강은 '새벽 3시에 이걸로 깨워도 돼?' 테스트를 통과해야 해. '랩탑 자는 중, policy 가 허용' 은 그 테스트에 떨어지고, '늘 켜둔 서버가 안 닿음, override 없음' 은 통과해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.