지양해야 하는 것은 싱글톤, mutable state, for/if 자체가 아니라, 전역 상태에 대한 과도한 의존, 분산된 상태 변경, 조건문 남발, 그리고 실제 완료 조건 대신 임의의 타이머에 의존하는 설계다. + Lock. Lock 없으면 Race Condition 가능, Lock 잘못 잡으면 Deadlock 가능싱글톤 / 글로벌 변수OCP를 “단번에 깨버린다”는 표현은 정확하지 않아.다만 전역 접근에 강하게 의존하면 결합도가 높아지고 테스트/교체/확장이 어려워져서 OCP, DIP 같은 설계 원칙을 해치기 쉬워.특히 GameManager.Instance.Xxx() 같은 호출이 코드 전역에 퍼지면 수정 영향 범위가 커져.Mutable 변수 + for/if이것도 자체로 나쁜 게 아니야. 게임 코드는 상..