[kotlin] Lateinit이나 Lazy를 통한 데이터 타입 초기화 in 코틀린

코틀린은 변수를 선언할 때 즉시 초기화하지 않아도 되는 편의성을 제공합니다. lateinitlazy를 사용하여 데이터 타입을 필요한 시점에 초기화할 수 있습니다.

Lateinit

lateinit를 사용하면 초기화를 나중으로 미룰 수 있습니다. 보통 클래스의 프로퍼티로 사용됩니다.

lateinit var name: String

이 경우 초기화를 나중으로 미루고 싶을 때 특히 유용합니다. 하지만 초기화되기 전에 프로퍼티를 사용하면 UninitializedPropertyAccessException이 발생할 수 있습니다. 사용 전에 초기화 여부를 항상 확인해야 합니다.

Lazy

lazy는 처음 사용되는 시점에 초기화됩니다. 이는 애플리케이션이 실행 중에 프로퍼티를 초기화하는 데 유용합니다.

val name: String by lazy {
    // 초기화 코드
    "John Doe"
}

즉, name을 처음 사용하는 순간에 초기화 코드가 실행되고, 결과값이 name에 할당됩니다. lazy는 스레드 안전하며, 여러 스레드가 동시에 접근하더라도 초기화 코드가 한 번만 실행됩니다.

결론

코틀린은 lateinitlazy를 통해 데이터 타입을 효율적으로 초기화할 수 있는 다양한 방법을 제공합니다. 이를 통해 프로그래밍의 유연성과 효율성을 높일 수 있습니다.

참고 문헌: