반응형

reified 2

제네릭

제네릭이란 형식 타입 혹은 임의 타입입니다. 자바나 코틀린 같은 대부분 프로그래밍 언어는 변수(혹은 객체) 타입을 명확하게 선언해야 합니다. String, Int 등의 타입을 명시해야 하는데, 때로는 클래스, 함수, 변수 등을 선언할 때 타입을 예측할 수 없거나 하나의 타입으로 고정할 수 없는 경우가 있습니다. 그렇다고 타입을 선언하지 않을 수는 없습니다. 이때 사용하는 것이 제네릭입니다. 클래스나 함수, 변수 등을 선언할 때 제네릭으로 형식타입을 선언하고, 실제 이용할 때 정확한 타입을 부여합니다. 제네릭을 가장 쉽게 볼 수 있는 곳이 컬렉션 타입입니다. val array = arrayOf("Kim", 10, true) 배열에 대입하는 데이터 타입은 문자열이나 숫자 등 다양할 수 있습니다. 그런데, 코..

Kotlin 2022.05.08

inline 함수

인라인(inline) 키워드는 자바에서는 제공하지 않는 코틀린만의 키워드입니다. 이러한 인라인 키워드를 이용하여 함수를 만들고 이를 잘 활용한다면 다양한 이득을 얻을 수 있는 경우가 있습니다. 하나씩 알아보도록 하겠습니다. A 함수에서 B 함수를 호출하면 B 함수로 진입하게 됩니다. 이때, A 함수에서 B 함수로 넘어가면서 발생하는 오버헤드가 있습니다. 이 과정은 큰 힘을 들이지는 않지만, 경우에 따라서는 속도에 유의미한 영향을 끼치기도 합니다. 아래 함수를 살펴보겠습니다. main 함수 -> sum 함수 -> main 함수 -> sum 함수 -> ... 이런식으로 오버헤드가 발생합니다. 함수 선언 앞에 inline 키워드를 붙이면 컴파일 될 때 해당 함수 코드가 호출되는 곳에 복사가 됩니다. for 문..

Kotlin 2022.04.01
반응형