0. 지금까지...

자잘한 오류에 발목 많이 잡히고 정작 원하는 기능 구현은 못 하고 있는 느낌...

게시판 기능과 관리자 기능까지는 만들어야 하기 때문에 빨리빨리 진행해야 한다...ㅠ

 

1. 마이페이지 및 회원 수정 기능

커뮤니티이기 때문에 내가 쓴 글, 내가 쓴 댓글, 내가 추천한 글 개수를 마이페이지에서 보여 주고 싶다.

내용 자체는 새로운 jsp에서 이동하여 볼 수 있도록 따로 관리.

user_id를 FK로 조건 삼아 DB의 post table에 저장된 값을 조회하고, 값의 개수를 저장한 변수도 필요함.

안 배웠기 때문에 잘 모르겠고 일단 배운 거 먼저 하기로 함.

 

1-1) mypage 화면 구현

a) 가입 날짜의 값을 가지고 오지 못한다. db에 data는 있는 상태.

mypage.jsp

b) reg_date를 date datatype으로 두었는데 String 값으로 가져오면서 datatype이 맞지 않아 오류가 발생함. 이를 memberVO에서 String으로 바꿔 주었는데 메일 수신 여부와 가입 날짜 둘 다 잘못 가져오는 오류가 또 발생했다.

이는 MemberMapper.xml에서 콤마를 안 넣는 오타가 발생해서 그렇고, String으로 바꿔 주니 다시 잘 출력이 되었다.

1-2) 회원 탈퇴 기능 구현

service, serviceImpl, memberMapper.java, memberMapper.xml, MemberController, JS 작업 완료

memberMapper.xml
memberController.java

 

1-3) 비밀번호 변경 구현

구현을 하다가 왜 이 두 개가 있나 했다.

비밀번호 변경에 필요한 Service 및 mapper(java) method는 2개.

changePw (비밀번호 변경)

currentPwConfirm (변경 시 현재 비밀번호를 확인하는 method)

가만 생각해 보니 ID/PW 찾기 할 때 비밀번호를 변경하기 위해 왼쪽 method가 존재하고 변경은 후자였던 것.

해결하고 실행해 보니 정규식 검사를 안 거치고 비밀번호 변경이 돼 버려서 수정했다.

$("#btn_changePw").on("click", function(){
						
    let cur_userPw = $("#cur_userPw");
    let cng_userPw = $("#cng_userPw");
    let pw_reg = RegExp(/(?=.*[0-9a-zA-ZS])(?=.*?[#?!@$%^&*-]).{8,24}/);

    if(cur_userPw.val() == "" || cur_userPw.val() == null){
        alert("현재 비밀번호를 입력해 주세요.");
        cur_userPw.focus();
        return;
    }

    if(cng_userPw.val() == "" || cng_userPw.val() == null){
        alert("변경할 비밀번호를 입력해 주세요.");
        cng_userPw.focus();
        return;
    }

    // 아이디와 동일한지 여부 검사
    if($("#user_id").val() == $("#cng_userPw").val()){
        alert("아이디와 비밀번호를 동일하게 입력할 수 없습니다.");
        $("#cng_userPw").val("");
        cng_userPw.focus();
        return;
    }

    // 비밀번호 유효성 검사
    if(!pw_reg.test($("#cng_userPw").val())){
        alert("영어 대소문자, 숫자를 이용하여 특수문자(#?!@$%^&*-)를 포함해서 비밀번호를 입력해 주세요.");
        cng_userPw.focus();
        return;
    }

    $.ajax({
        url: '/member/changePw',
        type: 'post',
        dataType: 'text',
        data: { cur_userPw : cur_userPw.val(), cng_userPw : cng_userPw.val()},
        success: function(data){
            if(data == "success"){
                alert("비밀번호 변경을 성공했습니다.");
            }else if(data == "noPw"){
                alert("현재 비밀번호가 다릅니다.");
                cur_userPw.val("");
                cur_userPw.focus();
            }
        }
    });
});
복사했습니다!