#13 Singleton Pattern

Yumin·2025년 1월 21일

Computer Science

목록 보기
13/17

싱글톤 패턴
하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴.

public class Singleton {
    // 유일한 인스턴스를 저장하기 위한 정적 변수
    private static Singleton instance;

    // private 생성자를 사용하여 외부에서 인스턴스화하지 못하도록 방지
    private Singleton() {}

    // 유일한 인스턴스를 반환하는 정적 메서드
    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

Unity Engine에서 게임을 제작할 때 많이들 사용하는 싱글톤 패턴...

장점
인스턴스를 생성할 때 드는 비용이 줄어든다.
그렇기에 "인스턴스생성에 많은 비용"이 드는 I/O 바운드 작업에 사용
DB 연결 모듈에 사용.

단점
TDD(Test Driven Development)를 할 때 문제가 생긴다. TDD는 단위 테스트로 주로 하는데, 단위 테스트는 테스트가 서로 독립적이어야 한다.
하지만 싱글톤 패턴은 미리 생성된 하나의 인스턴스를 기반으로 구현하기 때문에 '독립적인' 인스턴스 생성이 힘들다.

개인적으로 알고 있는건 싱글톤 패턴의 경우 의존성이 높아지기 때문에 코드의 유연성이 떨어진다.

현재 제작중인 게임도 Manager에 많은 싱글톤 패턴으로 묶여 있는데 편하지만 나중에 고생하기 싫으면 꼭 장점과 단점을 알고 쓰자...!

profile
일본 게임회사에서 클라이언트 엔지니어로 활동중

0개의 댓글