코틀린을 공부하면서 자바와 의존성 주입 차이가 약간 다른 거 같아서, 이번 글을 통해 제대로 정리하고자 합니다.코틀린이 자바보다 간결하게 처리가 가능하다고 말로만 들었는데, 의존성 주입부터 간결해지는 거 같다..의존성 주입 방법은 제일 많이 사용하는 생성자 주입을 기준으로만 작성하겠습니다. (가장 흔히 쓰고, 안전한 방식)Java 생성자 주입@RestController@RequiredArgsConstructorpublic class HelloController { private final HelloService helloService;}자바에서는 @RequiredArgsConstructor와 private final 빈 클래스 선언을 통해 간단하게 생성자 주입을 처리합니다. @RestControll..
코틀린에서는 자바 + 스프링에서 지원하는 @slf4j을 사용할 수 없다. 그래서 코틀린에서 로깅을 찍기 위해서 로깅 관련 의존성을 추가하여 로그를 찍는 것이 가장 간편한 방법이다.의존성 추가implementation("io.github.oshai:kotlin-logging-jvm:7.0.0") KotlinLogging.logger 사용private val logger = KotlinLogging.logger {}fun main() { logger.trace { "This is trace log" } logger.debug { "This is debug log" } logger.info { "This is info log" } logger.warn { "This is warn log"..
코프링을 제대로 사용하기 위해서는 코틀린의 Scope Functions을 자유롭게 사용할 줄 알아야 한다고 생각하여,한 번 제대로 정리해 보고자 작성하였습니다. Scope Functions먼저, 스코프 함수 let을 어떻게 사용하는지 보겠습니다.letdata class Person(var name: String, var age: Int, var city: String) { fun moveTo(newCity: String) { city = newCity } fun incrementAge() { age++ }}fun main() { Person("Alice", 20, "Amsterdam").let { println(it) it.moveTo("London") ..
엘비스 연산자코틀린에서는 NullPointerException을 방지하기 위해 기본적인 자료형은 null이 될 수 없도록 되어있습니다.fun plus(n: Int?): Int { .. } null을 사용하기 위해서는 자료형 뒤에 ? 를 붙여야 합니다.이는 null을 허용한 파라미터임을 명시합니다.추가적으로 null인 경우에 예외 처리를 작성해주어야 합니다. ?.엘비스 연산자는 코틀린에서 null 일 수도 있는 값을 간편하게 처리하는데 유용합니다.fun plus(n:Int?):Int{ return n?.toInt()?:-1} ?. 뒤에 있는 메서드는 n이 null이 아닐 때만 실행이 됩니다. ?:fun plus(n:Int?):Int{ return n?.toInt()?:-1} ?:은 n이 null..