본문 바로가기

SpringBoot3

Springboot + Redis + Kafka 설치부터 설정, 실행 과정 최근 수정이 적고 반복적으로 질의 되는 DB 데이터를 Cache할 일이 생겼습니다. 어떤 방식으로 할까 고민하다. 최근 많이 사용되는 Redis Cache, Kafka 방식을 선택하였고 그 과정을 간단하게 기록으로 남깁니다. 애플리케이션이 A, B 두개가 있다고 가정하고 B에서는 API를 통해 반복적으로 조회가 일어납니다. 반복적인 질의는 불필요하므로 캐시를 적용합니다. 이때, A서버에서 데이터의 저장, 수정, 삭제 등과 같은 트랜잭션이 일어나게 되면 Kafka를 통해 B 서버로 변경을 알리게 됩니다. B서버는 이를 감지하고 Redis 캐시를 무효화 하고 새롭게 데이터를 Redis Cache에 적재합니다. Redis 설정Redis 설치Redis는 메모리 내 데이터 구조 저장소로, 캐시, 데이터베이스, 메.. 2024. 10. 16.
인증 FormLogin SpringSecurity에는 세부적인 보안 기능을 설정할 수 있는 API를 제공합니다. 스프링 시큐리티의 인증 플로우 1. 간단한 FormLogin 구현 1.1 Security Config 파일 작성 @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig { private final AuthenticationService authenticationService; @Bean public WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.ignoring() .mvcMatchers("/images/**", "/favicon.ico","no.. 2023. 12. 12.
동시성 이슈 동시성 이슈는 여러 스레드나 프로세스가 동시에 실행될 때 발생하는 문제입니다. 이러한 문제는 주로 공유 자원에 대한 동시 접근, 경쟁 조건, 데드락 등과 관련이 있습니다. 1. 공유 자원에 대한 동시 접근 : 여러 스레드가 동시에 같은 자원(변수, 객체, 데이터)에 접근하려고 할 때 발생합니다. 이로 인해 예상치 못한 결과나 데이터의 무결성 문제가 발생할 수 있습니다. 2. 경재조건 (Race Condition) : 두 개 이상의 스레드가 특정 연산의 순서에 따라 결과가 달라지는 상황을 의미합니다. 예를 들어 두 스레드가 동시에 같은 변수를 증가 시키려고 할 때, 예상 값 보다 다른 값이 저장 될 수 있습니다. 3. 데드락 (Deadlock) : 두 개 이상의 스레드가 서로 다른 자원을 기다리며 무한히 .. 2023. 12. 11.