본문 바로가기

기술/Spring-Boot22

[SpringBoot/OAuth2] WebSecurity 없이 REST API 환경에서 OAuth2 인증 구현하기 - 2. 네이버 로그인 OAuth2 [SpringBoot/OAuth2] WebSecurity 없이 REST API 환경에서 OAuth2 인증 구현하기 - 1. 카카오 로그인 OAuth2 참고로 이건 내가 WebSecurity를 쓰기 싫어서 이러는게 아니라 쓸 줄을 몰라서 방법을 찾은 것이다..... WebSecurity 쓰는게 더 편해보이니 아는사람은 순순히 쓰도록 하는것이 좋을지도 모르고 아 dazbee.tistory.com 이전 시간을 통해 카카오 로그인의 흐름과 그 코드를 알아봤다. 그러면 이 이해를 바탕으로 횡이동 하면 된다. 어떻게? 비교하면서. 어차피 OAuth2는 표준 프로토콜이다. 구현 방식은 크게 다르지 않을 것이다. 비교하면서 가자. 이번엔 코드스니펫이 아닌 직접 작성하는 코드기 때문에 완성본 예시는 없다. .. 2022. 1. 2.
[SpringBoot/OAuth2] WebSecurity 없이 REST API 환경에서 OAuth2 인증 구현하기 - 1. 카카오 로그인 OAuth2 참고로 이건 내가 WebSecurity를 쓰기 싫어서 이러는게 아니라 쓸 줄을 몰라서 방법을 찾은 것이다..... WebSecurity 쓰는게 더 편해보이니 아는사람은 순순히 쓰도록 하는것이 좋을지도 모르고 아님말고 난 몰르고 내 현재 목적을 말해주자면, WebSecurity 없이 네이버 소셜 로그인 코드를 짜는 것이다. 그리고 이를 통해 OAuth2 인증 절차를 깨우치는 것이다. 인터넷 강의를 보면서 얻은 코드스니펫은 카카오 소셜 로그인을 WebSecurity 없이 매뉴얼하게 OAuth2 절차를 진행하는 코드였다. 현재로써 나는 WebSecurity를 이용해 적용하는 방법을 사용할 수 없었다. 인터넷엔 WebSecurity에서 제공하는 OAuth2 기능을 사용하는 내용이 주류였는데, 나는 .. 2022. 1. 2.
[SpringBoot/Redis] SpringBoot에서의 Redis 기본 명령어 Redis 강한 상대다. Redis. 값을 set 하는것부터 리스트를 다루는 것 까지 쉬운 것이 없었다. 근데 되기 시작하니 쉽다. 아이좋아 [Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisTemplate 편 [Redis] 캐시(Cache)와 Redis [Redis] Redis의 기본 명령어 [Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisTemplate 편 [Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisRepository.. sabarada.tistory.com 일단 링크만 올리고 다 써보고 정리하도록 하겠다.. 2021. 12. 29.
빌더패턴 제네릭 클래스에 적용하기 Generic @Getter @Builder @AllArgsConstructor public class ResponseDto { private String status; private String message; private T data; } 코드를 구성하다보면 제네릭으로 빌더를 해주고싶은 경우가 있다. 근데 그냥 막 하려고 하면 뭐가 자꾸 빨간줄이 뜬다. 이렇게 하면 된다. ResponseDto.builder() .status("success") .message("사용자 정보 요청 기능 수행") .data(userService.getUserInfo(userDetails)) .build() 특이하게도 builder 앞에 제네릭 타입이 붙는다. 이렇게 해주면 된다. 재밌는 정보라 적어봤다. 그럼이만! 2021. 12. 24.
JPA에서의 페이징 기법, 빠를까? unique record의 Paging과 n번의 find 코드를 개선하려고 살펴보던 중 궁금한 점이 생겼다. MySQL DB에 페이징을 시도할 때, findAll은 limit에 해당하는 레코드의 수를 탐색하고나면 그 즉시 중단할까? 아니면 전부 탐색하고 정해진 데이터 개수만 잘라서 출력해주는 것일까? 결과 먼저 말하자면, 전부 탐색하고 데이터 개수만 잘라서 출력해준다. 지극히 비효율적이다. 그리고 느리다. 아래는 실험 후 찾아본 자료이다. MySQL LIMIT 최적화(feat. 구글이 검색결과를 최대 1,000건만 제공하는 이유) 제가 말하는 것이 사실도, 정답도 아닐 수 있으니 비판적으로 읽어주시면 감사하겠습니다. MySQL LIMIT 최적화하는 방법 MySQL에서 페이징 처리를 위하여 LIMIT 키워.. 2021. 12. 23.
[QueryDSL/SpringBoot] Gradle에서의 QueryDSL 설정 QueryDSL QueryDSL에 대한 정보는 많다. pom.xml 쓰던 시절에 쓰던 정보 말이다. 근데 Gradle에서 어떻게 시작해야 하는지는 잘 안 나와있다. 심지어 공식문서도 Getting Started에 Gradle에서 사용하는 방법에 대해서는 명시되어 있지 않다. 오이오이, '공식문서'쿤... 장난하는 거지.....? '모두'의 '희망希望' 인 네가 이렇게 나온다구.....? 허 참..... 내 살다살다 이렇게 정보가 모든 곳이 제각각인 것은 처음본다. 스프링부트의 maven과 gradle에 대한 정보가 섞여나오는 것 뿐 아니라, QueryDSL 설정에 대해서도 사람마다 전부 뒤죽박죽으로 되어있어서 알맞는 방법을 찾는게 어려웠다. 정말. 그래서 여러 사이트를 많이 헤멨고 그만큼 실수 하기도 했.. 2021. 12. 10.