// 2026년 포트폴리오용 재구성 코드. 실제 업무 당시 소스가 아닙니다. // 2026 portfolio reconstruction with fictional steps. Not launch-control software. using System; namespace PortfolioExamples { public sealed class ScenarioChecklist { readonly string[] steps; public int Completed { get; private set; } public bool Finished => Completed == steps.Length; public ScenarioChecklist(params string[] names) { if(names==null||names.Length==0)throw new ArgumentException("At least one step is required."); foreach (string name in names) if (string.IsNullOrWhiteSpace(name)) throw new ArgumentException("Step names cannot be empty."); steps=(string[])names.Clone(); } public string Current => Finished ? null : steps[Completed]; public bool Confirm(string name, bool externalCheckPassed) { if(Finished||!externalCheckPassed||!StringComparer.Ordinal.Equals(Current,name))return false; Completed++; return true; } public void Reset() => Completed=0; } }