// 2026년 포트폴리오용 재구성 코드. 실제 업무 당시 소스가 아닙니다. // 2026 portfolio reconstruction. Generic fictional training data only; no device or military protocol. using System; using System.Collections.Generic; namespace PortfolioExamples { public sealed class TrainingRoster { readonly Dictionary seen=new Dictionary(); public void Heartbeat(string device, double monotonicSeconds) { if(string.IsNullOrWhiteSpace(device)||double.IsNaN(monotonicSeconds)||double.IsInfinity(monotonicSeconds))throw new ArgumentException(); if(seen.TryGetValue(device,out double previous)&&monotonicSeconds timeout>=0 && seen.TryGetValue(device,out double last) && now>=last && now-last<=timeout; } }