/dnd-8th-7-backend

⏰ 하루를 블럭으로 나누어 복잡한 일상을 심플하게 만들어주는, 하루블럭

Primary LanguageJava

하루 블럭 codecov

⏰ 하루를 블럭으로 나누어 복잡한 일상을 심플하게 만들어주는, 하루블럭

DND 8기 7조

프로젝트 기간: 2023.01.08 ~ 2023.04

📚 Skill Stack

  • Front-end : TypeScript, Next, React Native, Zustand, Tailwind, Storybook
  • Back-end : Java 11, Spring boot, Spring Data Jpa, QueryDSL, JUnit, RestAssured, TestContainers, Jacoco
  • DB : PostgreSql, Redis
  • Infra : AWS Services(EC2, S3, RDS, Route53, CloudFront, ALB), Docker

📋 API Docs

API Docs

🛠️ Architecture

백엔드

backend

CI/CD

cicd

📈 ERD

ERD

✍️ Process Docs

User Login Process

최초 구글 로그인 시

  • redirect url을 통해 클라이언트 사이드에서 구글 로그인을 시도합니다.
  • 로그인 성공 시, 서버의 successful 핸들러가 응답을 받습니다. 이에 따라 회원가입된 유저가 아닌 경우, 회원가입을 진행합니다.
  • 로그인 성공 시, refresh token을 redis 세션 서버에 저장하고 클라이언트에 jwt token, 신규 유저 여부를 url 파라미터에 실어나서 반환합니다.

정상 API 호출 시

  • header에 access token을 정상적으로 포함하고, 만료되지 않고 유효한 access token인 경우 정상적으로 api가 동작합니다.

Access Token 재발급

  • Access Token 만료 전에 Refresh 요청 시에, Refresh Token을 기반으로 token을 갱신하여 새로운 token을 반환합니다.