펫플레이트는 견주들이 필수 영양 요소에 대해 이해도가 부족하다는 문제점을 기반하여 기획되었다. 하지만 연구 결과에 따르면 사료는 반려견의 모든 필수 영양소를 충족하기 어렵고 영양과잉의 문제점도 있어 질병 유병률을 증가한다. 따라서 첫 째, 사용자가 반려견의 식사를 기록하면 이에 맞추어 반려견의 나이, 품종 및 체중에 따른 필수 영양소를 그램(g) 수로 시각화하여 사용자가 영양균형을 모니터링할 수 있게 한다; 둘째, 누락된 영양소를 확인한 후, 동일한 웹사이트로 더 맞춤형 된 보충제를 구매할 수 있는 마켓플레이스를 제공한다.
OAuth2 에 대한 개념 이해를 바탕으로
WebClient 를 이용하여 Rest api 형식으로 만든 소셜로그인과 스프링 시큐리티를 사용하여 만든 소셜 로그인 2가지 방식으로 모두 구현해보고
각 구현 방법의 내용을 정리한다.
회원 탈퇴 및 소셜 로그인 연동 해제를 위하여
소셜 로그인시 쉽게 변경이 될 수 있는 social login 용 accessToken 은 redis 에, 네이버 기준 1년동안 변경이 안되는 refreshToken 은 rdbms mysql 에 저장하여 관리한다
일부 비즈니스 로직 상 반복적으로 호출되는 username 을 통한 현재 로그인한 객체 꺼내오기
BackEnd/src/main/java/com/petplate/petplate/auth/service/AuthService.java
Lines 84 to 101 in b08f901
로그인할 때마다 반복적으로 호출되는 username 을 통한 회원가입 여부 판단하기
에서 성능 개선이 필요하다고 판단, Users 의 칼럼 username 에 Index 를 적용하여 성능을 평균 100 ms 향상 시켰다(apache jmeter 사용,현재 soft delete 로 인한 unique 제약 조건 X)
enum 타입으로 관리되는 영양소와 다대다 연관관계를 통하여 부족 영양분에 따른 추천 영양제를 반환하고
영영제의 관련 상세 페이지를 반환한다.
Vercel 로 배포하는 프론트와 상호 소틍을 통해서 도메인을 적용하고,
비용 및 이후 원활한 쿠키 사용을 위해서 백앤드는 서브 도메인을 적용한다.
상황에 따라 해제될 수도 있다.