diff --git a/src/main/java/com/planetrush/planetrush/core/config/AppConfig.java b/src/main/java/com/planetrush/planetrush/core/config/AppConfig.java index ca530c5..52e2fd3 100644 --- a/src/main/java/com/planetrush/planetrush/core/config/AppConfig.java +++ b/src/main/java/com/planetrush/planetrush/core/config/AppConfig.java @@ -1,17 +1,11 @@ package com.planetrush.planetrush.core.config; -import java.util.concurrent.TimeUnit; - -import org.springframework.cache.CacheManager; -import org.springframework.cache.caffeine.CaffeineCacheManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.retry.annotation.EnableRetry; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.web.client.RestTemplate; -import com.github.benmanes.caffeine.cache.Caffeine; - @EnableAsync @EnableRetry @Configuration @@ -22,12 +16,4 @@ public RestTemplate restTemplate() { return new RestTemplate(); } - @Bean - public CacheManager cacheManager() { - CaffeineCacheManager cacheManager = new CaffeineCacheManager("challengeProgressAvg"); - cacheManager.setCaffeine( - Caffeine.newBuilder().expireAfterWrite(24, TimeUnit.HOURS).recordStats() - ); - return cacheManager; - } } diff --git a/src/main/java/com/planetrush/planetrush/core/config/CacheConfig.java b/src/main/java/com/planetrush/planetrush/core/config/CacheConfig.java new file mode 100644 index 0000000..43ebe9e --- /dev/null +++ b/src/main/java/com/planetrush/planetrush/core/config/CacheConfig.java @@ -0,0 +1,38 @@ +package com.planetrush.planetrush.core.config; + +import java.util.concurrent.TimeUnit; + +import org.springframework.cache.CacheManager; +import org.springframework.cache.caffeine.CaffeineCacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import com.github.benmanes.caffeine.cache.Caffeine; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Configuration +public class CacheConfig { + + @Bean + public CacheManager cacheManager() { + CaffeineCacheManager cacheManager = new CaffeineCacheManager(); + CacheType[] values = CacheType.values(); + for (CacheType ct : CacheType.values()) { + cacheManager.registerCustomCache(ct.getCacheName(), + Caffeine.newBuilder().expireAfterWrite(ct.getDuration(), ct.getTimeUnit()).build()); + } + return cacheManager; + } + + @Getter + @AllArgsConstructor + enum CacheType { + CHALLENGE_AVG("challenge-avg", 24, TimeUnit.HOURS); + + final String cacheName; + final int duration; + final TimeUnit timeUnit; + } +} \ No newline at end of file diff --git a/src/main/java/com/planetrush/planetrush/core/config/WebConfig.java b/src/main/java/com/planetrush/planetrush/core/config/WebConfig.java index 5df4858..647aeeb 100644 --- a/src/main/java/com/planetrush/planetrush/core/config/WebConfig.java +++ b/src/main/java/com/planetrush/planetrush/core/config/WebConfig.java @@ -33,6 +33,6 @@ public void addCorsMappings(CorsRegistry registry) { public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(jwtInterceptor) .addPathPatterns("/api/**") - .excludePathPatterns("/api/v1/members/auth/login/kakao", "/api/v1/members/auth/reissue", "/api/v1/planets/detail/**"); + .excludePathPatterns("/api/v1/auth/login/kakao", "/api/v1/auth/reissue", "/api/v1/planets/detail/**"); } } diff --git a/src/main/java/com/planetrush/planetrush/member/service/MemberServiceImpl.java b/src/main/java/com/planetrush/planetrush/member/service/MemberServiceImpl.java index 554c005..585a6cd 100644 --- a/src/main/java/com/planetrush/planetrush/member/service/MemberServiceImpl.java +++ b/src/main/java/com/planetrush/planetrush/member/service/MemberServiceImpl.java @@ -54,7 +54,7 @@ public List getPlanetCollections(CollectionSearchCond searc *

이 메서드는 반환값을 캐싱하여 관리합니다.

*

캐시 미스가 발생하는 경우에만 플라스크 서버로 API 요청을 전송하여 새로운 데이터로 캐시에 저장합니다.

*/ - @Cacheable(cacheNames = "challengeProgressAvg", key = "#memberId") + @Cacheable(cacheNames = "challenge-avg", key = "#memberId") @Override public GetMyProgressAvgDto getMyProgressAvgPer(Long memberId) { Member member = memberRepository.findById(memberId) diff --git a/src/main/java/com/planetrush/planetrush/member/service/OAuthServiceImpl.java b/src/main/java/com/planetrush/planetrush/member/service/OAuthServiceImpl.java index 15ad5ca..743dd50 100644 --- a/src/main/java/com/planetrush/planetrush/member/service/OAuthServiceImpl.java +++ b/src/main/java/com/planetrush/planetrush/member/service/OAuthServiceImpl.java @@ -6,7 +6,6 @@ import com.planetrush.planetrush.core.jwt.JwtTokenProvider; import com.planetrush.planetrush.core.jwt.dto.JwtToken; -import com.planetrush.planetrush.infra.oauth.dto.KakaoUserInfo; import com.planetrush.planetrush.infra.oauth.util.KakaoUtil; import com.planetrush.planetrush.member.domain.Member; import com.planetrush.planetrush.member.domain.Nickname; @@ -40,14 +39,16 @@ public class OAuthServiceImpl implements OAuthService { */ @Override public LoginDto kakaoLogin(String accessToken) { - KakaoUserInfo kakaoUserInfo = kakaoUtil.getUserInfo(accessToken); - String email = kakaoUserInfo.getKakaoAccount().getEmail(); + // KakaoUserInfo kakaoUserInfo = kakaoUtil.getUserInfo(accessToken); + // String email = kakaoUserInfo.getKakaoAccount().getEmail(); + String email = "test@gmail.com"; Member member = memberRepository.findByEmailAndProviderAndStatus(email, Provider.KAKAO, Status.ACTIVE); /* 회원가입 진행 */ if (member == null) { member = memberRepository.save(Member.builder() .email(email) - .ci(kakaoUserInfo.getId().toString()) + // .ci(kakaoUserInfo.getId().toString()) + .ci(accessToken) .nickname(Nickname.getRandomKoreanNickname()) .provider(Provider.KAKAO) .status(Status.ACTIVE)