brunch

Singleton Pattern

생성 패턴중 싱글톤 패턴에 대해서

by eddward park
01.png 피그마로 직접 그린 이미지


소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다.


위키에 정의된 싱글턴 패턴이다.


우리의 역사와 비교해 보면 한반도가 하나의 이름으로 불리운 고려, 조선 시대에는 한반도 영토를 두고 내부에서 전쟁을 벌인적은 없다.


한반도에 하나의 나라가 존재하면 영토와 관련한 문제가 발생하지 않지만 삼국시대와 같이 여러나라가 한반도에 존재한다면 반드시 전쟁이 뒤따른다는것을 역사적 사실을 통해 알 수 있다.


하나의 영토에 하나의 나라가 존재하면 영토 문제는 발생하지 않는다.



02.png 피그마로 직접 그린 이미지


우리가 가지고 있는 스마트폰에는 백라이트 조절, 음량 조절, 와이파이 연결등의 수많은 설정값이 있다.


또한 앱스토어에서 인스타그램, 페이스북, 스냅챗과 같은 앱들을 설치하여 사용을 하고 있다.


하나의 앱에서 음량조절을 해보면 다른 앱을 사용할때에도 변경한 음량 그대로 사용되는것을 볼수 있다.


싱글톤 패턴을 사용함으로써 얻는 이점은 메모리가 절약되고, 데이터 공유가 쉽다는 점이다.



03.png 피그마로 직접 그린 이미지

https://gist.github.com/kimmellj/92d8c231de8d4d682deb


위의 이미지는 싱글톤 패턴의 예제 코드이다.


코드 하단에 있는

console.log( "Are the two instances the same? " + (singleA === singleB) );

이 부분이 싱글톤을 잘 설명하고 있는 부분이다.


한번 생성된 인스턴스는 코드가 실행되는 동안 하나만 존재하는것을 볼 수 있다.


앞으로 여러분의 스마트폰 설정값을 변경할때 위의 내용들을 떠올리면 자연스럽게 싱글톤 패턴을 익힐수 있을거다.

keyword