본문 바로가기

DB7

TIL 230907 : Redis 5-0 - 정말로 빠른지 궁금하다. (미해결) 인증번호를 MySQL에 저장하고 조회하는 것에서 Redis에 저장, 조회로 변경했다. 단기간 사용할 데이터이기도 하고 빠른 조회의 속도가 장점이길래 한 번 도입해봤는데, 트래픽이 적은 입장에서 빨라졌는 지 체감이 되질 않는다. 시도한 방법 0. 단순히 API를 여러번 돌려봤다. : SMTP를 통해 메일 전송까지 하는 API이다 보니 해당 소요시간은 DB차이를 체크하기에 너무 부적합했다. 1. 시스템시간을 DB 저장 메소드 실행 전 후 기록해서 차이를 log로 출력 : 아래처럼 save메소드 앞뒤로 시스템 시간을 변수로 담아 그 차이를 출력 해봤다. long beforeTime = System.currentTimeMillis(); // DB 저장 전 시간 VerificationCode verificatio.. 2023. 9. 14.
TIL 230906 : Redis 4 - 클라우드에 서버 띄우기 (Redislabs) 지금까지는 로컬에 Redis를 띄워뒀는데, 이제는 클라우드에 띄워보기로 한다. 우선은 aws ec2 인스턴스를 새로 만들기보다는 간편하게 클라우드 환경을 만들어주는 Redislabs를 활용할 예정이고, 이후 캐싱전략시에 다시 리팩토링 해보려 한다. Redislabs DB생성 Redislabs라는 공식으로 지원하는 클라우드 콘솔이다. 30MB가 무료다. 딱 연습용으로 알맞아 보인다. 익숙한 AWS로 만들고 Region의 경우에는 한정되어 있다. (서울이 없다) DB연결 위처럼 간편하게 DB가 생성된 걸 확인할 수 있다. 이제 연결해야 한다. Endpoint의 'Connect'버튼을 누르면 아래와 같이 친절하게 나온다. CLI에 연결해줄 명령어를 자동으로 작성해준다. Host, Password, Port 이.. 2023. 9. 13.
TIL 230905 : Redis 3 - [Refactor] 기존 인증번호 DB를 Redis로 옮기기. Redis를 활용해 RefreshToken을 구현해봤다. 엄밀히, 따지면 Redis없이도 가능했었는데 사용한 이유가 뭘까? 데이터를 쓰는 기간이 만료기간이 없고 유실의 리스크가 크지않고, 빠르게 처리하기 위함이었다. 이번에는 기존에 회원가입 이메일 인증번호를 MySQL DB에 저장해둔 것을 Redis로 옮겨보려 한다. 이 또한 5분이라는 만료시간이 있고 이후에는 바로 삭제해주는 것이 좋기에 활용하기 적절하다고 판단했다. 이메일 인증번호 기존코드 Controller @PostMapping("/users/mail-confirm") ResponseEntity mailConfirm(...) throws Exception { userService.sendMailAndCreateVerificationCode(req.. 2023. 9. 8.
TIL 230904 : Redis 2-1 - RefreshToken을 이용해 자동으로 AccessToken 재발급하기 (Spring Security) https://thiswooin.tistory.com/94 TIL 230901 : Redis 2 - RefreshToken구현하기. 발급 및 Redis저장. (Spring Security) https://thiswooin.tistory.com/92 TIL 230830 : Redis 1 - Spring에서 연동하기 (lettuce, jedis, RedisTemplate, CRUDRepository 활용) 지난 시간에 로컬로 Redis서버를 실행하고 RedisInsight라는 GUI를 이용해 Redis 데이터를 저장해 thiswooin.tistory.com RefreshToken을 발급하고 클라이언트로 보내는 과정까지 했다. 이번엔 RefreshToken의 존재이유인 AccessToken만료시 Refresh.. 2023. 9. 8.
TIL 230901 : Redis 2 - RefreshToken구현하기. 발급 및 Redis저장. (Spring Security) https://thiswooin.tistory.com/92 TIL 230830 : Redis 1 - Spring에서 연동하기 (lettuce, jedis, RedisTemplate, CRUDRepository 활용) 지난 시간에 로컬로 Redis서버를 실행하고 RedisInsight라는 GUI를 이용해 Redis 데이터를 저장해보는 기본적인 기능을 테스트 해봤다. 이번엔 Spring에서 Redis로 CRUD 요청을 보내는 세팅과 기본적인 CRUD thiswooin.tistory.com 지난 시간까지 알아 본 Redis를 Spring에서 연동하는 방법. 이번에는 RedisRepository 방식을 활용하여, 기존 Access Token만 발행하던 인증인가 시스템에서 2시간 기한의 AccessToken과 2.. 2023. 9. 4.
TIL 230830 : Redis 1 - Spring에서 연동하기 (lettuce, jedis, RedisTemplate, CRUDRepository 활용) 지난 시간에 로컬로 Redis서버를 실행하고 RedisInsight라는 GUI를 이용해 Redis 데이터를 저장해보는 기본적인 기능을 테스트 해봤다. 이번엔 Spring에서 Redis로 CRUD 요청을 보내는 세팅과 기본적인 CRUD 명령어들을 연습해본다. 0. Lettuce vs Jedis 세팅에 앞서 Lettuce와 Jedis라는 단어를 구글링하는 동안 많이 들어봤을 텐데, 짚고 넘어간다. 우선 정체를 하자면 Java의 Redis Client다. 쉽게 말하자면 Redis연동을 도와주는 라이브러리이다. 크롬이 서버에 요청하고 응답을 받는 클라이언트인것처럼 Redis서버에 요청하고 응답을 받아줄 수 있는 Client 역할이다. 결론적으로는, Lettuce를 쓰게된다. Spring Boot 2버젼이후에서는.. 2023. 8. 31.