프로그래밍 언어/Kotlin
-
[Kotlin] Runtime 에 타입정보를 알아내는 방법프로그래밍 언어/Kotlin 2023. 5. 15. 20:37
Runtime 에 타입정보를 알아내는 법 (순수 Generic) fun printGenerics(value: T, classType: Class) { when (classType) { String::class.java -> { println("String : $value") } Int::class.java -> { println("Int : $value") } } } printGenerics("print generics function", String::class.java) printGenerics(1000, Int::class.java) Runtime 에 타입정보를 알아내는 법 (inline function) inline fun printGenerics(value: T) { when (T::class)..
-
[Kotlin] 객체 데이터 암호화 하기프로그래밍 언어/Kotlin 2023. 5. 8. 18:16
리소스 경로가 포함된 객체들은 Base64 로 암호화할 시, `/` 같은 문자가 포함되기에 Hex 로 암호화하는것이 좋다. decrpyt 의 반환형은 제네릭으로 이쁘게 처리하면 더 완벽하겠다. 코드 스니펫 object CipherEncryptor { private const val secretKey = "Ping9's SecretKey" private val log = LoggerFactory.getLogger(HMacEncryptor::class.java) fun encrypt(source: Any, objectMapper: ObjectMapper): String = Cipher.getInstance("AES/CBC/PKCS5Padding").run { init( Cipher.ENCRYPT_MODE, ..
-
[Kotlin] static nested Class, inner Class 문법 정리프로그래밍 언어/Kotlin 2022. 11. 6. 13:54
문법 Java keyword Kotlin keyword static nested class static class class inner class class inner class 코드 예시 class Item{ class Price{ // = public static class (In Java) } } class Item{ inner class Price{ // = public class (In Java) } } Reference Kotlin과 Java의 Nested and Inner Classes를 알아보고, Nested classes를 왜 사용해야 하는지 알아본다. | I’m an Android Developer. thdev.tech
-
[Kotlin] 코틀린에서 JPA Lazy Loading 적용하기프로그래밍 언어/Kotlin 2022. 9. 25. 21:00
실컷 열심히 API 를 작성하고 뿌듯해하며 테스트코드를 작성하여 실제 쿼리호출을 확인하였다. ??? 왜 쿼리가 예상한 것보다 더 나가지 ??? 상황은 아래와 같았다. A 엔티티 -> B 엔티티 (@OneToMany, Lazy Fetch) A 엔티티 -> C 엔티티 (@OneToOne, Lazy Fetch) A 엔티티 단독 조회 -> A,B,C 조회쿼리 발생 어디선가 getter 가 호출된 것인가... 아무리 찾아도 getter 가 호출된 흔적은 찾을 수 없었다. 그래서 구글링 결과 아래와 같은 포스팅을 만나게 되었다. 코틀린에서 하이버네이트를 사용할 수 있을까? | 우아한형제들 기술블로그 {{item.name}} 신규 시스템을 개발하면서 코틀린과 하이버네이트를 함께 사용한 경험을 나누기 위해 작성해봅니다..
-
[Kotlin] 코틀린 문법 요약 (자바코드로 훑어보기)프로그래밍 언어/Kotlin 2022. 9. 19. 22:11
자바코드를 코틀린 코드로 변환함으로써 코틀린을 이해해보는 코린이의 포스팅입니다. 계속 업데이트 될 예정입니다. 1. 변수 초기화 주석부분이 Java 코드입니다. 1-1. val vs var val user: User = User(name, eamil) // public final User user = new User(name, email); var userName: String = "Ping9" // public String userName = "Ping9"; 1-2. ? vs .? vs ?: var user: String? = User(name, eamil) // public User user = new User(name, email); var userName = user?.getName() // pu..