웹에서 css, js 등의 정적파일을 서버로부터 가져오기 위해서는 스프링 시큐리티 설정을 통해 해당 요청을 허용해야 합니다. 해당 코드는 스프링 부트 3으로 작성한 코드입니다.@Configuration@EnableWebSecuritypublic class SecurityConfig { @Bean protected DefaultSecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests((auth) -> auth.requestMatchers(PathRequest.toStaticResources().atCommonLocations()..
Spring Retry는 Spring 프레임워크에서 제공하는 모듈로, 특정 작업을 자동으로 재시도하는 기능을 지원합니다. 이 기능은 주로 네트워크 호출, 데이터베이스 쿼리, 원격 서비스 호출 등 외부 의존성이 강한 작업에서 일시적인 오류가 발생했을 때 유용합니다. Spring Retry를 사용하면 이러한 작업에 대해 재시도 로직을 간단하게 구현할 수 있습니다.주요 기능자동 재시도:Spring Retry는 특정 예외가 발생했을 때 자동으로 작업을 재시도할 수 있습니다. 재시도 횟수, 간격, 백오프(backoff) 전략 등을 설정하여 재시도 로직을 세밀하게 제어할 수 있습니다.백오프(Backoff) 정책:백오프는 재시도 사이의 대기 시간을 조정하는 방법입니다. Spring Retry는 고정된 간격(fixed..
@RestControllerAdvice를 이용하여 REST API의 모든 응답을 변환해주는 작업을 하려고 합니다. ResponseBodyAdvice 인터페이스를 구현하여 beforeBodyWrite 를 오버라이드하면 됩니다. 이것으로 API의 메서드 결과를 변환해서 새로운 결과를 응답하기 때문에 응답처리를 중앙화할 수 있다는 장점이 있습니다. 하지만 API의 메서드 반환값이 String일 경우에는 변환된 결과를 String class로 형변환을 할 수 없다는 예외를 발생시키기도 합니다. 문제의 코드는 AbstractMessageConverterMethodProcessor.writeWithMessageConverters 의 아래 표시된 영역이며, 형변환할 수 없다는 예외를 발생시킵니다. String이 ..
Ehcache는 Java 기반 애플리케이션에서 성능을 향상시키기 위해 사용되는 캐시 라이브러리입니다. 주로 데이터베이스 조회 결과나 계산 결과와 같은 자주 접근되는 데이터를 메모리에 저장하여 빠르게 액세스할 수 있게 해줍니다. Ehcache는 독립 실행형 캐시로 사용될 수도 있고, 분산 캐시로 구성하여 여러 노드 간에 데이터를 공유할 수도 있습니다.주요 기능메모리 캐싱: 데이터베이스나 원격 서비스로부터 자주 조회되는 데이터를 메모리에 저장하여 응답 시간을 단축시킵니다.디스크 캐싱: 메모리 사용량을 줄이기 위해 오래된 데이터를 디스크에 저장하고, 필요시 다시 메모리로 가져올 수 있습니다.분산 캐싱: 여러 노드 간에 캐시 데이터를 공유하여 확장성과 가용성을 높입니다.TTL (Time to Live) 및 TT..