본문 바로가기

안드로이드 자바 코틀린 기초 지식/안드로이드 기초 지식

싱글톤(singleton) 패턴

싱글톤(Singleton) 패턴은 특정 클래스에 대한 인스턴스를 단 한 번만 Static 메모리 영역에 할당하고 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다. 각 액티비티 들이나, 클래스마다 주요 클래스들을 하나하나 전달하는게 번거롭기 때문에 싱글톤 클래스를 만들어 어디서든 접근하도록 설계

사용하는 이유 :

  • 메모리 낭비 방지 : 고정된 메모리 영역을 사용하기 때문에 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있다. 프로젝트 내에서 자주 쓰이는게 있으면 static처럼 메모리 할당을 1번만 해서 메모리 절약.
  • 속도 :  이미 생성된 인스턴스를 활용하니 속도 측면에서도 이점이 있다고 볼 수 있다.
  • 데이터 공유 : 다른 클래스 간에 데이터 공유가 쉽다는 것이다

단점 :

  • 만약 싱글톤 인스턴스가 혼자 너무 많은 일을 하거나, 많은 데이터를 공유시키면 다른 클래스들 간의 결합도가 높아진다.
  • 결합도가 높아지게 되면, 유지보수가 힘들고 테스트도 원활하게 진행할 수 없는 문제점이 발생한다.