You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PWA 앱으로 프로젝트가 결정된 만큼 유저가 회원가입하는 절차를 거치는 것이 번거로울 것이라는 의견이 제시 되었다.
일반 유저는 소셜 로그인을 통해 앱을 사용할 수 있도록하여 카카오 로그인 api와 구글 로그인 중에서 고려하였고
프로젝트의 주 타겟층을 대한민국의 20대, 30대를 대상으로 하였기 때문에 카카오 소셜 로그인으로 모든 회원가입 절차 생략하기로 결정하였다.
카카오 로그인을 기본 회원가입으로 한만큼 카카오 api를 적극적으로 사용하기로 하여 카카오 공유하기, 카카오 푸시 알림, 메세지 보내기 등을 시도하였으나
사파리 브라우저의 FCM 미지원 문제와 공유하기과 메세지 보내기의 기능이 흡사하다는 문제로 일부 반려되었다.
Envers
관리자의 입장에서 유저의 정보들이 누락되는 경우 민원 처리나 클레임을 대처할 때, 어려움이 있을 수 있다. 그러한 점을 고려하여 미션 인증 내역을 따로 저장하는 기능을 구현했다. 그 과정에서 고려한 기능은 일반 테이블에 JPA로 자동 기록하게 하는 형식과 envers 라이브러리를 통한 내역 테이블 자동생성 두 기능을 비교하였다.
일반 테이블에 JPA로 자동 기록하게 하는 형식
방법: JPA @PrePersist 와 @PreUpdate를 통하여 테이블 자동 생성
장점: 원하는 정보만을 선별하여 꼭 필요할 때에만 내역을 저장할 수 있다.
단점: 자바class가 여러 개가 생성되며 단순 내역 기록에 사용되기에는 코드의 양이 많은 편이다.
envers 라이브러리
방법: envers를 사용하여 @Audited와 @NotAudited로 테이블 내 정보를 선별하여 Rev파일 자동 생성
장점: 이미 생성되어 있는 테이블에 어노테이션 @Audited로 테이블에 변경사항이 생길 때 자동으로 내역 테이블을 별도의 클래스 없이 생성한다.
단점: 테이블 내에 있는 정보가 아니면 기록되지 않는다.
결론: 필요한 정보가 submitMission 테이블에 존재하기 때문에 envers 라이브러리를 사용하기로 결정.