개발/kotlin
spring boot kotlin 프로젝트에서 java 파일이 class 파일로 미생성 이슈
spring boot kotlin 프로젝트에서 /src/main/kotlin 폴더에 신규로 java 파일을 만들고 서버를 시작 했는데build 결과물인 class 파일이 생기는 /build/classes 폴더에 java 파일들이 class 로 안 생겼습니다.Java 파일이 src/main/kotlin 아래에 있으면 기본적으로 Kotlin 소스 폴더로 인식되어 Java 파일이 컴파일 대상에 포함되지 않습니다. Gradle이나 IntelliJ의 기본 설정에서는 Kotlin 소스 폴더(src/main/kotlin)와 Java 소스 폴더(src/main/java)를 구분합니다.Java 파일은 src/main/java 폴더에 생성하면 IntelliJ와 Gradle이 해당 폴더를 Java 소스 폴더로 인식하여 Ja..
람다 호출 축약 문법
Kotlin의 람다 문법 규칙함수의 마지막 매개변수가 람다인 경우, 람다를 함수 호출 괄호 () 밖으로 빼낼 수 있습니다. 이를 람다 호출 축약 문법이라 부릅니다.구현은 동일두 코드 모두 someFunction 함수에 동일한 람다 { println("람다 호출") }를 전달하며, 함수 내부에서 이 람다가 호출됩니다. 따라서 실행 결과는 동일합니다.// 일반적인 람다 전달someFunction(param1, param2, { println("람다 호출") })// 마지막 매개변수 축약 문법someFunction(param1, param2) { println("람다 호출") } 장점과 권장사항가독성 향상: 두 번째 코드처럼 람다 호출 축약 문법을 사용하는 것이 더 깔끔하고 가독성이 좋습니다.일관성 유지: K..
Spring Boot JPA와 Kotlin Reflect 오류 해결 방법
Spring boot + kotlin 프로젝트에서 JPA를 사용할때 아래와 같은 에러가 발생했습니다.Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'vehicleRepository' defined in com.exam.repository.VehicleRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: kotlin/reflect/full/KClasses 해당 에러 메시지는 Spring Boot 애플리케이션에서 vehicle..
JSON을 Kotlin DTO로 변환하는 방법 - Kotlinx.Serialization 활용 가이드
Kotlinx.Serialization은 Kotlin 언어에서 데이터 직렬화와 역직렬화를 수행하는 라이브러리입니다. 이는 Kotlin 멀티플랫폼 프로젝트에서 쉽게 사용할 수 있도록 설계되었으며, JSON, ProtoBuf, CBOR, XML 등 여러 포맷을 지원합니다. 여기서 JSON 포맷을 중심으로 설명하겠습니다. Kotlinx.Serialization의 주요 특징다양한 포맷 지원: JSON, ProtoBuf, CBOR, XML 등 여러 포맷을 지원합니다.Kotlin 멀티플랫폼 지원: Kotlin/JVM, Kotlin/JS, Kotlin/Native 등 다양한 플랫폼에서 사용할 수 있습니다.강력한 타입 안전성: Kotlin의 강력한 타입 시스템을 활용하여 직렬화와 역직렬화 과정에서 타입 안전성을 보장합..