[kotlin] 코틀린 동반 객체의 확장 함수와 프로퍼티

코틀린에서 동반 객체(Companion Object)는 클래스 내에 정의되는 싱글턴 객체로, 해당 클래스와 관련된 유틸리티 메서드나 상수를 담는 데 사용됩니다. 기본적으로 동반 객체의 멤버는 클래스의 정적 멤버와 같은 역할을 합니다. 이번에는 동반 객체에 확장 함수와 프로퍼티를 추가하는 방법에 대해 살펴보겠습니다.

동반 객체 확장 함수

동반 객체에 확장 함수를 추가하려면 일반적인 클래스나 객체에 확장 함수를 추가하는 것과 유사합니다.

class MyClass {
    companion object {
        // 동반 객체에 확장 함수 정의
        fun CompanionFunction() {
            println("I'm a companion function")
        }
    }
}

// 동반 객체의 확장 함수 호출
MyClass.Companion.CompanionFunction()

위의 예제에서 볼 수 있듯이, MyClass의 동반 객체에 CompanionFunction이라는 확장 함수를 정의하고 호출하는 것이 가능합니다.

동반 객체 확장 프로퍼티

동반 객체에는 확장 프로퍼티를 직접 선언할 수 없지만, 확장 프로퍼티를 사용하여 동반 객체에 프로퍼티를 추가할 수 있습니다.

val MyClass.Companion.companionProperty: String
    get() = "I'm a companion property"

// 동반 객체의 확장 프로퍼티 사용
println(MyClass.Companion.companionProperty)

위 예제에서는 확장 프로퍼티를 사용하여 MyClass의 동반 객체에 companionProperty를 추가한 후 값을 출력하는 방법을 보여줍니다.

동반 객체의 멤버에 접근하는 방법은 클래스 멤버와 동일하게 사용할 수 있으며, 확장 함수와 확장 프로퍼티를 활용해 동반 객체에 기능을 동적으로 추가할 수 있습니다.

마무리

이번 포스트에서는 코틀린의 동반 객체에 확장 함수와 프로퍼티를 추가하는 방법에 대해 알아보았습니다. 동반 객체를 사용하여 유틸리티 메서드나 상수를 그룹화하고, 확장 기능을 활용하여 동적으로 기능을 추가할 수 있습니다.

참고: