편집 기록

편집 기록
  • 프로필 김선우님의 편집
    날짜2018.06.21

    싱글톤 클래스의 단점 및 오버헤드는?


    안녕하세요. C++, DirectX로 게임 개발하고있는 초보 개발자입니다.

    저의 질문은 게임 뿐만아니라 소프트웨어 개발시에 여러가지 디자인 패턴이 적용되는데 그 중 Singleton은 전역변수 대신하여 어느 소스파일에서나 쉽게 접근하는 장점이 있는데 편하게 사용하는 만큼 단점은 별로 없는 것 같아요.

    제가 아는 단점이라함은 인스턴스가 하나만 존재할 때 사용하여야 하는 정도. 제가 실제 게임에 적용하는 부분은 SceneManager나 BulletManager 등(이 외에도 여러 곳에서 사용 중입니다.)으로 주로 'Manager'라고 불리오는 객체? 로 사용하고 있습니다. 이는 하나의 인스턴스로 사용하기만 한다면 아무런 문제가 없는 것 같습니다.

    어느 소스파일에서나 exturn 없이 GetInstance를 매크로로 정의하여 쉽게 접근하여 사용하는데 이때 발생하는 오버헤드는 클래스 멤버변수로 존재하는 것보다는 상식적으로 더 크다고는 생각합니다. 하지만 그 오버헤드가 미미할정도로 작다면 계속 사용할 예정인데 게임의 생명은 FPS다보니 이것 조차 무시할 수 없을 것 같네요.

    무튼 결론은 싱글톤 패턴으로 사용하는 것의 단점이 뭐가있을까요? 또 이때 발생하는 오버헤드는 신경쓸만큼 존재하나요? 게임 개발 및 소프트웨어 개발시 싱글톤이 많이 사용되는지?

  • 프로필 알 수 없는 사용자님의 편집
    날짜2016.04.06

    싱글톤 클래스의 단점 및 오버헤드는?


    안녕하세요. C++, DirectX로 게임 개발하고있는 초보 개발자입니다.

    저의 질문은 게임 뿐만아니라 소프트웨어 개발시에 여러가지 디자인 패턴이 적용되는데 그 중 Singleton은 전역변수 대신하여 어느 소스파일에서나 쉽게 접근하는 장점이 있는데 편하게 사용하는 만큼 단점은 별로 없는 것 같아요.

    제가 아는 단점이라함은 인스턴스가 하나만 존재할 때 사용하여야 하는 정도. 제가 실제 게임에 적용하는 부분은 SceneManager나 BulletManager 등(이 외에도 여러 곳에서 사용 중입니다.)으로 주로 'Manager'라고 불리오는 객체? 로 사용하고 있습니다. 이는 하나의 인스턴스로 사용하기만 한다면 아무런 문제가 없는 것 같습니다.

    어느 소스파일에서나 exturn 없이 GetInstance를 매크로로 정의하여 쉽게 접근하여 사용하는데 이때 발생하는 오버헤드는 클래스 멤버변수로 존재하는 것보다는 상식적으로 더 크다고는 생각합니다. 하지만 그 오버헤드가 미미할정도로 작다면 계속 사용할 예정인데 게임의 생명은 FPS다보니 이것 조차 무시할 수 없을 것 같네요.

    무튼 결론은 싱글톤 패턴으로 사용하는 것의 단점이 뭐가있을까요? 또 이때 발생하는 오버헤드는 신경쓸만큼 존재하나요? 게임 개발 및 소프트웨어 개발시 싱글톤이 많이 사용되는지?