Spring boot kim's Shop/리팩토링

Springboot 인증 시스템 리팩토링!(2) with interface

디비드킴 2021. 8. 14. 14:15

이전소스
https://cordingmonster.tistory.com/107?category=1038496

 

Spring boot Jwt+휴대폰인증!(1) with Coolsms

이제 전화인증을 구현할 건데 아임 포트를 사용하려 했으나... 다날 서비스를 신청해야 하고 다날 서비스 신청에는 사업자등록증이 필요해서 허접하지만 직접 구현했다! 1. 세션 인증을 요청->

cordingmonster.tistory.com

검증 로직을 리팩터링 했으니
이제 보내는 로직도 리팩터링 해보자!

트랜잭셔널 어노테이션을 다시 사용하였다!
https://cordingmonster.tistory.com/133

 

Spring boot 예외처리! with Transactional

kim's cafe에이어 kim's shop을 만드는 도중 치명적인 오류가 있었다 무려 Transactional어노테이션이 먹히지 않았다.. 아예 작동하지 않았다 UPDATE문도 던지지 않고.. 근데 업데이트야 뭐 sql문을 던지면

cordingmonster.tistory.com

interface

confrimInterface.java

함루가 지난 뒤 판별하게 위해

set/get를 하나 만들어주자

public void setPassOneDay(boolean bool);

public boolean getPassOneDay();

 

service

confrimService.java

메일/문자를 보내기전
공통적으로 거치는 과정을
하나의 함수로 묶어준다
(인터페이스 활용하니 정말 좋다)

문자 전송 시스템

confrimService.java

공백 검사
if(phoneNum.isEmpty()||phoneNum==null)
기존 요청 찾기
confrimDto dto=findConfrim(phoneNum);
없다면 요청 번호로 새로운 dto생성
dto=confrimDto.builder().phoneNum(phoneNum).build();
결과에 따라 동작

이메일 전송 시스템

confrimService.java

회원 가입된 이메일인지 검사
f(userDto==null)
요청 기록 검사
confrimDto dto=findConfrimEmai(email)
email로 dto생성
dto=confrimDto.builder().email(email).build()
결과에 따라 처리

 

confrimService.java

하루가 지났다면 날짜도 바꿔주자

if(confrimInterface.getPassOneDay())


테스트

전화인증

4번째

email

4번째

테스트 완료!

근데 보면 또
sendPhone/sendeMail이 겹치는 게 많다..?
그렇지만 여기서 일단 멈추려고 한다
더 합치면 나중에 봤을 때
어.. 이게 어떻게 동작하더라
생각이 들어 같아서 공부 중인 단계이니
다시 와서 또 리팩터링을 해주자!