정리노트/팀프로젝트

[스프링] 회원 탈퇴 구현

망고고래 2024. 2. 16. 12:47

(초기 버전)

1. 폼에 회원 탈퇴 추가

<!-- 이전 생략 -->
<div class="form-group row mt-4">
                            <div class="col-sm-offset-2 col-sm-10">
                                <input type="submit" value="수정" class="offset-md-8 submit-green">
                            	<a href="<c:url value="/home"/>" class="submit-red">취소</a><br>
			<a href="" onclick="delete_confirm()">회원탈퇴</a>
                            </div>
                        </div>
                    </form:form>
                </div>
            </div>
        </div>
    </section>

    <jsp:include page="/WEB-INF/views/module/footer.jsp" flush="false"/>

</body>
</html>
<script type="text/javascript">
function delete_confirm() {
	var con = confirm("회원 탈퇴하시겠습니까?");
	if(con){
		document.getElementById('delete_form').submit();
	}else{
		return false;
	}
}
</script>

 

 

2. Repository 작성

	@Override
	public int delete_member(String sessionId) {
		String sql = "DELETE FROM user_mem WHERE mem_id = ?";
		int verify = template.update(sql, sessionId);
		return verify;
	}

 

 

 

3. Service 작성

	@Override
	public int delete_member(String sessionId) {
		System.out.println("memberService.delete_member() 도착");
		int verify = memberRepository.delete_member(sessionId);
		return verify;
	}

 

 

 

4. Controller 작성

	@GetMapping("/delete_member")
	public String delete_member() {
		String sessionId = (String)session.getAttribute("sessionId");
		int verify = memberService.delete_member(sessionId);
		if(verify == 1) {
			System.out.println("회원 삭제 성공");
			return "redirect:/home";
		}else {
			System.out.println("회원 삭제 실패");
			return "redirect:/home";
		}
	}

 

 

 

 

(수정)

어제 여기까지 했는데 오늘 다시 해보니 redirect:/home이 제대로 실행되지 않았다. 그리고 고치는 과정에서 갑자기 회원탈퇴로 이동하는 a 태그가 제대로 작동하지 않게 됐다.

그래서 방법을 바꾸기로 했다.

1) home으로 이동하는 대신에 회원탈퇴 완료 페이지로 이동한다.

2) a태그 대신에 form을 새로 만들고 submit으로 제출한다.

 

1-1. form 수정

<form:form> 태그 밑에 submit 버튼만 있는 <form>태그를 만들고 onsubmit으로 confirm을 발생시켰다.

<form name="delete_form" action="<c:url value="/member/delete_member"/>" onsubmit="return confirm('회원 탈퇴하시겠습니까?');">
   <input type="submit" value="회원 탈퇴" class="btn btn-danger"/>
</form>

 

 

1-2. 뷰 페이지 제작

 

 

 

1-3. Controller 수정

    @GetMapping("/delete_member")
	public String delete_member() {
		String sessionId = (String)session.getAttribute("sessionId");
		int verify = memberService.delete_member(sessionId);
		if(verify == 1) {
			System.out.println("회원 삭제 성공");
			return "/member/delete_member_complete";
		}else {
			System.out.println("회원 삭제 실패");
			return "/member/member_info";
		}
	}