[안드로이드] 싱글톤(Singleton) 패턴이란?

J·2023년 3월 20일
1

안드로이드

목록 보기
19/29

싱글톤(Singleton) 패턴이란, 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다.

싱글톤 패턴을 사용하는 이유는, 메모리 낭비를 방지할 수 있기 때문인데,
최초 한 번의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있다.
뿐만 아니라 이미 생성된 인스턴스를 활용하니 속도 측면에서도 이점이 있다고 볼 수 있다.

또 다른 이유는 클래스 간의 데이터 공유가 쉽기 때문인데,
싱글톤 인스턴스가 전역으로 사용되는 인스턴스이기 때문에 다른 클래스의 인스턴스들이 접근하여 사용할 수 있다.
하지만 여러 클래스의 인스턴스에서 싱글톤 인스턴스의 데이터에 동시에 접근하게 되면 동시성 문제가 발생할 수 있으니 이점을 유의해서 설계하는 것이 좋다.

이 외에도 도메인 관점에서 인스턴스가 한 개만 존재하는 것을 보증하고 싶은 경우, 싱글톤 패턴을 사용하기도 한다.

싱글톤 패턴의 문제점

  1. 싱글톤 패턴을 구현하는 코드 자체가 많이 필요하다.
  2. 테스트 하기 어렵다.
  3. 의존 관계상 클라이언트가 구체 클래스에 의존하게 된다.

0개의 댓글