diff --git a/README.md b/README.md index fcf422d3..ebfffd93 100644 --- a/README.md +++ b/README.md @@ -7,18 +7,17 @@ ## 목차 > 1. [**_프로젝트 목적_**](#프로젝트-목적) -> 2. [**_서비스 정보_**](#서비스-정보) -> 3. [**_주요 기능_**](#주요-기능) +> 2. [**_서비스 정보_**](#서비스-정보) +> 3. [**_세부 기능 흐름_**](#세부-기능-흐름) > 4. [**_개발 기간_**](#개발-기간) > 5. [**_배포 주소_**](#배포-주소) > 6. [**_팀원_**](#팀원) > 7. [**_프로그램 구조_**](#프로그램-구조) > 8. [**_API & ERD_**](#api--erd) > 9. [**_저장소 정보_**](#저장소-정보) -> 5. [**_프로그램 구조_**](#프로그램-구조) -> 10. [**_주요 종속성 버전_**](#주요-종속성-버전) -> 11. [**_기술 스택_**](#기술-스택) -> 12. [**_기능 흐름_**](#기능-흐름) +> 10. [**_프로그램 구조_**](#프로그램-구조) +> 11. [**_주요 종속성 버전_**](#주요-종속성-버전) +> 12. [**_기술 스택_**](#기술-스택) > 13. [**_테스트_**](#테스트) > 14. [**_사용 예시_**](#사용-예시) @@ -39,26 +38,6 @@ > 긴 영상은 필요 없어요 인플루언서가 다녀간 쿨플, 한눈에 쏙! -1. **회원 가입 및 로그인** 기능 - - 카카오를 이용한 회원 가입 및 로그인 - - 회원 닉네임 변경 가능 -2. **관심있는 인플루언서 설정** 기능 - - 최초 로그인 시, 관심 인플루언서를 설정 가능 - - 이후, 인플루언서 페이지에서 좋아요 버튼을 통해 설정 가능 - - 마이 페이지에서 관심있는 인플루언서 삭제 가능 -3. **장소 검색 및 좋아요** 기능 - - 지도를 통한 장소 검색 가능 - - 지역, 인플루언서, 장소 태그를 통한 검색 가능 - - 장소 세부 정보 열람 및 장소 좋아요 가능 - - 장소에 대한 정보를 모바일로 받기 가능 ( 카카오톡 나에게 메세지 보내기 ) -4. **리뷰** 기능 - - 정보 받은 후 3일 뒤 리뷰 페이지 전송 ( 카카오톡 나에게 메세지 보내기 ) - - 리뷰 확인 및 수정 가능 - -## 주요 기능 - -> Inplace의 주요 기능 - 1. **회원가입 및 로그인** - Spring Security를 이용한 OAuth 2.0 카카오 로그인 기능을 사용합니다 - 쿠키에 Access, Refresh Token을 담아 사용하며, Refresh 동작을 수행할 수 있습니다 @@ -85,15 +64,27 @@ - 내가 작성한 리뷰를 관리할 수 있습니다 - 사용자 닉네임을 변경할 수 있습니다 +## 세부 기능 흐름 + +- ### Spring Security + - oauth 로그인 시, jwt로 accessToken과 refreshToken을 Cookie에 담아줍니다. + - oauthToken은 aes알고리즘으로 암호화 되어 db에 저장됩니다. + - 모든 요청은 AuthorizationFilter에서 Cookie에 있는 토큰이 유효한지 확인하고, 유효하면 Authenticate합니다. +- ### PlaceMessage + - 요청이 오면 webClient(비동기)로 나에게보내기 kakao api를 통해 장소 정보를 보냅니다. + - 3일 뒤 나에게 보내기 kakao api를 통해 리뷰 요청 메세지를 보냅니다. +- ### TokenRefresh + - Redis DB에 username(key)로 refreshToken을 확인하고, RTR (Refresh Token Rotation)을 합니다. + ## 개발 기간 -> 2024.08.22 ~ 2024.11.15 +> **_2024.08.22 ~ 2024.11.15_** ## 배포 주소 -> [**BackEnd**](https://api.inplace.my) : _api.inplace.my_ +> [**BackEnd**](https://api.inplace.my) : **_api.inplace.my_** > -> [**FrontEnd**](https://inplace.my) : _inplace.my_ +> [**FrontEnd**](https://inplace.my) : **_inplace.my_** ## 팀원 @@ -257,18 +248,6 @@ _https://www.notion.so/API-9e96d1ef1475414b861a50d0e4ca366e_ > > **테스트 결과보고서** : https://www.notion.so/08a520d3b8c44154a19425b0bcc16f6f -## 기능 흐름 - -- ### Spring Security - - oauth 로그인 시, jwt로 accessToken과 refreshToken을 Cookie에 담아줍니다. - - oauthToken은 aes알고리즘으로 암호화 되어 db에 저장됩니다. - - 모든 요청은 AuthorizationFilter에서 Cookie에 있는 토큰이 유효한지 확인하고, 유효하면 Authenticate합니다. -- ### PlaceMessage - - 요청이 오면 webClient(비동기)로 나에게보내기 kakao api를 통해 장소 정보를 보냅니다. - - 3일 뒤 나에게 보내기 kakao api를 통해 리뷰 요청 메세지를 보냅니다. -- ### TokenRefresh - - Redis DB에 username(key)로 refreshToken을 확인하고, RTR (Refresh Token Rotation)을 합니다. - ## 사용 예시 > 실제 유저 사용 페이지 흐름 보여주기 ( 영상 x )