-
싱글톤패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 싱글톤 패턴은 프로그램에서 데이터베이스 연결이 필요한 경우, 매번 새로운 연결을 생성하면 리소스 낭비가 발생할 수 있다 그래서 싱글톤 패턴을 사용하여 한 번 연결을 생성한 후에는 해당 연결을 여러 곳에서 공유하여 사용하게 된다. 이렇게 하면 리소스를 효율적으로 관리할 수 있다.
하지만, 싱글톤 패턴은 오용될 경우 부작용을 일으킬 수 있으므로 신중하게 사용해야 한다. 일반적으로 멀티스레드 환경에서 동시에 접근하는 경우에는 동기화 문제에 유의해야한다 또한 싱글톤은 전역 상태를 유지게 되면서 여러곳에서 해당 객체를 사용하고 변경 할 수 있게 때문에 상태 관리가 어려울 수 있다 예기치 않은 상태 변경으로 인해 예상치 못한 동작이 발생할 수 있고 디버깅과 유지보수를 어렵게 만들 수 있다.
class Singleton { constructor() { if (!Singleton.instance) { Singleton.instance = this } return Singleton.instance } getInstance() { return this } } const a = new Singleton() const b = new Singleton() console.log(a === b) // true