Singleton Pattern (싱글톤 패턴)
✍️ 객체지향 프로그래밍에서 사용되는 디자인 패턴으로, 특정 클래스의 인스턴스가 오직 하나만 생성되고, 이 인터페이스에 대한 전역적 접근을 제공하는 패턴이다.
➡️ 이 패턴은 객체의 수명이 전체 애플리케이션에 걸쳐 유지되어야 할 때 유용하다.
- 자원의 낭비를 막기 위해 필요하다.
- 예를 들어, 애플리케이션에서 같은 데이터나 설정을 여러 번 생성할 필요가 없을 때 유용하다
- 중앙 집중식 관리가 필요할 때 필요하다.
- 예를 들어, 설정 정보나 상태를 중앙에서 관리하고 싶을 때 사용된다.
주요 특징
- 유일성
- 시스템에서 해당 클래스의 인스턴스는 오직 하나만 존재해야 한다.
- 전역 접근
- Singleton 객체에 대한 전역 접근 포인트를 제공하여 모든 클라이언트가 이 객체를 쉽게 사용할 수 있도록 한다.
- 지연 초기화
- 필요할 때 인스턴스를 생성하는 방식이 일반적이다.
구현 방법
Eager lnitialization : 클래스가 로드될 때 인스턴스를 미리 생성한다.
Lazy lnitialization : 인스턴스가 처음 요청될 때 생성한다.
Double - Checked Locking : 멀티스레드 환경에서 안전하게 인스턴스를 생성하기 위해 사용된다.
ex)
Eager lnitialization (즉시 초기화)
class Singleton {
static instance = new Singleton();
constructor() {
// ...
}
static getInstance() {
return this.instance;
}
}
Lazy lnitialization (지연 초기화)
class Singleton {
static instance;
constructor() {
// ...
}
static getInstance() {
if (!this.instance) {
this.instance = new Singleton();
}
return this.instance;
}
}
정리 📌 (쉽게 정리)
정의 : 하나의 물건이 딱 하나만 존재하도록 만드는 방법
필요 이유
1. 여러 번 같은 물건을 만들지 않아서 자원을 아끼고 싶을 때
2. 모든 사람들이 같은 정보를 쉽게 이용할 수 있도록 관리하고 싶을 때
✅ 물건이 필요할 때 한 번만 만들고, 그 후에 그 물건을 계속 사용한다.
<참고 사이트>
https://en.wikipedia.org/wiki/Singleton_pattern
Singleton pattern - Wikipedia
From Wikipedia, the free encyclopedia Design pattern in object-oriented software development A class diagram exemplifying the singleton pattern. In object-oriented programming, the singleton pattern is a software design pattern that restricts the instantia
en.wikipedia.org
728x90
SMALL
'CS 기술 면접 준비' 카테고리의 다른 글
인증 (Authentication) VS 인가 (Authorization) / 특징, 차이점 (0) | 2025.01.21 |
---|---|
쿠키 (Cookie)와 세션 (Session) (2) | 2025.01.21 |
의존성 주입의 방법 (0) | 2025.01.20 |
DTO (Data Transfer Object) (3) | 2025.01.20 |
Primary Key & Foreign Key (2) | 2025.01.20 |