일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- tomcat
- 다국어처리
- jQuery
- NoSQL
- 롤
- 쿠버네티스 어나더 클래스
- jdk
- 쿠버네티스
- oracle
- Spring
- 리그오브레전드
- LOL
- 회원가입
- kubernetes
- MSI
- 롤토체스 꿀팁
- 테이블
- 데이터베이스
- 일프로
- SQL
- Python
- 파이썬
- Java
- 스프링
- Database
- 마이바티스
- 자바스크립트
- 롤토체스
- 이메일인증
- k8s
- Today
- Total
웹쟁이의 일상
[Spring] 회원가입 구현하기 - 2 본문
안녕하세요~ 오늘은 저번 포스팅에 이어서 회원가입 페이지를 만들어 보겠습니다.
저번 포스팅을 건너뛰신 분들은 먼저 이전 글을 보고 오시면 감사하겠습니다.
2019/05/20 - [Programming/JAVA] - [Spring] 회원가입 구현하기 -1
[Spring] 회원가입 구현하기 -1
안녕하세요~! 오늘은 회원가입 폼을 만들어 보겠습니다. 일단 회원가입을 하기 위해서는 유저 데이터를 담을 수있는 데이터베이스 테이블이 필요합니다. CREATE TABLE USER_INFO( REGIST_NO NUMBER, USER_ID VARCH..
newehblog.tistory.com

자 이렇게 화면이 나왔습니다.
이메일 인증은 아래 글에서 확인하실 수 있습니다.
2019/05/09 - [Programming/JAVA] - [Spring] 이메일 발송 및 인증 방법
[Spring] 이메일 발송 및 인증 방법
안녕하세요~! 오늘은 이메일 발송 및 인증 방법에 대해서 알아보겠습니다. 먼저 pom.xml을 열어 dependency를 추가해 줍니다. javax.mail mail <versio..< p=""> </versio..<>
newehblog.tistory.com
function ValidationCheck() { var validate = true; var regExp = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; // email 유효성검사 var hanChecked = /^[가-힝a-zA-Z]{2,15}$/; // 한글 유효성검사(2자리 이상 15자리 이하) var idChecked = /^[0-9a-zA-Z]{5,15}$/; // 아이디 유효성검사(5자리 이상 15자리 이하) //var phoneChecked = /^[0-9-]{1,16}$/; var phoneChecked = /^(01[016789]{1}|02|0[3-9]{1}[0-9]{1})-([0-9]{3,4})-([0-9]{4})$/; if($("#${commandName} #userEmail").val()) { if(!regExp.test($("#${commandName} #userEmail").val())){ alert("이메일 주소가 유효하지 않습니다"); $("#${commandName} #userEmail").focus(); return false; } } if($("#${commandName} #userPhone").val()) { if(!phoneChecked.test($("#${commandName} #userPhone").val())) { alert("전화번호가 잘못 되었습니다."); $("#${commandName} #userPhone").focus(); return false; } } if(!$("#${commandName} #userId").val()) { alert("아이디를 입력 하세요."); $("#${commandName} #userId").focus(); validate = false; return false; }else if(!idChecked.test($("#${commandName} #userId").val())){ alert("아이디는 5자 ~ 15자리 사이로 만들어주세요."); return false; }else if(!$("#${commandName} #userNm").val()) { alert("이름을 입력 하세요."); $("#${commandName} #userNm").focus(); return false; }else if(!hanChecked.test($("#${commandName} #userNm").val())){ alert("이름이 잘못 되었습니다."); $("#${commandName} #userNm").focus(); return false; }else if(!$("#${commandName} #userEmail").val()) { alert("이메일을 입력하세요."); $("#${commandName} #userEmail").focus(); return false; }else if(!$("#emailAuth").val()){ alert("이메일 인증을 완료해주세요."); $("#emailAuth").focus(); return false; }else if($("#emailAuthBtn")[0].disabled == false){ console.log($("#emailAuthBtn")[0].disabled); alert("이메일 인증을 완료해주세요."); $("#emailAuth").focus(); return false; }else if(!$("#${commandName} #userPw").val()) { alert("비밀번호를 입력하세요."); $("#${commandName} #userPw").focus(); return false; }else if($("#${commandName} #userPw").val().length > 16 || $("#${commandName} #userPw").val().length < 8) { alert("비밀번호는 8 ~ 16 자리로 입력해주세요."); return false; }else if(!$("#${commandName} #userPw2").val()) { alert("비밀번호 확인을 입력하세요."); $("#${commandName} #userPw2").focus(); return false; }else if($("#${commandName} #userPw").val() != $("#${commandName} #userPw2").val()) { alert("비밀번호가 일치 하지 않습니다."); $("#${commandName} #userPw2").focus(); return false; }else if(!$("#${commandName} #userFirstAddr").val()) { alert("주소를 클릭하여 선택해 주세요"); $("#${commandName} #userZipCode").focus(); return false; }else if(!$("#${commandName} #userSecondAddr").val()) { alert("나머지 주소를 입력 해 주세요"); $("#${commandName} #userSecondAddr").focus(); return false; }else{ return true; } }
자 일단 부적합한 데이터를 입력하는걸 방지하기 위해서 유효성 검사를 해줘야 합니다.
유효성 검사를 해줬으면 아이디가 이미 가입이 되어있는 아이디인지 확인하기 위해 중복 체크를 해줍니다.
function onblur_event(){ if(!$.trim($("#userId").val())){ $("#createIdSpan").css("color", "red").css("font-size", "10px").css("margin-top", "5px").css("margin-left", "5px").css("width", "235px").css("float", "left"); $(".createIdSpan").html("아이디를 입력하세요.").promise().done(function(){ $(".createIdSpan").slideDown("fast"); $(this).effect("shake", {times:15,distance:3,direction:"up"}, 300); }); return false; } if ($("#${commandName} #userId").val() != "") { var idChecked = /^[0-9a-zA-Z]{5,15}$/; // 아이디 유효성검사(5자리 이상 15자리 이하) if (!idChecked.test($("#${commandName} #userId").val())) { $("#createIdSpan").css("color", "red").css("font-size", "10px").css("margin-top", "5px").css("margin-left", "5px").css("width", "235px").css("float", "left"); document.getElementById("createIdSpan").innerHTML = "아이디는 5자 ~ 15자리 사이로 만들어주세요."; return false; } } $.ajax({ type:"get", url : "<c:url value='/login/createIdCheck.do'/>", data : "userId=" + $("#userId").val(), dataType: "json", success : function(data){ if(data.resultCode == "CM0011"){ $("#createIdSpan").css("color", "blue").css("font-size", "10px").css("margin-top", "5px").css("margin-left", "5px").css("width", "235px").css("float", "left"); $(".idSuccess").remove(); document.getElementById("createIdSpan").innerHTML = data.resultMessage; } if(data.resultCode == "CM0012"){ $("#createIdSpan").css("color", "red").css("font-size", "10px").css("margin-top", "5px").css("margin-left", "5px").css("width", "270px").css("float", "left"); document.getElementById("createIdSpan").innerHTML = data.resultMessage; $("#userId").val(""); } }, error: function(data){ alert("에러가 발생했습니다."); return false; } }) }
비동기 통신으로 아이디 중복체크를 해줍니다.
@RequestMapping(value="/createIdCheck.do", method=RequestMethod.GET) @ResponseBody public JSONObject createIdCheck(@RequestParam String userId, Model model){ JSONObject json = new JSONObject(); int cnt = -1; cnt = userService.createIdCheck(userId); if(cnt <= 0){ json.put(FrontBackErrorCode.RESULT_CD, FrontBackErrorCode.CM0011); json.put(FrontBackErrorCode.RESULT_MESSAGE, FrontBackErrorCode.CM0011_MSG); return json; }else{ json.put(FrontBackErrorCode.RESULT_CD, FrontBackErrorCode.CM0012); json.put(FrontBackErrorCode.RESULT_MESSAGE, FrontBackErrorCode.CM0012_MSG); return json; } }
중복체크를 위한 컨트롤러를 만들어줍니다.
package com.co.kr.login.service; import java.util.Map; import javax.validation.Valid; import com.co.kr.login.vo.UserAuthVo; import com.co.kr.login.vo.UserVo; public interface UserService { public int createIdCheck(String userId); }
package com.co.kr.login.dao; import java.util.List; import java.util.Map; import org.springframework.stereotype.Repository; import com.co.kr.common.dao.AbstractDAO; import com.co.kr.common.vo.ExcludePageVo; import com.co.kr.login.vo.UserAuthVo; import com.co.kr.login.vo.UserVo; @Repository public class UserDao extends AbstractDAO{ private final String PREFIX = "userMapper."; public int createIdCheck(String userId){ return (int) selectOne(PREFIX + "createIdCheck", userId); } }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="userMapper"> <select id="createIdCheck" resultType="int" parameterType="String"> SELECT COUNT(USER_ID) FROM USER_INFO WHERE USER_ID = #{value} /* com.co.kr.login.dao.createIdCheck */ </select> </mapper>
ServiceImpl, Service, DAO, Mapper에서 중복 체크를 위한 로직을 만들어 주겠습니다.
데이터베이스에서 사용하려는 아이디를 검색해서 카운트가 1 이상이면 사용중인 아이디가 존재한다는 뜻입니다.

아이디가 중복일 시 위의 화면처럼 표시됩니다.
글이 너무 길어지는 것 같으니 다음 포스팅에서 이어 설명하겠습니다.
'JAVA' 카테고리의 다른 글
[Spring] 회원가입 구현하기 - 4 <다음 주소 API 사용법> (1) | 2019.05.22 |
---|---|
[Spring] 회원가입 구현하기 -3 (5) | 2019.05.22 |
[Spring] 회원가입 구현하기 -1 (2) | 2019.05.20 |
[Spring] 다국어 처리 방법 (0) | 2019.05.20 |
[Spring] JSP header 세팅 (0) | 2019.05.18 |