본문 바로가기

Spring39

[Spring] Springboot Cache - 어노테이션 Springboot Cache AnnotationAnnotation설명@EnableCachingSpringboot Cache를 사용하기 위해 '캐시 활성화'를 위한 어노테이션@CacheConfig캐시 정보를 '클래스 단위'로 사용하고 관리하기 위한 어노테이션@Cacheable캐시정보를 메모리 상에 '저장'하거나 '조회'해오는 기능을 수행하는 어노테이션@CachePut캐시 정보를 메모리 상에 '저장'하며 존재 시 갱신하는 기능을 수행하는 어노테이션@CacheEvict캐시 정보를 메모리상에 '삭제'하는 기능을 수행하는 어노테이션@Caching여러 개의 '캐시 어노테이션'을 함께 사용할 때 사용하는 어노테이션  주요 Annotation 비교하기어노테이션주요 기능캐싱 실행 시점@Cacheable캐시 조회, 저장.. 2024. 11. 27.
[Spring] Springboot Cache 캐시란?캐시란 자주 사용되는 데이터의 접근을 빠르게 할 수 있도록 나중의 요청을 대비하여 데이터를 저장해두는 임시 저장소 입니다.캐시된 데이터를 사용함으로써 실제 데이터로의 접근 시간을 절약할 수 있고 이로 인해 시스템의 성능이 향상될 수 있기 때문에 유용하게 사용됩니다. 예를 들어, Redis 저장소에 자주 사용되는 데이터를 캐싱하고 해당 데이터 조회 요청이 들어왔다고 가정해보겠습니다. 이 때 Redis에 캐싱된 데이터를 읽어오기 때문에 실제 DB까지 접근하지 않아 접근 시간을 절약할 수 있고 DB 부하를 낮출 수 있습니다. 그렇다면 클라이언트는 언제 사용하는 것이 좋을까요?클라이언트에게 전달되는 값이 동일할 때빈번하게 호출될 때한 번 처리할 때 많은 서버 리소스를 요구할 때(복잡한 연산이 필요한 경우.. 2024. 11. 27.
[Spring] 쿠키와 세션 쿠키와 세션 모두 HTTP에 상태 정보를 유지(Stateful) 하기 위해 사용됩니다. 즉, 쿠키와 세션을 통해 서버에서는 클라이언트 별로 인증 및 인가를 할 수 있게 됩니다. 쿠키클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일구성 요소Name: 쿠키를 구별하는 데 사용되는 키(중복될 수 없음)Value: 쿠키의 값Domain: 쿠키가 저장된 도메인Path: 쿠키가 사용되는 경로Expires: 쿠키의 만료기한(만료기한 지나면 삭제됨)세션서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용서버에서 클라이언트 별로 유일무이한 '세션ID'를 부여한 후 클라이언트 별 필요한 정보를 서버에 저장서버에서 생성한 '세션ID'는 클라이언트의 쿠키값('세션 쿠키')으로 저장되어 클라이언트 식별에 사용쿠.. 2024. 11. 26.
[Spring] 인증 방식(세션과 JWT) 인증(Authentication)유저인지 "인증" 하는 것은 해당 유저가 진짜 그 유저인지 확인하는 행위  인가(Authorization)해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념  웹 애플리케이션 인증의 특수성일반적으로 서버-클라이언트 구조로 되어있고, 실제로 이 두가지 요소는 아주 멀리 떨어져 있습니다.그리고 HTTP라는 프로토콜을 이용하여 통신하는데, 그 통신은 비연결성(Connectionless), 무상태(Stateless)로 이루어집니다. 비연결성(Connectionless)서버와 클라이언트가 연결되어 있지 않다는 것 입니다.만약 서버와 클라이언트가 실제로 계속 연결되어 있다면 서버의 비용이 기하급수적으로 늘어나기 때문입니다.그래서 실제로 서버는 하나의 요청에 하나의 응답을.. 2024. 11. 25.
[Spring] Spring Security Session 인증 시 401 에러 해결 기존에는 JWT를 사용하여 회원가입 및 로그인을 구현하였다면, 이번에는 Session을 사용하여 인증을 구현해보려고 합니다. 이를 통해 JWT를 사용한 방식과 세션을 사용한 방식이 어떤 차이가 있으며 장단점은 무엇인지 직접 느껴보고자 했습니다. 세션 정책기본적으로 Spring Security를 사용하면 세션 기반 방식으로 동작하게 됩니다. 이는 Spring Security 세션 정책과 관련이 있습니다.SessionCreationPolicy.Always : 스프링 시큐리티가 항상 세션 생성합니다.SessionCreationPolicy.If_Required : 스프링 시큐리티가 필요 시 생성합니다.(default)SessionCreationPolicy.Never : 스프링 시큐리티가 생성하지 않지만 이미 존.. 2024. 11. 24.
[Spring] SpringSecurity 403에러 해결 예외 발생SpringSecurity 설정과 JwtFilter를 아래와 같이 설정하고 앱 실행 후 회원 가입(/auth/signup)을 진행하면 403 에러가 발생합니다.// Spring Security Config@Configuration@EnableWebSecurity(debug = true)@EnableMethodSecurity(securedEnabled = true)@RequiredArgsConstructorpublic class WebSecurityConfig { private final JwtUtil jwtUtil; private final UserDetailsServiceImpl UserDetailsServiceImpl; @Bean public JwtFilter jwtFi.. 2024. 11. 20.