Member
임시 저장을 Quartz
를 이용한 스케쥴링Member
에 임시 저장을 하게 된다.Quartz
를 이용하여 스케쥴링 설정이 되어 시간이 어느정도 지날때까지 인증을 하지 않게되면 회원이 삭제되는 로직Auth
키를 Redis
에서 잠시 저장을 한다.Redis
값에 회원 정보를 통째로 저장Member
에 인증을 했는지 안했는지 구분하는 boolean값 컬럼을 지워도 됨그림으로 설명하자면
원래 로직이 이렇게 되고,
이렇게 간단하게 바뀌게 된다.
좀 더 효율적인 로직으로 발전하게 되었다.
@PostMapping("/member/signUp/email")
public void signUp(@Valid MemberDto memberDto, BindingResult bindingResult) throws JsonProcessingException {
validation.validate(memberDto, bindingResult);
if (bindingResult.hasErrors()) {
log.error("errors={}", bindingResult);
return ;
}
// 원래 로직 - 멤버 DB로 미리 회원을 저장
// memberService.signUp(memberDto);
authKeyRepository.deleteAuth(memberDto.getEmail());
//임의의 authKey 생성 & 이메일 발송
String authKey = mss.sendAuthMail(memberDto.getEmail());
memberDto.setAuthKey(authKey);
// 바뀐 로직 - Redis에서 모든 회원정보를 저장
// 이후에 인증을 완료하면 회원 DB에 새로 저장
authKeyRepository.saveAuth(memberDto);
}
Jacoco
를 이용한 테스터 확인 및 단위 테스트 구현Docker
설정에 대해 알아보기(local + aws)