티스토리 뷰
2022-10-28 01:23:46.064 INFO 29124 --- \[ restartedMain\] .RepositoryConfigurationExtensionSupport :
Spring Data JDBC - Could not safely identify store assignment for repository candidate interface org.deco.gachicoding.comment.domain.repository.CommentRepository. If you want this repository to be a JDBC repository, consider annotating your entities with one of these annotations: org.springframework.data.relational.core.mapping.Table.
최근 Spring Boot 구동을 하면 위와 같은 로그가 여러줄 출력됐다. 특별히 지금까지 문제없이 작동했어서 별 신경을 안 썼는데, 오늘 문득 눈에 띄어서 살펴봤다. 대충 Spring Data JDBC에서 프로젝트의 엔터티 클래스들을 식별할 수 없다는 의미인 것 같은데, 나는 Spring Data JDBC를 사용한 적이 없다.
혹시 몰라 build.gradle 의존성을 살펴봤더니 역시나 의존성 설정이 잘못되어 있었다. spring-boot-starter-data-jpa에서 이미 jdbc에 관해 의존성을 가지고 있는데, 불필요하게 spring-boot-starter-jdbc, spring-boot-starter-data-jdbc 의존성을 추가한 것이었다. 아마 처음 프로젝트 설정을 할 때 대충 jdbc니까 필요하겠지 싶어서 넣었던 것 같다.
깔끔하게 제거한 뒤 관련한 로그가 더이상 뜨지 않는 것을 확인했다.
혹시 몰라 테스트도 돌려보니 정상이었다.
한편, Spring Data JPA가 이미 존재하기도 하고 훨씬 간편한 것 같은데, Spring Data JDBC만 따로 의존성을 추가해서 사용하는 경우가 있을까? 궁금해져서 가볍게 찾아봤다.
위 글에 따르면 Spring Data JPA의 Lazy Loading, Dirty Checking, Cache 등의 기능은 경우에 따라 단점으로 작용할 수 있다고 한다. 이러한 어려운 요소들을 제거하고 기본적인 CRUD에 집중하는 모듈이라고 한다.
다음에 기회가 된다면 좀 더 자세히 다뤄봐야겠다.
'프로젝트' 카테고리의 다른 글
Full-Text Search로 쿼리 성능 개선하기 - built-in과 n-gram 파서의 차이 (0) | 2023.05.18 |
---|---|
정적 멤버 클래스로 DTO 관리하기 (0) | 2023.05.14 |
Spring boot 환경에서 CORS 정책 설정해보기 (0) | 2022.07.12 |
이메일을 이용한 회원 인증 API 구현하기 (0) | 2022.06.30 |