원하는대로 코드를 구현은 했지만, 틀린 풀이였다.
답을 검색해보니 모르는 유형이었다. 내일 마저.
대충 짜면 단기적이어도 빠른게 아니라 느리게 개발하게 된다.
제대로 개발하는게 무조건 옳다.
행위 : 프로구램에 대한 요구사항
아키텍처 : 얼마나 변화에 부드러운지
아이젠하워 매트릭스 기준으로 아키텍처는 중요하기 때문에 행위보다 우선순위가 높은데, 이를 거꾸로 생각하면 안된다.
구조적 프로그래밍은 goto문을 앗아가고,
객체 지향 프로그래밍은 함수 포인터를 앗아가고,
함수형 프로그래밍은 할당문을 앗아간다
프로그램은 반증은 가능하지만 증명은 불가능하다
goto문 없앤 이유 : 작게 쪼개서 디버깅(반증) 쉽게 하려고
객체 지향은 무엇인가?
데이터와 함슈의 조합? 아님
현실 세계를 모델링? 아님
캡슐화, 상속, 다형성?
다형성 편하게 못 썼을 땐 제어 흐름과 의존성 방향이 동일
다형성 쓰면 인터페이스로 의존성 역전 가능.
소스 코드 의존성을 역전하여, 저수준의 UI와 데이터베이스가 고수준의 업무 규칙에 의존하도록 만들 수 있다.
고로 객체 지향은 모든 소스 코드 의존성에 대한 제어 권한을 획득하는 능력이다.
생각해보니 굳이 TimeManager를 따로 떼놓을 이유가 없었다.
StageManager에 합치는 식으로 순환 참조 해결.
StageManager 말고 GameManager로 이름도 변경.