728x90

2022/10/03 2

Kotlin Contract

Kotlin 을 사용하다 보면 유용한 확장함수들을 많이 만들어서 사용하게 되는데요. 이 확장함수를 사용하다 보면 "스마트 캐스트" 와의 문제에 부딪히고는 합니다. 한번 코드를 통해 Smart Cast 를 알아보도록 합시다. Smartcast 위에서 설명한 예시를 코드로 보여주자면, 아래와 같은 상황인데요. 분명 isNotNull 이라는 제가만든 커스텀 확장함수로 NullCheck 를 함에도 불구하고 아래와 같이 `?(safe-null)` 을 써야만 하는 상황입니다. 이 상황은 왜 발생할까요? Kotlin 의 SmartCast 는 쉽게 얘기해서 컴파일러(Compiler) 가 Programmer 대신에 Casting 을 Smart 해주게 하는 기능을 뜻합니다. 즉, 위 코드가 SmartCasting 이 안되..

Kotlin 2022.10.03

Kotlin Spring JSR-303 Issue 해결

Kotlin JSR-303 Issue Kotlin Spring 을 통해 개발하다보면 생각보다 Spring 에서 Kotlin 스럽게 사용하기 위해 몇가지 Custom 을 해줘야 하는 상황들이 생깁니다. 아래와 같이 Kotlin Coroutines 는 Spring 5.3 부터 지원되는 Spec 으로 Controller 에서 suspend method 를 이용하는것을 가능하게 해줍니다. suspend modifier 와 hibernate validation Issue 따라서 기존의 Validation 들을 그대로 내비둔채 suspend modifier 를 붙여주게 되면 실제로 테스트 해볼때 아래와 같은 에러를 마주하게 됩니다. 이유는 hibernate-validation 이 Coroutines 를 Suppor..

Kotlin 2022.10.03
728x90