지금까지 2~3개의 프로젝트를 해보면서 사용했던 디자인 패턴은 MVC 중 하나인 Layered Pattern으로 구조가 잘 잡혀있고 관심사 분리가 명확한 것 같아 어느정도의 경력이 쌓일 때 까지는 다른 디자인 패턴들은 관심사 밖으로 두려고 했으나 최근 기업협업 및 오픈 소스 코드들을 보면서 MVC 패턴을 잘 보지 못하다보니 다른 디자인 패턴들도 어느정도는 알아 두어야 할 것 같아 끄적여본다.
디자인 패턴이란 프로그램을 설계할 때 발생햇던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결 할 수 있도록 하나의 규약 형태로 만들어 놓은 것
싱글톤 패턴은 디자인 패턴 중에서 가장 널리 알려진 패턴 중 하나이지만 사실 필자는...입문자다보니 저번 원티드 온라인 강의 때 처음 들어보았다..
간단히 정의해보자면...
싱글톤(Singleton) 패턴은 객체의 인스턴스가 오직 1개만(Single) 생성되는 패턴을 의미한다
생성자가 여러번 호출되도, 실제로 생성되는 객체는 하나이며 최초로 생성된 이후에 호출된 생성자는 이미 생성한 객체를 반환시키도록 만드는 것이다
사실 이렇게 정의하고 나서 든 생각은 다음과 같다..
메모리 측면
에서 볼 때, 메모리 낭비가 방지된다.다른 클래스
의 접근이 용이하여 데이터 공유가 원활하다.다른 클래스
의 필요에 따라 공유를 해야하므로 의존성이 높아진다.