전체 글(141)
-
소셜 로그인 오류 해결
🆘 해결 과정 화이트 라벨이 발생하니 경로를 확인해보자 @GetMapping("/oauth2/callback/kakao")fun callback( @RequestParam code: String): ResponseEntity { val accessToken: String = kakaoOAuth2LoginService.login(code) return ResponseEntity.ok(accessToken)}callback 함수의 경로를 "/oauth2/kakao/callback " 에서 "/oauth2/callback/kakao"로 수정 수정하고 실행을 해보니 새로운 에러 메시지를 확인하였다.해당 에러 메시지가 발생한 곳에 원인을 찾을수 있을 것으로 보인다.해당부분의 경로에 oauth가..
2024.07.25 -
소셜 로그인 Failed to fetch 오류
❎ 문제발생 와인 서비스 프로젝트에서 기존의 회원가입 로그인 기능에 소셜로그인 기능을 추가하기 위해서 OAuth 기능을 추가한 상황이다.소셜 로그인 기능을 사용하기 위해서 스웨거로 테스트를 했을때 해당 오류가 발생하였다. 🆘 해결 과정 지금 카카오 쪽의 api가 문제인지 아니면 나의 로직 상의 문제인지부터 확인을 해야했다. 디버깅으로 소셜로그인의 흐름을 살펴봤을때는 pageUrl에 값이 들어오긴 한 상황이다.해당 PageUrl은 제대로 된 값인지 확인을 해보았다.https://kauth.kakao.com/oauth/authorize?client_id=3215a3e64cedbd8258a05d024ab3ed66&redirect_url=http://localhost:8080/oauth2/callback/ka..
2024.07.24 -
pagedModel fetchJoin 적용후 redis Cache 적용시 발생하는 오류 해결
✔ 해결 PagedModel은 단순한 데이터 구조가 아닌, 페이지네이션 정보와 함께 리소스 링크 정보를 포함하고 있고 복잡한 구조를 가지고 있기 때문에 직렬화,역직렬화를 진행하는데 문제가 생긴다. 이를 해결하기 위해서는 Redis를 사용할 때 PagedModel을 직접 캐시하기보다는 JSON 형식으로 직렬화하여 저장하거나, 페이지별로 데이터를 캐시하고 페이지네이션을 처리하는 것 또한 하나의 방법이 될 수 있다.하지만 데이터만 캐시하고 후에 캐시된 데이터를 pagedModel 형태로 재조립 하는 과정은 결국에 캐시를 사용하려는 목적(서버의 성능 부하 개선)에는 부합하지 않는다고 판단하여 최종적으로 pagedModel을 사용하지 않고 page 객체를 사용하는 것으로 해결하였다. @Cacheable(value..
2024.07.23 -
pagedModel fetchJoin 적용후 redis Cache 적용시 발생하는 오류
❎ 문제발생 기존 프로젝트에서 pagedModel을 사용하라는 권고 표시가 나와서 pagedModel을 적용을 하였다. 진행하고자 하는 프로젝트에서 프로모션 관련한 api 기능은 많은 사람들이 조회할 수 밖에 없도록 설계되었기 때문에 Cache를 적용하여 성능향상에 도움이 될 수 있도록 Redis Cache를 적용하기로 하였다.@Cacheable(value = ["promotionCache"], key = "#page + '-' + #size + '-' + #sortBy + '-' + #direction")override fun getPromotionWineList( page: Int, size: Int, sortBy: String, direction: String): PagedMo..
2024.07.22 -
QueryDslSupport
✔오늘 배운 중요한 🔑 pointQueryDslSupport는 QueryDSL을 사용할 때 필요한 기본 설정을 제공하는 역할을 한다.🎯 오늘 배운 내용 QueryDslSupport란?QueryDslSupport는 추상 클래스이며 다른 클래스에서 상속하여 기능을 확장하는 데 사용됩니다. 이 경우, QueryDslSupport는 QueryDSL을 사용할 때 필요한 기본 설정을 제공하는 역할을 한다. 사용 예시 package sparta.nbcamp.wachu.infra.querydslimport com.querydsl.jpa.impl.JPAQueryFactoryimport jakarta.persistence.EntityManagerimport jakarta.persistence.PersistenceCon..
2024.07.21 -
Serializing PageImpl instances as-is is not supported 경고 발생
❎ 문제발생프로젝트 진행중 와인 프로모션 DB를 조회할때 FETCH JOIN을 사용하여 N+1 문제를 해결하려고 시도하였는데, 직렬화 관련 문제가 발생하였다.PageModule$PlainPageSerializationWarning : Serializing PageImpl instances as-is is not supported, meaning that there is no guarantee about the stability of the resulting JSON structure! For a stable JSON structure, please use Spring Data's PagedModel (globally via @EnableSpringDataWebSupport(pageSerializatio..
2024.07.20