[클론 코딩] 네이버 카페 - 네이버 회원 탈퇴

2024. 5. 12. 00:38Project/Naver Cafe

  이번에는 네이버 회원 탈퇴에 대한 기능을 추가하려 한다. 실제 네이버 회원 탈퇴는 즉시 탈퇴가 아닌 탈퇴 신청 개념이며 일정 기간을 가져 중간에 탈퇴 신청을 취소할 수 있으며, 기간이 지나는 동안 별다른 조치를 하지않으면 탈퇴가 된다. 하지만 프로젝트에서는 즉시 탈퇴가 되도록 구현하였다.


MemberController

package CloneCoding.NaverCafe.domain.member.controller;

@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/member")
public class MemberController {

    private final MemberService memberService;

    @DeleteMapping("/secede/{token}")
    public String deleteMember(@PathVariable("token") String token) {
        log.info("회원 탈퇴 요청");
        return memberService.deleteMember(token);
    }

}

 

  회원 탈퇴 요청을 수행할 수 있도록 deleteMember() 를 추가하였다. 해당 메서드는 요청 URL에서 token 정보를 받아 MemberService의 deleteMember()를 호출한다.


MemberServiceImpl

package CloneCoding.NaverCafe.domain.member.service;

import static CloneCoding.NaverCafe.message.SystemMessage.*;
import static CloneCoding.NaverCafe.security.LoginStatus.STATUS_LOGIN;
import static CloneCoding.NaverCafe.security.LoginStatus.STATUS_LOGOUT;

@Service
@Transactional
@RequiredArgsConstructor
public class MemberServiceImpl implements MemberService {

    private final MemberRepository memberRepository;
    private final AesUtil aesUtil;

    @Override
    public String deleteMember(String token) {

        String accountId = aesUtil.aesDecode(token);
        Member findMember = memberRepository.findByAccountId(accountId);

        if (memberRepository.checkLogin(findMember))
            throw new RuntimeException(PLEASE_CHECK_LOGIN.getMessage());

        memberRepository.delete(findMember);

        return SECEDE_MEMBER_COMPLETE.getMessage();

    }

}

 

  MemberService 인터페이스의 deleteMember()를 구현하였다. token 정보를 복호화해 사용자 계정 ID를 식별해 회원 정보를 조회하고 회원의 로그인 상태를 체크한다. 이후 DB에서 회원 정보를 삭제하고 회원 탈퇴에 대한 메시지를 반환한다.


SystemMessage

package CloneCoding.NaverCafe.message;

@Getter
@RequiredArgsConstructor
public enum SystemMessage {

    SECEDE_MEMBER_COMPLETE("회원 탈퇴가 완료되었습니다.")
    ;

    private final String message;

}

 

  회원 탈퇴에 대한 메시지를 추가하였다.


API TEST

API TEST - 네이버 회원 탈퇴

 

DB - 네이버 회원 탈퇴

 

  테스트를 통해 요청에 따른 응답이 정상적으로 이루어지고, DB를 통해서 기존의 회원정보가 잘 삭제된 것을 확인 할 수 있다.