Singleton 관련 질문입니다.
안녕하세요. 좋은 질문 남겨주셔서 감사합니다!먼저 Engine 생성자 관련해서 답변드리면, 말씀해주신 것처럼 “완전히 통제된 API” 관점에서는 생성자를 private으로 두고 Get()만 통해 접근하게 만드는 방식이 더 안전할 수 있습니다.다만 강의 프로젝트에서는 Engine을 “내부에서 스스로 생성되는 전통적인 싱글톤”보다는, 외부에서 하나 생성하고 전역으로 접근할 수 있게 만든 구조에 가깝게 구현했습니다. 실제로 예제에 따라 Engine engine;처럼 직접 생성해서 사용하는 경우도 있고, Game : public Engine처럼 상속해서 확장하는 형태도 함께 사용하고 있습니다.이런 구조를 단순하게 보여드리려다 보니 생성자를 public으로 두었습니다. 대신 생성자 내부에서 assert(!instance)로 하나만 생성되도록 방어하고, Get()으로 전역 접근을 제공하는 방식으로 구성했습니다.두 번째로 테스트에 대해서 말씀드리면, 현재 강의 프로젝트에서는 테스트 친화적인 구조까지는 의도적으로 가져가지는 않았습니다. 말씀하신 것처럼 전역 객체나 싱글톤은 테스트가 까다로운 편이고, 실무에서는 보통 이런 전역 의존성을 인터페이스나 일반 객체 단위로 분리해서 테스트 가능한 구조로 가져가는 경우가 많습니다. 다만 강의에서는 테스트, 예외 처리, 의존성 분리까지 모두 반영하면 코드베이스가 빠르게 복잡해질 수 있어서, “게임 엔진 프레임워크의 기본 구조를 이해하는 것”에 집중하는 방향으로 단순화했습니다. 질문 주신 내용에 대해 답변을 드렸는데요.답변이 부족했거나 더 궁금한 점이 있으시면 편하게 댓글 남겨주세요. 감사합니다!