싱글톤 패턴이란 무엇인가?

|

싱글톤 패턴이란?

앱이 시작되어 클래스가 생성될 때 최초 한번만 메모리를 할당합니다.
중복은 안되며 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴입니다.

.env 나 레지스트리같은 설정 파일의 경우 객체가 여러개 생성되면 설정 값이 변경될 수 있습니다.
싱글톤 패턴은 인스턴스 1개만 생성되기 때문에 하나의 인스턴스를 메모리에 등록하여
여러 쓰레드가 해당 인스턴스를 공유하여 사용할 수 있게끔 할 수 있습니다.

장점

  • 고정된 메모리 영역을 얻으며 한번의 new로 인스턴스를 사용하기 때문에 메모리 낭비를 방지합니다.
  • 싱글톤으로 만들어진 클래스의 인스턴스는 전역이기 때문에 다른 클래스의 인스턴스들이 데이터 공유하기 유리
  • 인스턴스가 절대적으로 한개만 존재하는 것을 보증하고 싶을 경우 사용
  • 두 번째 이용시 부터는 객체 로딩 시간이 줄어 성능이 좋아지는 장점

단점

  • 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우 다른 클래스의 인스턴스간 결합도가 높아짐
    (개방-폐쇄 원칙 위배)
  • 따라 객체 지향 설계 원칙에 어긋나 수정이 어려워지고 유지보수 비용이 높아질 수 있음
  • 멀티쓰레드 환경에서 동기화 처리를 하지 않으면 인스턴스가 2개 생성될 수 있는 가능성

싱글톤 패턴은 꼭 필요한 경우가 아니라면 지양하는 것이 좋습니다.

참조

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다