이전에 Webflux에서 Request에 대해 Parameter Logging 하는 걸 적었었는데, 지금 보니 Spring에서 자체적으로 제공해주는 Filter가 따로 있었습니다. CommonsRequestLoggingFilter인데, 나온 지 꽤 된 거 같은데 이걸 모르고 삽질을 하고 있었네요. 이걸 쓰면 더 쉽게 Logging이 가능했을 거 같은데@Configurationclass RequestLoggingFilterConfig( private val logRepository: TbLogRepository) { @Bean fun logFilter(): CommonsRequestLoggingFilter { val filter = CustomRequestLoggingFilte..
이전에 Log4jdbc로 JPA Logging 하기 및 Formatter 적용을 쓴 적이 있는데 지금 보니 너무 무식하게 모든 걸 불러와서 쓴 거 같아 부끄러운 마음에 새로 정정하여 써 보는 Log4jdbc로 JPA Logging 하기 및 Formatter 적용 입니다. Slf4jSpyLogDelegator를 상속 받아서 이용 하는 방법입니다. 그냥 Slf4jSpyLogDelegator를 쓰게 되면 변수는 잘 나오지만 한 줄로 길~~~게 찍히는 알아보기 어려운 모양새라 아래와 같이 수정했습니다.import net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegatorimport net.sf.log4jdbc.sql.Spyimport org.hibernate.engine.jdbc.int..
원래 기본적으로 Spring data jpa를 쓰게 되면 table 명이나 column에 CamelCase 규칙에 맞게 잘 적어두면 SQL로 변환할 때 알아서 UnderScore로 변환하게 되어 있습니다. 근데 프로젝트를 하면서 보니 작동을 하지 않는 일이 발생했습니다. 어딜 봐도 Naming 전략에 대해 수정한 곳도 없는데 대체 왜...? 심지어 yaml에 직접적으로 설정을 해줘도 동작하지 않았습니다. 한참을 구글링하며 찾아 봤는데 공짜 챗-GPT도 알아내지 못한 것을 구글 AI 요약님이 알려 주셨습니다(사실, 둘 다 공짜인 건 마찬가지긴 한데...). 원인은 아래와 같았습니다. EntityManagerFactory를 따로 설정 했거나 다중 DB 소스 설정을 해두면 문제가 발생 한다는데 정확하게 두 ..
JPA와 Kotlin JDSL을 섞어서 프로젝트를 진행하다 보면 Service 내에 SQL 문법을 작성해야 할 경우가 생깁니다. 물론, 이렇게 진행해도 크게 상관은 없긴 한데 제 생각에 Query 같은 것 들은 모두 Repository 내에 적혔으면 좋겠다는 생각이 들었단 말이죠. 너무 난잡해 보이는 것도 있고 분리가 되었으면 좋겠다는 생각도 들고.. 근데 무작정 Repository 내 Interface에 Kotlin JDSL을 사용한 로직을 작성하고 Method 명을 아무렇게나 작성하면 JPA의 Named Lookup Strategy에 따라서 에러가 발생하게 됩니다. @Query 메소드를 써서 따로 Query를 쓰지 않는 이상 JPA에서는 이건 우리가 만들어줘야 하는 쿼리구나?라고 인식하기 때문에 fi..
- Total
- Today
- Yesterday