공부 흔적남기기

Kotiln const val를 사용하는 이유 본문

web study

Kotiln const val를 사용하는 이유

65살까지 코딩 2025. 1. 29. 22:19
728x90
반응형

Kafka에 Topic이름을 상수화해서 사용하고 싶어서 다음과 같이사용했다.

companion object{
    val ECOMMERCE_ORDER_QTY_TOPIC = "ecommerce.order-topic"
}

 

@KafkaListener(topics = [KafkaConsumerConfig.ECOMMERCE_ORDER_QTY_TOPIC])

 

다음과 같이 사용했을 떄 Only 'const val' can be used in constant expressions Error가 떨어졌고 

companion object{
    const val ECOMMERCE_ORDER_QTY_TOPIC = "ecommerce.catalog-topic"
}

다음과 같이 수정 한 후 잘 동작되었다.

 

이전에는 그냥 val을 쓰면 상수처럼 동작하는줄 알았지만 const를 붙여야 상수처럼 동작함을 알게되었다.

그럼 const val와 그냥 val의 차의점에대해 알아보자.

 

둘다 Immutable하다는 공통점이 있지만

 

val은 런타임 시점에 객체로 생성되어 stack이나 Heap에 생성이 될 것이고

const val은 컴파일 시점에 바이트코드로 직접 치환되어 사용 될 것이다.

 

따라서 const val을 사용함으로써 메모리와 컴파일의 비용을 낮춰줄 수 있다는 점이 있을 것 같다. 

따라서 변하지 않는 불변 값을 사용할 경우 const val를 사용하도록 하자

 

728x90
반응형