Jacoco 자바코드의 커버리지를 체크할 때 사용하는 오픈소스 라이브러리이다. CI/CD와 연계해 테스트 커버리지를 충분히 채우지 못하면 배포가 되지 못하게 하는 등 구성원들에게 테스트 코드를 강제할 때 사용할 수 있다. 여기서 커버리지란 Test를 실행했을 때 Code가 얼마나 빈틈없이 실행됐는지 측정한 수치이다. Gradle 설정 Java 17 / Spring Boot 3.1.2 / Gradle 8.2.1 기준 build.gradle (groovy) plugins { id 'java' id 'org.springframework.boot' version '3.1.2' id 'io.spring.dependency-management' version '1.1.2' // 1. Jacoco 플러그인 추가 id..
😢 오류 내용 java.lang.SecurityException: class "org.hamcrest.Matchers"'s signer information does not match signer information of other classes in the same package at java.lang.ClassLoader.checkCerts(Unknown Source) at java.lang.ClassLoader.preDefineClass(Unknown Source) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.Secu..
구글 OAuth를 사용하던 도중 오류가 발생했다. APPLICATION FAILED TO START. 앱이 실행하는 것에 실패했다고 나온다. 오류 내용을 확인해보자. - 오류 내용 *************************** APPLICATION FAILED TO START *************************** Description: The dependencies of some of the beans in the application context form a cycle: ┌─────┐ | securityConfig (field private com.cos.security1.config.oauth.PrincipalOauth2UserService com.cos.security1.confi..
Resolved [org.springframework.dao.InvalidDataAccessApiUsageException: Modifying queries can only use void or int/Integer as return type! Offending method: public abstract com.example com.example.repository.myRepository.mySave(int,int,java.lang.String); nested exception is java.lang.IllegalArgumentException: Modifying queries can only use void or int/Integer as return type! Offending method: publ..
스프링 부트를 사용할 때 네이티브 쿼리를 통해 JPARepository를 다루는 경우가 있다. 그런데 아래와 같은 오류가 발생할 때가 있다. Resolved [org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query] TransactionRequiredException이 발생한 것인데, update/delete 쿼리를 실행할 때 @Transactional을 붙여주지 않았기 때문에 발생한 에러이다. 문제의 코드 publ..