스프링 (Spring)/스프링 팁 (Spring Tip)(6)
-
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 -
테스트 시 발생하는 위험 메시지 무시해보기
Background 사실 이 글을 작성하면서 조금 께름칙하네요.모름지기 시스템에서 뱉는 불편하다는 메시지는 잘 알고 해결해야될 듯 한데,이번 경우는 더 파고들어도 뭐가 안 나오고, 크게 걱정 없다는 조언? 들이 있어서 무시해보기로 합니다. 우리 시간은 소중하고, 짜증나는 빨간색 글씨를 없애기 위함이죠 A Java agent has been loaded dynamically 첫 번째 Warning입니다.WARNING: A Java agent has been loaded dynamically (/home/park/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.14.12/be4984cb6fd1ef1d11f218a648889df..
2024.05.01 -
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 -
Spring에 Jacoco 적용해보기
jacoco는 코드 커버리지를 보여주는 라이브러리입니다.물론 커버리지가 높다고해서 100% 안정성을 보장해주지 않지만, 커버리지가 낮으면 안정성도 낮은 건 맞습니다.테스트를 가시적으로 보지 않으면, 놓치는 것도 있으니 이를 보완할 겸 사용하는 걸 추천합니다. GitHub - jacoco/jacoco: :microscope: Java Code Coverage Library:microscope: Java Code Coverage Library. Contribute to jacoco/jacoco development by creating an account on GitHub.github.com jacoco Plugin 기본적으로 The JaCoCo Plugin - Gradle 문서를 참고하면 됩니다. The ..
2024.04.29 -
Spring에서 Gmail 보내기
이거 하려고 삽질을 꽤 했는데... 다음부터 하지 않기 위해 기록으로 남겨둡니다. App Password 먼저 당연히 로그인 가능한 gmail 계정이 있어야 합니다.그리고 https://myaccount.google.com/apppasswords 에 접속하고 로그인합니다.그럼 아래와 같은 화면이 등장합니다. 여기서 App name을 원하는 이름으로 작성한 후, Create 버튼을 누릅니다.이후 app 비밀번호 16자리가 등장하는데, 이걸 어딘가에 잘 기록해둡니다. 여담으로 기존 username, password 방식은 deprecated 되었습니다.따라서 구글에 떠도는 less secure apps 설정을 건드리라는 말은 무시하시길 바랍니다.참고 : Control access to less secure ..
2024.04.29