싱글톤 패턴 관련 질문드립니다
직접 만든 게임을 모바일에서 출시해보고 싶어 유니티 공부를 시작했는데 서적이나 유튜브 강의를 보다보면
거의 싱글톤 패턴을 사용하며 권장하고 있습니다.
여러 커뮤니티에서 싱글톤패턴은 사용하면 안좋은점이 많고 사용하지 말아야 할 문제점 처럼 이야기 하는것을 보게되었는데
실질적으로 사용을 피해야하는 안좋은 코딩 방법인지, 사용한다면 개발하는데 제한이 있는 장르가 생기는지 궁금합니다.
답변 1
2
싱글톤이 굳이 필요하지 않은 상황임에도 '너무' 남발하는 것은 좋지 않고
객체 간의 생명주기가 꼬일 수가 있긴 합니다.
그러나 클라 개발할 때 UI, Resources, Sound, Scene 등 핵심 기능들은
서로 아무런 연관성이 없고 불시에 그 기능을 사용해야 할 때가 많습니다.
(실제로 유니티 엔진 자체에서도 관련 기능들을 static 함수로 제공하고 있죠)
따라서 이런 매니저 류의 클래스들은 싱글톤으로 가지 않을 이유가 전혀 없습니다.
특히 게임쪽은 사양 변화가 매우 심한 분야이기 때문에
아무리 설계를 완벽하게 잡아도 언제 대공사가 일어날지 모릅니다.
결과적으로 (싱글톤, static, 전역 변수)와 같이 언제 어디서든 꺼내 사용할 수 있게
만드는 편이 개발 속도 측면에서도 유리하고 속편합니다.
다 그렇진 않겠지만, 커뮤니티에서는 과시욕이 강한 어린 학생들이 많기에
그쪽 말은 100% 신용하면 됩니다.
싱글톤은 사용하면 죄악인 것처럼 얘기를 하지만,
막상 뭐가 문제라 생각하는지 궁금해서 물어보면
[어디선가 들었다~]라거나 [멀티쓰레드 환경에서 안전하지 않다!] 와 같은
전혀 생뚱맞은 답변이 달리는 것으로 미루어 보아
문제의 본질을 제대로 파악하지 못하는 분들이 많다는 것을 알 수 있었습니다.
그리고 결정적으로 제가 본 대부분의 큰 프로젝트에서는
싱글톤/전역변수를 이용해 전체 코드를 관리하는 부분이 '어딘가에는' 있었습니다.
여담인데 객체지향이 막 핫하게 뜨던 초창기에는,
프로그래머들이 클래스 개수를 늘릴 수록 잘하는거라는 미신(?)이 있어서
코드의 class 개수가 몇 개인지 갖고 논쟁하고 그랬다더군요.
결과적으로 게임 개발할 때
-- 1) 성능이 잘 나오고
-- 2) 버그없이 코드가 잘 굴러가고
-- 3) 개발 속도가 잘 확보된다면
나머지 부가적인 논쟁은 큰 의미가 없다고 봅니다.
ResourceManager 클래스 관련 질문
1
25
2
몬스터 HP 게이지바 이동
0
20
1
매니저 관련 질문이 있습니다.
0
69
2
비쥬얼 스튜디오에서 unity연결이 없습니다.
0
74
2
UI 기능 관련 질문이 있습니다!
0
70
2
픽셀 좌표 스크린 좌표
0
48
0
전체적으로 코드 읽는게 굉장히 오래 걸리네요...
0
105
2
카메라 #2 수업 캐릭터 쓰러짐 해결
0
96
1
플레이어 움직임이 끝날때, 기울어짐 현상
0
100
1
Input 적용과 관련하여 질문 있습니다.
0
91
1
디버그 불가.. Unity에 연결 불가
0
98
1
달리기 애니메이션 에러
0
98
2
오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다
0
75
1
GetKey 오류
0
128
2
에셋을 어디에 올려두신지 알 수 있나요?
0
114
1
재귀호출? 오류나는데 왜 이래요 ?
0
178
6
Animation blending 파라미터 계산
0
75
1
newPos와 to지점이 겹쳐져야 하는거 아닌가요?
0
112
3
오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다
0
96
2
질문있습니다
0
155
2
아 이거 소스코드 같은거 없나요?
0
152
3
질문 드립니다. string.IsNullOrEmpty(name)
0
94
2
@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?
0
139
2
유니티6 NavMesh 안되는분들
1
193
1





