2013년 12월 29일 일요일

[Programming] 싱글톤 사용 이유, 단점

* 싱글톤 사용 이유

1) 지정한 클래스 인스턴스가 절대로 한개밖에 존재하지 않는 것을 보증하고 싶을 경우 싱글톤 패턴을 사용한다.

2) 보통 객체 생성 시 new 키워드를 사용하여 객체화 한다.
객체를 생성하게 되면 그 클래스의 인스턴스는 Heap 메모리에 올라가게 되고 그 인스턴스를 가리키고 있는 변수는 Stack 메모리 영역에 생기게 된다.
이러한 작업 자체가 시간이 걸리는 일이며 한 객체를 여러번 new하게 되면 시간이 더욱 오래 걸리게 된다.

그래서 자주 사용되는 객체는 한번만 생성하고 Heap에 존재하는 이 객체를 가르키도록만 만들면 된다. 즉, 객체가 생성될 때 Heap 영역에 올라가는 시간과 메모리를 줄일 수 있다.


* 싱글톤 단점

1) 싱글톤을 사용하여 여러곳에서 효과적으로 호출할 수 있어서 편하지만 결과적으로 프로그램의 Coupling을 높이게 되어 한곳에서의 변경이 다른 부분에 영향을 미치게 될 확률이 높아지게 된다.

2) 멀티 쓰레드 응용 프로그램에서 명시적 초기화가 필요한 경우, 쓰레딩 문제를 예방하기 위해서 조치를 취해야 한다.

댓글 없음:

댓글 쓰기