본문 바로가기
공부/디자인패턴

[디자인패턴] 싱글톤 패턴

by 미네밍 2020. 7. 26.

싱글톤 패턴

1. 싱글톤 패턴이란

- 어플리케이션 시작 시, 객체에 딱 한번만 메모리를 할당하고, 한 번 생성한 객체를 계속 사용하는 방식.

- 한 번 인스턴스를 만들어 놓고, 그 인스턴스를 시스템 어디서든 접근가능하도록 만드는 방식.

 

2. 사례

- DBCP, 쓰레드풀, 캐시, 대화상자, 사용자설정, 레지스트리 설정, 로그기록 객체 등

- 모든 시스템이 한가지의 객체만을 사용해야 할 때 적합. ex) 조회 수 카운팅

 

3. 장점

- 불필요한 자원낭비를 막는다.

   * 객체 메모리를 딱 한 번 할당하기 때문에, 두번째 이용 시 부터는 객체의 로딩시간이 줄어든다.

 

4. 단점

- 결합도가 높아진다. 

   * 하나의 클래스가 하는 일이 많아짐. 클래스의 경우 고유의 기능을 잘 처리하도록 적당히 쪼개져야 하는데(응집도), 하나의 객체가 하는 일이 많아지게 된다면 결합도가 높아질 수 있음. 이는 객체지향의 '개방-폐쇄' 원칙을 위반하는 결과를 가져옴.

   * 개방-폐쇄 원칙이란, 확장에는 열려있고 수정에는 닫혀있어야 한다는 원칙이다. (추후 조금 더 정리해서 메모)

   * 싱글톤 패턴 객체를 수정하게 되면, 이를 사용하는 모든 객체에 영향을 끼칠 확률이 생긴다.

- 멀티스레드 환경에서 고려할 점이 많다.

   * 싱글톤 패턴 사용 시 고려해 주어야 할 점이 많다. 동기화가 되지 않을 때 문제점이 생길 수 있다. 

   멀티스레드 환경에서의 싱글톤패턴 - https://ithub.tistory.com/61

https://www.gpgstudy.com/forum/viewtopic.php?t=5138

 

Singleton 사용하시는 개발자분들 몇 %나 되시는지... - GpgStudy 포럼

회원 전용입니다. 프로그래밍 관련 질문&논의는 금지! 운영자: 류광 zupet 전체글: 2764 가입일: 2003-05-13 03:34 사는 곳: NCSOFT LE팀 전체글 글쓴이: zupet » 2005-02-18 12:48 안녕하세요. 따라하기 마테리아��

www.gpgstudy.com

참고사이트

https://siyoon210.tistory.com/88

 

객체 설계의 응집도란?

응집도? 객체 지향의 이상적인 설계를 위한 많은 원칙들을 한줄로 요약하면, "응집도는 높이고, 결합도는 낮춘다!" 입니다. 설계 부분은 이러한 개념적인 부분이 많아 경험이 수반 되지 않으면 �

siyoon210.tistory.com

https://lng1982.tistory.com/124

 

개방 폐쇄 원칙 OCP (Open-Closed Principle)

"클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다" 난 위의 OCP 정의를 처음 접했을 때 이해가 되지 않았다. 헌데 토비의 스프링3.1 책을 읽게 되면서 그 의미를 이해하게 ��

lng1982.tistory.com

커넥션풀 - https://linked2ev.github.io/spring/2019/08/14/Spring-3-%EC%BB%A4%EB%84%A5%EC%85%98-%ED%92%80%EC%9D%B4%EB%9E%80/

'공부 > 디자인패턴' 카테고리의 다른 글

[디자인패턴] 디자인패턴의 종류  (0) 2020.07.26

댓글