singleton

    [Kotlin] @Volatile 키워드란?

    아래 코드는 Android developer 페이지의 Codelabs에서 제공하는 예시 코드이다. 해당 코드를 보면 Singleton 구현 시 변수에 @Volatile Annotation을 붙히는 것을 볼 수 있다. 이게 어떤의미 일까? // Annotates class to be a Room Database with a table (entity) of the Word class @Database(entities = arrayOf(Word::class), version = 1, exportSchema = false) public abstract class WordRoomDatabase : RoomDatabase() { abstract fun wordDao(): WordDao companion object..

    [DesignPattern] Singleton Pattern

    [DesignPattern] Singleton Pattern

    싱글톤 패턴! 단 하나만 존재하는 유일무이한 객체를 만들기 위한 패턴! 싱글톤 패턴을 정의하면 아래와 같습니다. 세상에서 단 하나뿐인 특별한 객체 단 하나뿐인 객체와 왜 필요하냐고 물으실 수 있으십니다. 하지만 용도는 무궁무진합니다. 디바이스를 위한 디바이스드라이버나 로그 기록용 객체, 대화상자, 스레드 풀 등등... 이런 형식의 객체는 2개 이상 만들게 되면 무엇인가 문제가 생기지요. 프로그램 상의 문제나 아니면 불필요하게 메모리만 덩그러니 차지하게 되는 그런 상황 말입니다. 사람들은 묻습니다. 그럼 전역변수를 쓰면 되지 않냐고요.하지만 싱글톤 패턴을 사용하는것이 전역변수를 사용하는 것보다 훨씬! 프로그램에 좋습니다. 전역변수를 사용하게 되면 프로그램이 시작되자마자 메모리 상에 생성되게 됩니다. 하지만..

    [C#] Singleton (싱글톤)

    Singleton Pattern 이란? -해당 클래스의 인스턴스가 하나만 생성하여, 어느 객체에서든 하나의 인스턴스로 접근 가능하도록 한다. 어디서든 하나의 인스턴스로 관리 및 조작해야할 필요가 있을 때 사용된다 ! 싱글톤 패턴에서는 생성자를 private로 선언하여 절대 외부에서 노출되지 않도록 합니다. instance라는 멤버 변수를 사용해서 static으로 전역에서 접근 가능한 메소드를 이용하여 인스턴스 만을 반환합니다. 그렇기 때문에 어디 어느 곳에서나 하나의 인스턴스로 조작 관리 가능합니다.! 시스템에서 전역으로 관리되고 단하나의 클래스에서만 정보가 유지되는 것을 원할때 -보통 시스템 자원관리나 정보를 관리합니다. 예를 들어서, 프린터가 하나있는데 그것에 대한 접근 인스턴스가 여러개가 생성이 되..