/* 로그인 */
	@RequestMapping(value = "login", method = RequestMethod.POST)
	public String loginPOST(HttpServletRequest request, MemberVO member, RedirectAttributes rttr) throws Exception {
		
		//System.out.println("login 메서드 진입");
		//System.out.println("전달된 데이터 : " + member);
		
		HttpSession session = request.getSession();
		MemberVO lvo = memberService.memberLogin(member);
		
		if (lvo == null) { // 아이디, 비밀번호가 일치하지 않는 경우
			int result = 0;
			rttr.addFlashAttribute("result", result);
			logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>> 로그인 실패");
			return "redirect:/member/login";
		}
		
		session.setAttribute("member", lvo); // 아이디, 비밀번호가 일치할 경우 (로그인 성공)
		
		logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>> 로그인 성공");
		
		return "redirect:/main";
	}
memberLogin(member) 호출하여 반환받은 정보를 lvo 변수에 저장 =>(lvo==null) 작성
◇ true(lvo가 null인 경우) - 로그인 실패
=> 리플렉션에 실패를 의미하는 데이터 저장
=> 로그인 페이지 리다이렉트
◆ false(lvo가 null이 아닌 경우) - 로그인 성공
=> 세션에 사용자의 정보 저장
=> 메인 페이지로 리다이렉트
회원의 정보를 반환하는 쿼리문 실행(사용자의 아이디를 조건으로 함)
=> 회원의 정보가 null인지판단
◇ null 인경우 - 로그인 실패
=> 로그인 실패 실행 코드
◆ null 아닌 경우
=> matchers() 문을 통해 데이터베이스 저장된 비밀번호와 제출된 비밀번호 일치 여부 확인
□(true) true인 경우 - 비밀번호 일치
로그인 성공 실행 코드
■(false) false인 경우 - 비밀번호 불일치
로그인 실패 실행 코드
MemberMapper.xml에 있는 로그인 쿼리를 아래와 같이 수정한다.
  			<!-- select memberId, memberName, adminCk, money, point from book_member where memberId = #{memberId} and memberPw = #{memberPw} -->
  			select memberId, memberPw, memberName, adminCk, money, point from book_member where memberId = #{memberId}
/* 로그인 */
	@RequestMapping(value = "login", method = RequestMethod.POST)
	public String loginPOST(HttpServletRequest request, MemberVO member, RedirectAttributes rttr) throws Exception {
		
		HttpSession session = request.getSession();
		String rawPw = "";
		String encodePw = "";
		
		MemberVO lvo = memberService.memberLogin(member);
	}
HttpSession session = request.getSession();
		String rawPw = "";
		String encodePw = "";
		
		MemberVO lvo = memberService.memberLogin(member); 
		
		if (lvo != null) {		// 일치하는 아이디 존재시
			
			
		}  else {				// 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
			
		}
		HttpSession session = request.getSession();
		String rawPw = "";
		String encodePw = "";
		
		MemberVO lvo = memberService.memberLogin(member); 
		
		if (lvo != null) {		// 일치하는 아이디 존재시
			
			
		}  else {				// 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
			
			rttr.addFlashAttribute("result", 0);
			return "redirect:/member/login";
		}
HttpSession session = request.getSession();
		String rawPw = "";
		String encodePw = "";
		
		MemberVO lvo = memberService.memberLogin(member); 
		
		if (lvo != null) {		// 일치하는 아이디 존재시
			
			rawPw = member.getMemberPw(); // 사용자가 제출한 비밀번호
			encodePw = lvo.getMemberPw(); // 데이터베이스에 저장한 인코딩된 비밀번호
			
		}  else {				// 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
			
			rttr.addFlashAttribute("result", 0);
			return "redirect:/member/login";
		}
HttpSession session = request.getSession();
		String rawPw = "";
		String encodePw = "";
		
		MemberVO lvo = memberService.memberLogin(member); 
		
		if (lvo != null) {		// 일치하는 아이디 존재시
			
			rawPw = member.getMemberPw(); // 사용자가 제출한 비밀번호
			encodePw = lvo.getMemberPw(); // 데이터베이스에 저장한 인코딩된 비밀번호
			
			if (true == pwEncoder.matches(rawPw, encodePw)) { // 비밀번호 일치여부 판단
				
			} else {
				
			}
			
		}  else {				// 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
			
			rttr.addFlashAttribute("result", 0);
			return "redirect:/member/login";
		}
HttpSession session = request.getSession();
		String rawPw = "";
		String encodePw = "";
		
		MemberVO lvo = memberService.memberLogin(member); 
		
		if (lvo != null) {		// 일치하는 아이디 존재시
			
			rawPw = member.getMemberPw(); // 사용자가 제출한 비밀번호
			encodePw = lvo.getMemberPw(); // 데이터베이스에 저장한 인코딩된 비밀번호
			
			if (true == pwEncoder.matches(rawPw, encodePw)) { // 비밀번호 일치여부 판단
				
			} else {
				
				rttr.addFlashAttribute("result", 0);
				return "redirect:/member/login";
			}
			
		}  else {				// 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
			
			rttr.addFlashAttribute("result", 0);
			return "redirect:/member/login";
		}
HttpSession session = request.getSession();
		String rawPw = "";
		String encodePw = "";
		
		MemberVO lvo = memberService.memberLogin(member); 
		
		if (lvo != null) {		// 일치하는 아이디 존재시
			
			rawPw = member.getMemberPw(); // 사용자가 제출한 비밀번호
			encodePw = lvo.getMemberPw(); // 데이터베이스에 저장한 인코딩된 비밀번호
			
			if (true == pwEncoder.matches(rawPw, encodePw)) { // 비밀번호 일치여부 판단
				
				lvo.setMemberPw("");					// 인코딩된 비밀번호 정보 지움
				session.setAttribute("member", lvo);	// session에 사용자의 정보 저장
				return "redirect:/main";				// 메인페이지 이동
				
			} else {
				
				rttr.addFlashAttribute("result", 0);
				return "redirect:/member/login";
			}
			
		}  else {				// 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
			
			rttr.addFlashAttribute("result", 0);
			return "redirect:/member/login";
		}


