검색

Kotlin과 Jackson: non-null 원시 타입이 0으로 역직렬화되는 문제 분석

Kotlin 데이터 클래스와 Jackson을 사용할 때, JSON에 non-null 원시 타입(Long, Int) 필드가 누락되면 예외 대신 0이 할당되는 문제를 심층 분석합니다. 참조 타입과 동작이 다른 이유를 알아보고, DeserializationFeature, @JsonProperty, Nullable 타입 등 각 해결 방안의 장단점을 비교하여 최적의 전략을 제시합니다.
더 읽어보기 →

Kotlin과 Hibernate Proxy: 예측 불가능한 NullPointerException 분석

Kotlin 엔티티와 Hibernate 지연 로딩(Lazy Loading)을 함께 사용할 때, 간헐적으로 발생하는 NullPointerException의 원인을 심층 분석합니다. 프로퍼티와 동일한 이름의 커스텀 Getter가 Hibernate Proxy의 리플렉션 동작과 충돌하여 생기는 문제를 재현하고, 근본적인 해결 방안을 제시합니다.
더 읽어보기 →

Ktlint와 .editorconfig로 Kotlin 코드 스타일 커스터마이징하기

Kotlin의 대표적인 린터(Linter)인 Ktlint의 규칙을 프로젝트에 맞게 커스터마이징하는 방법을 알아봅니다. .editorconfig 파일을 사용하여 코드 스타일을 변경하고, 특정 규칙을 비활성화하며, IntelliJ 플러그인을 활용해 규칙 ID를 쉽게 찾는 실용적인 팁을 제공합니다.
더 읽어보기 →

Kotlin 컬렉션 처리: Iterable과 Sequence, 무엇을 언제 사용해야 할까?

Kotlin에서 컬렉션을 다루는 두 가지 방식, Iterable과 Sequence의 핵심적인 차이인 즉시 평가(Eager)와 지연 평가(Lazy)에 대해 알아봅니다. 각 방식의 동작 원리와 성능 특성을 비교하고, 언제 어떤 방식을 사용해야 더 효율적인 코드를 작성할 수 있는지 명확한 가이드를 제시합니다.
더 읽어보기 →