본문 바로가기
유니티5 독학 & 게임 제작

디자인 패턴 공부 - 싱글톤 패턴의 학습 -

by 인터넷떠돌이 2024. 3. 6.
반응형

안녕하세요?

 

디자인 패턴을 공부한 지도 약간의 시간이 지났는데, 이 싱글톤 패턴은 주로 게임 매니저와 같이 무언가를 공유하면서도 동시에 여러번 new를 붙여서 새로운 것을 만들지 않아도 되는 패턴이라고 할 수 있습니다. 이걸 전에 저는 파이썬으로 주식 자동거래 시스템을 만들때는 어떻게 자본금을 공유하는 것으로 해서 만들기 위해서 사용한 적이 있어서 이해는 아주 쉽게 되었습니다.

 

 

가장 먼저 싱글톤 패턴으로 구현하게 될 클래스를 만들어야 하는데, 우선 조심해야 하는 것은 위 스크린샷에서 private로 시작하는 것은 바로 클래스의 변수를 선언하는 과정이라고 할 수 있습니다. 여기서 반드시 static을 붙여야만 에러가 나지 않았으며, 녹색선은 클래스안의 전역 변수를 선언하는 과정에서 그 변수의 타입이며, 붉은선은 그 변수의 이름이라고 보면 됩니다.

 

 

그리고 나서 그 다음으로 진행하고자 하는 것은 myGold라는 변수를 public 형태로 만들어서 접근이 가능하도록 만들어 주도록 합니다. 이렇게 하는 이유는 바로 나주엥 이 싱글톤이 왜 쓰이는지 알아보기 위해서 입니다.

 

 

다음이 핵심인데, new로 새로이 이 클래스를 메모리에 매번 새로이 올리지 말고, 이 static이라고 지정이되어 있는 메서드를 만들어 주면 됩니다. 일단 여기서는 앞서 클래스 이름으로 타입이 지정된 변수가 null인 경우에만 오로지 new로 새로이 만들어서 올리지, 그렇지 않으면 올리지 말라는 식으로 만들어 보도록 합니다.

 

 

그리고 나서 이제 프로그램을 실제로 실행하는 단계에 있는 이 main이라는 함수로 와서는 위 스크린샷에서 볼 수 있는 것처럼 하나하나 만들어 주도록 합니다. 일단 싱글톤이 되어 있는 클래스를 3개의 각기 다른 변수가 불렀습니다.

 

 

이렇게 해서 정작 3번째 변수에서 myGold를 변동시키도록 하고, 3번째 변수가 아닌 2번째 변수에서 myGold를 불러 오도록 합니다. 이렇게 하는 것으로 어떻게 싱글톤이 작동하는지 알아보고자 합니다.

 

 

결국 각각 다른 변수에서 불려나온 myGold지만, 그 값은 마치 한개의 클래스에서 가지고 온 것처럼 연동이 되는 것을 확인할 수 있습니다. 이렇게 하는 것으로 일단 싱글톤을 학습해 보았습니다. 다만 실제로 유니티를 가지고서 이를 만들어 보면 상당히 복잡할 것이지만, 그래도 이런 패턴을 미리미리 학습은 해주어야 할 필요성은 지난번 첫 게임을 만들면서 뼈저리게 느끼기는 했습니다.

반응형