오늘의 할일 : 오늘은 회원가입 등록 및 회원가입시 중복확인 JSON 구현
Tip! 만약 db에서 '' 를 사용했다고 Entity에서 같이 를 사용하지마라 나중에 오류가 발생한다 예) user_id = userId 이런식으로 사용 JPA가 필드명 매핑을 자동으로할때 규칙이 다르기 때문에 찾지를 못한다고 한다 (자바 네이밍 컨벤션에 맞지않는다)
a. UserAction - 현재 유저의 승인 상태
b. UserStatus - 현재 유저의 로그인 상태
a. Entity와 동일하게 구현
b. UserImage = 기본 이미지 값
c. UserPoint = 회원가입시 포인트 지급
boolean existsByUserId(String userid) -> 회원 가입 할때 체크boolean existsByUserPhoneNumber(String phoneNumber) -> 회원 가입 할때 체크boolean existsByUserEmail(String email) -> 회원 가입 할때 체크
boolean existsByUserName(String username) -> 회원 가입 할때 체크
a. 비밀번호 자동 암호화
a. isIdCheck → 받아온 유저의 아이디 값을 Repository에서 false, true 값을 받아온다
b. register → 회원 가입 등록 , Password (Encoder 자동 암호화)
c. Action → admin이 승인을 해줘야함
d. Status → 현재 접속중인지 확인
a. 중복확인 유무 체크 - @Requestparam : JSON으로 데이터 값 받아오기
→ service로 boolean값 받아서 → 받아온 값 map으로 내보기
b. @ModelAttribute("member") → 자동으로 model 추가 템플릿에서 th 사용가능 자동으로 찾음
c. @Valid 를 사용하면 MemberDTO 에서 → @`@NotEmpty`, `@NotNull` 등을 조회 검증 → 실패시 BindingResult 객체에 오류 정보가 저장 오류가 있으면 → sign.html 로 이동
d. redirectAttributes → redirect를 하면 기존 model의 데이터가 사라짐 그걸 addFlash를 사용해서 임시 저장 후 전달하는 객체 → html 로 나타낼수있음
e. model에 member 객체를 추가해준다
Thymeleaf에서 `th:object="${member}"`를 사용 할수 있게해줌
a. th:object 로 자동으로 member 맵핑 해준다
b. checkDuplicate 중복확인 클릭시 → json으로 input value 값을 넘겨준다
중복확인 누르지 않았을 때 - 가입버튼 비활성화
중복확인 눌렀을 때 - 아이디가 없는 경우 가입 버튼 활성화
중복확인 눌렀을 때 - 아이디가 있을 경우
DB 저장