Kotlin

[Kotlin] 싱글톤(Singleton)을 사용하는 이유 : kotlin object

yujinius 2024. 7. 22. 21:50

싱글톤을 사용하는 이유

1. 전역 접근점 제공

싱글톤 패턴은 애플리케이션 전체에서 동일한 인스턴스를 공유하도록 하여, 특정 클래스의 인스턴스를 전역적으로 접근할 수 있는 단일 접근점을 제공한다. 이를 통해 전역 변수를 사용하지 않고도 객체를 쉽게 사용할 수 있다.

2. 인스턴스 제어

싱글톤 패턴은 클래스의 인스턴스 생성을 제어하여 오직 하나의 인스턴스만 존재하도록 보장한다. 이를 통해 인스턴스 생성을 제어하고, 불필요한 객체 생성을 방지할 수 있다.

3. 리소스 절약

싱글톤 패턴은 단 하나의 인스턴스를 사용하므로, 동일한 객체를 여러 번 생성하는 대신 하나의 인스턴스를 재사용하여 메모리와 기타 리소스를 절약할 수 있다.

4. 상태 유지

애플리케이션 전역에서 상태를 유지해야 하는 경우 싱글톤 패턴이 유용하다. 싱글톤 인스턴스를 통해 상태를 관리하고 공유함으로써, 애플리케이션의 일관성을 유지할 수 있다.

5. 상호 배제

멀티스레드 환경에서 공유 자원에 대한 접근을 제어할 때 싱글톤 패턴을 사용하여 상호 배제를 구현할 수 있다. 싱글톤 인스턴스를 통해 스레드 안전하게 자원에 접근하고 제어할 수 있다.

6. 로깅과 설정 관리

싱글톤 패턴은 로깅 기능이나 설정 관리와 같은 전역적으로 접근해야 하는 기능에 자주 사용된다. 예를 들어, 애플리케이션의 모든 부분에서 로깅을 수행하거나 설정을 읽고 쓸 때 싱글톤 패턴이 유용하다.

object Logger {
    fun log(message: String) {
        println("Log: $message")
    }
}

fun main() {
    Logger.log("Application started")
    Logger.log("An event occurred")
}

위 예제에서 Logger 객체는 싱글톤으로 정의되어 어디서든 접근할 수 있다. 이 객체의 log 메서드를 사용하여 애플리케이션의 로그를 기록할 수 있다.

싱글톤을 사용하는 이유 결론

싱글톤 패턴은 전역 접근점 제공, 인스턴스 제어, 리소스 절약, 상태 유지, 상호 배제, 로깅과 설정 관리 등 다양한 이유로 사용된다. 이를 통해 애플리케이션의 일관성을 유지하고, 효율적으로 자원을 관리할 수 있다. 코틀린의 object 키워드를 사용하면 싱글톤 패턴을 쉽게 구현할 수 있다.