• Web_ project 진행_2 : Spring 회원가입 구현

    2021. 11. 4.

    by. KAEY

    *해당 프로젝트 기술은 메아리 프로젝트에서 제가 담당했었던 기능 분야 쪽만 기술 합니다!! 이외엔 팀원들과의 합작입니다.


    사전에 계획된 회원가입에 사용될 맴버 테이블을 참고하여 VO파일을 만들어서 관리한다.

     

     

     

    com.mySpring.myapp.member.vo

    public class MemberVO {
    	private String member_id;
    	private String member_pw;
    	private String member_name;
    	private String member_email;
    	private String member_pw_corr;
    	private Date joinDate;
    	
        	......생략.....
        }

    MemberVO를 생성해서 사전에 계획된 테이블에 맞춰서 값들을 만들어준다.

    그 후, getter, setter 들을 생성해서 프론트에서 입력된 값들을 백엔드 영역에서 사용할 수 있도록 설정한다.

    이렇게 생성해놓으면 MemberVO memberVO 등의 형식으로 생성자를 통해 MemberVO에서의 값들을 이용해서 사용할 수 있게 된다.

     

     

     

     

    /WEB-INF/views/signup/signup.jsp

    <div class="register_id">
                        <h4>아이디</h4>
                        <input type="text" name="member_id" id="" placeholder="아이디 입력">
                    </div>
                    
                    ...생략...
                    
                    <div class="register_name">
                        <h4>이름</h4>
                        <input type="text" name="member_name" id="" placeholder="이름 입력">
                    </div>

    프론트에서 사용자에게 보여지고 얻어질 값들을 매칭한 후, submit / post의 형식으로 값을 이동할 수 있도록 해줌.

     

     

     

     

    com.mySpring.myapp.member.controller

    public interface MemberController {
    
    	public ModelAndView addMember(@ModelAttribute("info") MemberVO memberVO,
        							HttpServletRequest request, HttpServletResponse response) 
                                   				 throws Exception;
    	
    }

    Controller에 인터페이스로 회원가입에 해당하는 MVC 모델을 생성해서 만들어 놓는다.

    그 후, 같은 폴더(패키지)안에 Controllerimpl 을 생성해서 해당 파일에서 인터페이스를 명확하게 작성하여, 느슨한 결합이 이루어질 수 있도록 함.

     

     

     

     

    com.mySpring.myapp.member.controller.controllerImpl

    		request.setCharacterEncoding("utf-8");
    		int result = 0;
    		result = memberService.addMember(member);
    		ModelAndView mav = new ModelAndView("redirect:/loginForm");
    		return mav;

    @RequestMapping 으로 해당 value와 일치하는 경우, 처리하는 로직을 작성한다. 해당 로직은 앞 프론트에서 사용자가 입력한 값이 담겨서 오게 되므로 이를 memberService의 addmember 로직을 member를 담아서 실행하게 할 것임. 앞서 member에는 memberVO의 형식과 일치하게 됨.

     

     

     

     

     

    com.mySpring.myapp.member.service

    public interface MemberService {
    	 public int addMember(MemberVO memberVO) throws DataAccessException;
    }

    앞서 했었던 과정과 동일하게 서비스 역시 인터페이스 ㅡ 구현 을 통해 작성한다.

     

     

     

     

    com.mySpring.myapp.member.service.MemberServiceImpl

    	@Override
    	public int addMember(MemberVO member) throws DataAccessException {
    		return memberDAO.insertMember(member);
    	}

    이를 통해 들어온 member를 DAO의 insertMember로 보내준다.

     

     

     

     

    com.mySpring.myapp.member.dao ( Impl 파일 포함)

    public interface MemberDAO {
    	 public int insertMember(MemberVO memberVO) throws DataAccessException;
    }
    	@Override
    	public int insertMember(MemberVO memberVO) throws DataAccessException {
    		int result = sqlSession.insert("mapper.member.insertMember", memberVO);
    		return result;
    	}

    DAO 로직의 경우 DB와 연관된 로직이다. 회원가입의 경우 사용자의 정보를 전달하여 DB에 insert 해야 하는 것이고, 해당 프로젝트에서 사용한 오라클에 저장될 수 있도록 값들을 전달하여 준다.

     

     

     

     

    resources/mybaties/mappers/member.xml

      <insert id="insertMember"  parameterType="memberVO">
    		<![CDATA[
    		 insert into member(member_id, member_pw, member_name, member_email, member_pw_corr)
    		 values(#{member_id}, #{member_pw}, #{member_name}, #{member_email}, #{member_pw_corr})
    		]]>      
    	</insert>

    MEMBER와 연관된 DB를 관리해줄 XML 파일을 작성한다. 해당 <![CDATA[  'SQL문법' ]]> 을 통해서 오라클 DB에서가 아닌, 이클립스 프로젝트 자체에서도 DB를 입력할 수 있게 된다. 

     

     

     

    이러한 모든 과정을 마치게 되면, 정상적으로 회원가입이 진행이 되고 DB에 잘 저장된다.

     

     


     

    댓글 (비로그인 댓글 허용하지 않습니다.)