본문 바로가기

Project/ToyProject

[R.Manager - Toy Project] 2nd (회원가입 기능 - 아이디 중복 체크)

반응형

Java Spring 아이디 중복체크 

첫 번째로 만든 것은 회원가입 기능이다

생각보다 조건들이 많아서 2회에 걸쳐 포스팅하려 한다 

 

[ Part 1 진행 순서 ]

  • UI 구성
  • 아이디 중복확인 기능 (비즈니스 로직)

등록 폼

첫 번째로, 회원가입 UI 등록 폼을 만들었다

jsp 파일에서 bootstrap을 이용하여 폼들을 구성하였고 

사용자에게 회원가입 예시를 보여주기 위해 placeholder를 많이 사용하였다 

 

Java에서 기본적으로 제공해주는 password type으로 비밀번호는 사용자 눈에 보이지 않게끔 구성하였고

이메일 또한 기본적으로 제공해주는 email type으로 이메일 형식을 체크해주었다 

 

여기서 아이디는 중복이 되면 안 되기 때문에

중복체크 버튼을 만들었고, 버튼 클릭 시 현재 DB에 같은 아이디가 있는지 조회해주는 비즈니스 로직을 구성하였다 

 

아이디 중복체크 JS

중복 확인 버튼 클릭 시 

fn_idChk 함수가 실행 되는데, 이때 화면에 이동이 있으면 안 되기 때문에

비동기 처리 방식으로 ajax를 사용하여 사용자가 입력한 아이디 값 = $("#userId"). val()를 data에 싣고

method는 post 방식으로 (Get 방식보다 보안이 강하기 때문에)

./idChk url로 데이터를 전송하였다 

이후에 데이터가 정상적으로 넘어오면 1일 시에는 중복된 아이디고 0일 시에는 사용 가능한 아이디이기 때문에

if문을 통해 조건에 맞게 코드를 구현하였다 

 

1과 0은 sql문에서 int형식으로 데이터를 조회했을 때, 

해당 값이 있으면 1, 없으면 0을 return 해주기 때문이다 (1 이상 안 넘어가는 이유는 어차피 아이디가 2개 이상 늘어날 일이 없다)

 

유저 VO
해당 Controller

비동기 처리 방식이기 때문에 RestController를 사용해야 한다 

그렇기에 어노테이션으로 @ResponseBody를 붙여주었고 

Post방식으로 넘어오기 때문에 @PostMapping 또한 등록해주었다 

 

해당 컨트롤러로 값이(사용자가 입력한 ID값) 넘어오면 유저 VO로 자동 주입해주고,

그 vo를 mapper로 넘겨 DB 조회를 한다 

앞서 말했듯이, int형식으로 넘겨받기 때문에 결과 또한 int형으로 지정한다 

 

 

파일구조

파일 구조에 맞게 총 4개의 파일을 추가한다 

이때, Dao는 Data access object로 SQL을 직접적으로 조작하기 위해 사용되고

Service는 비즈니스 로직을 처리하는 데 사용한다 

코드를 보면 쉽게 이해가 갈 것 같다 

 

ibatis

마지막으로 ibatis 문법을 이용해서 view단에서 controller를 거쳐 넘어온 사용자가 입력한 id 값을

실제 DB랑 조회해서 같은 것들을 카운트한다 

만약 카운트된 것이 있으면 1을 return 받을 것이고, 없으면 0을 return 받을 것이다 

 

컨트롤러에서 숫자를 다시 jsp단으로 보냄으로써 아이디 중복확인 기능을 마무리하였다 

반응형