2023/11 2

[Project] google Oauth2 로그인 시 refreshToken을 받는 방법 (최초 로그인에서 저장을 못했을 때)

서론 tincle이라는 프로젝트를 진행 중에 일어난 일입니다. 1차 MVP에서는 google과 kakao의 회원가입 기능만 개발하기로 해서 회원가입 기능만 개발했었습니다. 1차를 완료한 후 2차 개발이 시작되었는데, 2차에서 플레이스토어 배포를 위해 회원 탈퇴기능을 구현해야 했습니다. 그 과정에서 최초 google 로그인에서 refreshToken을 저장하지 못했을 때 다시 발급 받는 과정에 어려움이 있어 다른 누군가에게 도움이 되기 위해 이 글을 적습니다. google 로그인과 회원 탈퇴 로직 보기(Java/Spring) -> https://github.com/DoDream-dev/Tinqle-Server/blob/develop/src/main/java/tinqle/tinqleServer/domain/..

Project 2023.11.29

[Project] Redis(Elasticache Redis)로 RefreshToken을 관리하기

서론 팅클(Tincle)이라는 프로젝트에서 JWT를 통해 프론트와 소통을 했는데, 이 프로젝트는 친구기반 SNS 서비스입니다. 만약 사용하게 된다면 한번 접속할 때 '짧은 시간이 아닌 긴 시간동안 머무르지 않을까?' 판단했습니다. 때문에 토큰 재발급하는 횟수가 많다고 생각했습니다. 그에 따른 시간 비용을 줄이고자 Redis로 RefreshToken을 관리한 경험을 얘기하려 합니다. 데이터베이스가 있는데 왜 Redis를 사용할까? Redis는 인메모리 캐시로 메모리에서 데이터를 처리합니다. Client가 필요로 하는 정보가 만약 DB에 존재하게 된다면 Disk 영역까지 가야하기 때문에 시간이 오래 걸리게 됩니다. 반면 Redis에 정보가 존재하게 된다면 Memory 영역에서 처리 후, 값을 반환하게 되어 ..

Project 2023.11.25