본문 바로가기

카테고리 없음

싱글톤 패턴

singleton : 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만 그렇게 하지 않고 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는데 쓰이면 보통 데이터베이스 연결모듈에 많이 사용된다.

 

장점 : 하나의 인스턴스를 기반으로 해당 인스턴스를 다른 모듈들이 공유하여 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어든다. 그렇기 때문에 인스턴스생성에 많은 비용이 드는 I/O 바운드 작업에 많이 상용된다.

- I/O 바운드 : 디스크 연결, 네트워크 연결, 데이터베이스 연결

단점 : 의존성이 높아지며 TDD를 할 떄 걸림돌이 된다. TDD를 할 떄 단위 테스트를 주로 하는데, 단위 테스트는 서로 독립적이어야 하며 테스트를 어떤 순서로든 실행할 수 있어야 한다. 하지만 싱글톤 패턴은 미리 생성된 하나의 인스턴스를 기반으로 구현하는 패턴이므로 각 테스트마다 독립적인 인스턴스를 만들기가 어렵다 

- 의존성이란 종속성이라고도 하며 A가 B에 의존성이 있다는 것은 B의 변경 사항에 대해 A 또한 변해야 된다는 것을 의미한다.

 

흠... 무슨 뜻인지 몰라 일단은 따라 적는 중

차라리 따라 적은 영상을 다시 보는게 나을 지도

https://www.youtube.com/watch?v=DHo8qRCtmGU