[Spring Project] Util 메서드는 Spring bean 으로 등록해야할까? (feat. static Method)
·
프로젝트 기록/spring
고민의 시작다시 사이드 프로젝트를 진행하게 되면서, 공통 로직에 대한 고민을 하게 되었는데요.고민한 내용으로는공통 유틸을 스프링 빈 등록 vs static method만약, 스프링 빈으로 등록해야 하는 근거는 뭔지이 두 가지가 궁금 했습니다.결론부터 말하면, 스프링 빈으로 등록 된 다른 Component 들과 상호 작용이필요한 경우에는 스피링 빈으로 등록하고 그 이외의 경우에는 static 메서드로 이루어진클래스로 만들어 사용하는 것이 좋다는 것 입니다.그럼 예시를 들어 작성해보겠습니다. 예시예시로 두가지 유틸을 작성해보겠습니다.아래의 메서드는 순수 자바로직으로만 이루어진 유틸로 LocalTime 을 생성하는 로직입니다.위에서 정리한 내용과 같이 다른 빈들 외부 리소스에 의존을 하지 않는 경우에stati..
[Spring] AOP 를 활용한 횡단 관심사 구현
·
프로젝트 기록/spring
🌏고민의 시작 프로젝트를 진행하며 로그에 대한 체크를 자주하게 되었습니다. 특히 구현한 메서드에 대한 input parameter 가 제대로 들어오는지 확인하고 싶었습니다. @Slf4j 를 이용한 추적을 진행해도 큰문제는 없다고 생각했지만, 점점 문제를 느끼게 되었습니다. 매번 반복되는 @Slf4j 어노테이션을 이용한 log 추적에 피로도 증가 체크를 위한 로그 표기의 일관성 부족(ex. log.info("매번 바뀌는 로그 추적 양식")) 이러한 문제를 느끼게 되었고, 지금까지 학습한 내용 중 이러한 문제를 해결하기 위해 AOP를 활용한 Input Parameter 추적 어노테이션을 개발하고 적용하게 되었습니다. 🌏고민 해결 방법 매번 반복되는 @Slf4j 어노테이션을 이용한 log 추적에 피로도 증가 ..
[spring] @ComponentScan 의 대상 위치
·
프로젝트 기록/spring
마주하게 된 문제 최근 프로젝트를 다시 시작하게 swagger 에 대한 설정을 하게 되었고, 적용이 안되는 문제를 만나게 되었고 빠르게 해결하게 되었다. 원인 우리가 @Configuration 과 @Bean 을 통해 어노테이션을 부여해 두었지만, 스프링 빈에 등록이 되어있지 않아 발생하게 된 문제이다. 해결 방법 @ComponentScan 이 적용되는 Scan 범위를 알고 있으면 바로 해결 할 수 있는 문제이다. @ComponentScan이 포함된 패키지와 그 하위 패키지를 스캔 대상으로 지정합니다. @SpringBootApplication 에 @ComponentScan 을 포함하고 있으므로 적용하고자 하는 설정을 @SpringBootApplication 어노테이션이 있는 것보다 하위패키지에 설정하면된다..