이전 글
https://cordingmonster.tistory.com/108?category=1038496
고민이 있었다 너무 비슷한 로직이었다
문자인증/전화인증 로직인데 둘 다 인증번호를 받아서 검사해주면 됐었다
그래서 떠오른 아이디어 아 이럴 때 인터페이스를 써볼까..?
하고 만들었다
interface
phone
service
인터페이스를 변수로 받아서 검사한다!
문제의 두 개의 함수 너무 비슷했다
하나는 핸드폰으로 인증번호 검사
하나는 이메일 검사 후 임시 비밀번호 발급
그리고 여기서 하나 더 이메일 인증번호 검사
사실상 3개는 같은 로직이 엄청 들어가게 된다
confrimDto confrimDto=confimDao.findByEmail(emailCofrimDto.getEmail());
confrimInterface confrimInterface=new emailConfrim(confrimDto);
JSONObject result=compareTempNum(confrimInterface,emailCofrimDto.getTempNum());
이 세줄의 코드로 둘의 엄청나게 겹치는 코드가 묶였다!
이전까지 인터페이스 음..? 가물가물 했었다
이번 계기로 머리에서 번개가 치는 느낌이 났다
아..! 이렇게 할 수 있구나!
앞으로 잘 활용할 수 있을 거 같다!
테스트
인증시간 초과(맞는 값은 틀린 값이 든 상관없이)
테스트는 맞는 값으로 지정
재전송 후 틀린 값 입력
재전송 후 맞는 값 입력
문자
인증시간 초과(맞는 값은 틀린 값이 든 상관없이)
테스트는 맞는 값으로 지정
재전송 후 틀린 값 입력
재전송 후 맞는 값 입력
성공 하지만!
회원 가입한 번호가 존재하지 않기에
찾기->메시지 출력
존재한다면
번호와 일치하는 이메일 표시!
트랜잭셔널 어노테이션을 추가하였다!
https://cordingmonster.tistory.com/133
'Spring boot kim's Shop > 리팩토링' 카테고리의 다른 글
Springboot 결제시스템 (7) 카카오페이 연동 (0) | 2021.09.08 |
---|---|
Springboot 예약+결제시스템 리펙토링! (0) | 2021.09.02 |
Springboot jwt인증 리펙토링 (0) | 2021.09.02 |
Springboot->html+자바스크립트로! (0) | 2021.08.31 |
Springboot 인증 시스템 리팩토링!(2) with interface (0) | 2021.08.14 |