C#/디자인 패턴

[C# / Unity] 디자인 패턴 - 싱글톤 패턴

윤창범 2021. 4. 25.

싱글톤 패턴의 경우, 이 글에 굳이 예시를 적지 않아도 될 정도로 이미 많은 자료들이 나와있다.

(거의 다른 패턴들보다도 비교적 참고자료가 많은 게 아닐까라는 생각이 든다)

 

패턴에 대한 설명은

glikmakesworld.tistory.com/2

 

유니티 디자인패턴 - 싱글톤 (Unity Design Patterns - Singleton)

싱글톤 패턴은 초보 개발자들이 가장 많이 쓰는 디자인 패턴이 아닐까 싶다. 클래스 구조를 짜다보면 다른 클래스의 함수를 사용해야 할 수도 있고, 전체 클래스들이 공유하는 전역변수가 필요

glikmakesworld.tistory.com

 

wergia.tistory.com/192

 

[Unity3D] Programming - 유니티에서의 싱글톤 패턴 활용

Programming - 유니티에서의 싱글톤 패턴 활용 [이 포스트의 내용은 유튜브 영상으로도 시청하실 수 있습니다] 여러 종류의 프로그램을 만들다 보면 어떤 문제를 해결하기 위해서 비슷한 형태의 코

wergia.tistory.com

ssapo.tistory.com/33

 

[Unity] C# MonoBehaviour Singleton 유니티 싱글톤 만드는 방법

# 싱글톤 패턴 (Singleton Pattern) 이란? [GoF의 디자인 패턴] 책에서의 싱글턴에 대한 요약은 이렇습니다. 1. 오직 한 개의 인스턴스만 갖도록 보장 외부 시스템과 상호작용 하면서 전역 상태를 관리하

ssapo.tistory.com

 

 

 

쉽게 보여주는 예제를 원한다면 

art-life.tistory.com/130

 

유니티-싱글톤패턴(Singleton) 설명 및 스크립트 예제

오랜만의 포스팅을 싱글톤으로 하게 되었네요. 일단 제 기준으로 유니티에서 사용하기 편하고 관리하기 쉬운 방법의 싱글톤 예제를 가지고 왔습니다. 싱글톤의 역할 싱글톤은 프로그래밍 디

art-life.tistory.com

 

 

추가적인 사용 방법은

unityindepth.tistory.com/38

 

유니티에서 싱글톤을 만드는 4가지 방법

원문 보기 유니티에서 싱글톤을 만드는 4가지 방법 여기 유니티에서 싱글톤(Singleton)을 사용하는 여러가지 방법이 있다. 1) 일반적인 방법, 2) "자체 포함" 방법, 3) 빠르지만 지저분한 방법, 4) C#을

unityindepth.tistory.com

mrhook.co.kr/266

 

Singleton Pattern_싱글톤_유니티(Unity)에서 사용가능한 5가지 싱글톤_유니티(C#)로 사용해 보는 디자인

유니티에서 활용 가능한 5가지 싱글톤 패턴에 대해서 알아보자 1. 일반적인 싱글톤 2. 모노(MonoBehaviour)를 사용한 싱글톤 3. 프로퍼티(Property)를 사용한 싱글톤 4. 제네릭을 활용한 싱글톤  4-1. 모노

mrhook.co.kr

 

 

보통은 게임 매니저나 특정 기능에 대한 부분 전체를 관리하는 매니저 클래스를 만드는 경우에 흔히 사용되는 패턴이다.

 

개발자들이 많이 사용하다보니 사용하는 방법도 여러가지고, 쉽게 사용하다보니 장단점들을 놓치고 그냥 사용하는 경우도 많다.

 

(장단점을 잊을 정도로 싱글톤의 유혹은 매우 강력하다)

 

하나의 클래스 인스턴스로 쉽고 빠르게 접근이 가능하다는 장점도 분명히 있지만

 

하나의 싱글톤에 많은 기능들과 데이터들을 넣었을 경우,

클래스들과 싱글톤의 클래스 인스턴스와의 의존도가 복잡해지는 경우,

싱글톤 남발로 인한 메모리의 비효율적인 점유에 대한 문제 등

 

참고자료에 모두 나와있는 내용이지만 위와 같은 경우에 발생하는 문제들도 있어서 단점 또한 분명히 존재한다.

 

 

사용방법도 단순하게, 예외처리, 제네릭 방식 등 여러 방법들이 존재한다.

 

 

싱글톤 패턴이 적용될만한 기능들은 보통 게임 매니저 외에도 데이터 관리라든지, 로컬라이징과 인게임의 중요한 메인 로직 등과 같이 여러 기능들이 있을 것이다.

(물론 이곳저곳 필요하다고 남발하면 나중에 프로젝트 유지보수가 힘들 수 있으니 충분히 고민을 거쳐서 적용하도록 하자)

 

패턴에 확실히 옳다고 할 정도로 정답이 있는 것도 아니고 자료는 충분히 널려있으니 여러 자료들을 참고해서 싱글톤 패턴의 장단점을 파악하고 사용방법에 따라 좀 더 용이할 것 같은 방향으로 구현하면 좋을 것 같다.

댓글