싱글톤

Kotlin 코틀린의 object VS companion object
object VS companion object 코틀린은 싱글톤 클래스를 생성하기 위해 object declaration이라는 것을 사용한다. 싱글톤 클래스로 선언해야 할 경우에 클래스 명 앞에 class 대신 object를 사용함으로써 싱글톤 클래스를 생성하게 된다. 하지만 공부를 하다보면 companio object라는 것을 볼 수 있다. object와 companion object는 무엇이 다른지 알아보자. 1. object object는 크게 2가지로 사용된다. 1. object expression (객체 표현식) 2. object declaration (객체 선언) - 동반 객체(객체 선언을 클래스 내부에 사용한 것) 여기서 싱글톤 클래스를 생성하기 위해 사용되는 object의 쓰임은 2번째인 ..

Kotlin 코틀린의 싱글톤(Singleton)
싱글톤 1. 싱글톤 정리 싱글톤이란 어떤 클래스가 최초 한번만 메모리를 할당하고 그 메모리에 객체를 만들어 사용하는 디자인 패턴을 말한다. 즉 생성자의 호출이 반복적으로 이루어 지더라도 실제로 생성되는 객체는 최초에 생성된 객체를 반환해 주는 것이다. 객체를 생성할 때 생성자가 호출되고 메모리에 올라가는 등 비용이 발생하게 된다. 만약 객체를 생성하는 비용이 크다고 한다면, 객체를 자주 생성하는 일은 시스템에 큰 부담을 가져올 수 있다. 싱글톤 패턴은 객체를 한번만 생성하고 생성된 객체를 재사용 하면서 객체의 재생성 비용을 줄이는 패턴이다. 하지만 여기서 고려해야될 점이 있다. 1. 인스턴스화 하는 비용을 줄일 수 있다는 장점을 가지고 있지만, 한번 생성한 인스턴스를 반납하지 않기 때문에 무분별한 싱글톤..