국비 개인 프로젝트 회고_2. 회원 시스템: 중복 검사 서비스
회고 1에서 app ui 서버의 api가 요청하면 응답하는 곳이 바로 여기임.
java 17, spring boot 2.7.5 db는 mysql
main 하위에 generated 폴더는 초면.. 난 만든 적이 없단 말이다..
github repo에도 없고 local 프로젝트에만 있네 흠🤔
잠깐 구글링 했는데 정보가 별로 안나옴
✅ 이메일 중복 검사
log 찍는다고 service를 두 번 돌렸네. 어쩐지 쿼리문이 두 번 돌아가더라..😂😂
애초에 결과값 확인 log가 필요할까? 컨트롤러 돌아가는 것만 확인하면 그만 아닐까?
쿨하게 날려주기~
여튼 컨트롤러에서 위의 주소로 get 요청을 받으면 주소 맨 뒤에 중복 검사 하려는 이메일 값이 옴
이 값을 MemberService의 emailvalidation의 인자로 넘김.
MemberService Interface 구현체인 MemberServiceImpl class의 emailValidation 메소드에서
이메일 중복검사를 진행한다.
MemberRepository의 findByEmail 메서드를 호출해 인자로 넘겨받은 email값을 가지는 member entity가 있는지 조회.
member가 있으면 false(중복 검사 통과 못함), 없다면 true 리턴.
이메일 중복 검사에선 Authentication entity의 필드 값이 필요하지 않지만
로그인 서비스에선 필요하기 때문에 join하고 n+1 방지를 위해 fetch를 썼던 거 같다.
(로그인 서비스에서도 findByEmail 메서드를 사용함)
닉네임 중복 검사도 동일한 흐름으로 진행한다.
회원가입 시스템까지 함께 포스팅하려고 했지만
생각보다 시간이 너무 오래 걸려서 중복 검사 서비스 먼저 포스팅...😿
회원 시스템에서 쓰는 Entity들도 따로 포스팅할 예정