Language/Kotlin34 리플렉션(Reflection) in Kotlin & Spring 리플렉션은 런타임 시점에서 프로그램의 구조를 조사하거나 수정하는 기능을 가리킵니다. Kotlin에서는 Java보다 더 강화된 리플렉션 API를 제공하며, 특히 Spring과의 통합에서 이를 쉽게 활용할 수 있습니다. 1. Kotlin에서의 리플렉션 Kotlin에서의 리플렉션은 kotlin.reflect 패키지에서 주로 제공됩니다. :: 연산자를 사용하면 특정 클래스나 함수의 KClass 또는 KFunction 형태의 리터럴을 얻을 수 있습니다. 2. Kotlin 리플렉션의 주요 특성 Type-safe: Kotlin의 리플렉션 API는 타입 안전성을 보장합니다. Concise: :: 연산자를 통해 간결하게 메타데이터에 접근 가능합니다. Interoperable: Kotlin 리플렉션은 Java 리플렉션과 .. 2023. 8. 24. 클래스 리터럴이란? 안녕하세요, 오늘은 Java와 코틀린에서의 '클래스 리터럴'에 대해 알아보려 합니다. 클래스 리터럴이라는 용어에 익숙하지 않으신 분도 계실 텐데요. 그럼 바로 시작해보겠습니다! 1. 클래스 리터럴이란? 클래스 리터럴은 특정 클래스의 타입 정보를 담고 있는 객체입니다. 이는 프로그램 실행 중에 해당 클래스의 구조나 특성에 동적으로 접근할 때 사용되는 리플렉션(reflection)의 핵심 요소 중 하나입니다. 2. Java에서의 클래스 리터럴 Java에서는 .class 문법을 통해 클래스 리터럴에 접근할 수 있습니다. // Java의 클래스 리터럴 예시 Class stringClass = String.class; System.out.println(stringClass.getName()); //.. 2023. 8. 24. Kotlin의 `filter`와 `map` 함수 Kotlin은 콜렉션의 처리를 위한 강력한 API를 제공합니다. 그 중에서도 filter와 map 함수는 데이터 변환 및 처리에서 가장 널리 사용되는 함수들 중 두 개입니다. 1. filter 함수 filter는 주어진 조건을 만족하는 요소만을 선택하여 새로운 콜렉션을 생성합니다. 함수는 Boolean 값을 반환하는 람다를 인자로 받습니다. true를 반환하는 요소만 새로운 콜렉션에 포함됩니다. val numbers = listOf(1, 2, 3, 4, 5, 6) val evenNumbers = numbers.filter { it % 2 == 0 } // 결과: [2, 4, 6] 여기서, it은 현재 처리중인 요소를 가리킵니다. 2. map 함수 map은 주어진 콜렉션의 각 요소를 변환하여 새로운 콜렉션.. 2023. 8. 24. Kotlin에서 람다의 라벨링 Kotlin은 함수와 람다를 매우 강력하게 지원하는 언어입니다. 때로는 람다 안에 람다, 또는 여러 개의 람다를 중첩해서 사용하는 경우도 많습니다. 이럴 때, 특정 람다의 return을 원할 때 또는 특정 람다를 참조하고 싶을 때, 람다에 라벨링을 사용하게 됩니다. 라벨링의 필요성 람다 내부에서 return 키워드를 사용하면, 기본적으로 가장 깊은 람다를 빠져나오게 됩니다. 이를 '비로컬 리턴'이라고 부릅니다. 그러나 때로는 바로 상위의 람다나 특정 람다에서만 리턴하고 싶을 경우가 있습니다. 이럴 때 라벨을 사용하면 특정 람다의 범위에서만 return을 할 수 있습니다. 라벨링의 사용법 라벨은 @라벨이름 형식으로 작성하며, 람다 앞에 붙여 사용합니다. 예제를 통해 자세히 알아보겠습니다. fun main(.. 2023. 8. 23. 이전 1 ··· 5 6 7 8 9 다음 728x90