2018년 5월 14일 월요일

[DesignPattern]Singleton Pattern

자바의 싱글톤의 주관적인 생각을 담은 내용입니다.

싱글톤 패턴은 웹어플리케이션 과정을 입문하면서 처음으로 알게된 자바 디자인 패턴이다. 그때 당시에는 DB커넥션할때 일일히 DB커넥션 객체를 인스턴스 할 필요 없이 싱글턴의 getInstance 메서드를 호출해서 하나의 객체를 전역으로 사용하는 부분이 편리했었다. 이 부분 외에 싱글톤의 효율적인 메모리 할당에 대해서는 몰랐던것 같다.

싱글톤의 이점으로 고정된 메모리를 할당하여 부분별하게 사용되는 메모리 낭비를 줄일수 있는것 같다.

멀티쓰레드나 분산처리 환경의 싱글톤은 자바의 객체지향설계원칙중 개방패쇄원칙에 위배나 데이터 동기화 문제가 발생될수도 있어 이런부분에 대해 보완이 필요할것 같다.

개방패쇄원칙은 JDBC를 예를 들어 설명할수 있을것 같다. 자바 프로그램에서 JDBC를 통해 Oracle이나 MS-SQL에 접근이 가능하다. 접근하는 DB가 MY-SQL, DB2가 추가된다고 해도 자바 프로그램에 영향이 없다.

싱글톤과 자바의 개방패쇄원칙을 적용한 디자인 패턴에는 ENUM을 사용한 팩토리 메소드 패턴이 있으며 싱글톤만 사용하는 경우는 남용하기보다 목적에 맞게 적당히 사용하는게 좋을것 같다.

Reference(참조)
http://server-engineer.tistory.com/225
http://limkydev.tistory.com/m/37?category=957882
http://effectiveprogramming.tistory.com/m/entry/Singleton-패턴?category=660013

댓글 없음:

댓글 쓰기