kotlin(2)
-
[Kotlin] inline class
Inline class 왜 등장했나? 자바는 int, double 등 원시 타입이 존재하고 Integer, Double과 같은 원시 타입의 래퍼 클래스가 존재한다. 코틀린은 직접적인 래퍼 클래스를 제공하지는 않지만 Int, Double 등의 클래스는 필요에 의해 boxing 또는 unboxing 되며 때로는 원시타입처럼 때로는 래핑타입처럼 동작한다. 그런데 값 객체를 감싸서 사용하는 경우에 성능저하가 일어나는 문제가 발생하기 시작했다. 예를 들어, 갯수를 세는 객체를 class Count(val value: Int)이라는 클래스로 감싸서 사용하고 있었는데, 이 객체가 코드 상에서 너무 많이 생성되고 사라지는 빈도가 높다보니 JVM에 너무 많은 부하를 주는 것이다. 특히 Int 같이 원시타입으로 동작하는 ..
2021.04.09 -
[Spring Data Jdbc] 코틀린에서 wither를 인식하지 못하는 문제
자바에서 Spring Data Jdbc 사용할 때 setter 없이 id를 채워주려면(populate) 다음과 같이 Wither를 만들어주면 된다. @Getter @RequriedArgsConstructor public class Menu { @Id private final Long id; private final String name; private final double price; public Menu(String name, double price) { this(null, name, price); } public Menu withId(Long id) { return new Menu(id, name, price); } }코틀린에서도 다음과 같이 wither를 만들어주면 작동하겠거니 했다. class ..
2020.12.06