kotlin(3)
-
Kotlin 플러그인 All-open 파헤치기 (feat, JPA Fetch)
All-open 코틀린의 클래스와 메소드들은 기본적으로 final 입니다.예를 들어 아래와 같은 Parent 클래스가 있다고 하면class Parent { fun hello() = "hello world!"} 이제 Parent 클래스를 상속하지 못합니다. 말 그대로 final 이기 때문에 건드릴 수 없죠 클래스를 open 시켜준다고 한들open class Parent { fun hello() = "hello world!"} 마찬가지입니다. 따라서 아래와 같이 모두 open 키워드를 달아주어야 상속하거나 오버라이드 할 수 있습니다.open class Parent { open fun hello() = "hello world!"} all-open 플러그인은 사전에 정해둔 어노테이션을 클래..
2024.05.18 -
Kotlin 답게 간단하게 로깅해보기
slf4j 스프링에서 간단하게 로깅할 필요가 있었는데찾아보니 코틀린 진영에서는 kotlin-logging, klogging이 꽤나 유명한가보군요 GitHub - oshai/kotlin-logging: Lightweight Multiplatform logging framework for Kotlin. A convenient and performant logging facadLightweight Multiplatform logging framework for Kotlin. A convenient and performant logging facade. - oshai/kotlin-logginggithub.com GitHub - klogging/klogging: Kotlin logging library with ..
2024.04.30 -
Mockito를 이용해 JpaRepository 테스트하기
Mockito Mock이란 건 진짜를 흉내내는 가짜를 의미합니다.가령 아래 코드가 있다고 하면repository.save(entity)실행하고 싶으면 repository 구현부가 존재해야겠죠.하지만 테스트 단계에서 실제 데이터베이스를 연결해서 사용하기란 참 난감합니다.로컬의 데이터베이스를 사용한다고 해도, 테스트 자체가 실제 데이터베이스에 강하게 결합되어 있다는 건 여전합니다. 따라서 저 구현부를 그럴듯하게 흉내내주는 것이 필요하고, 이때 Mock 개념을 사용하는 것입니다.repository.save 함수에 어떤 걸 인자로 제공하면, 이걸 무조건 리턴하도록 하세요. 이렇게 코드에서 직접 주고 받고하는 것들을 작성하므로 다른 모듈에 의존하지 않는다는 장점이 있습니다. Mockito는 mocking 프레임..
2024.04.30