문제 요약

<aside> 💡 회원 탈퇴 기능을 구현하는 중, 일대다 관계로 연결된 댓글 테이블의 Cascade 조건 때문에 탈퇴 시 오류가 발생했습니다. 이를 해결하기 위해 Spring에서 멤버 삭제 로직에 연관된 플레이리스트와 댓글을 모두 삭제하는 방법을 사용했습니다.

</aside>

문제 설명

회원 탈퇴 기능을 구현하던 중, 특정 사용자를 삭제하려고 하면 다음과 같은 오류 메시지가 발생했습니다:

이 문제는 member 테이블과 comment 테이블이 일대다 관계로 연결되어 있으며, member를 삭제할 때 comment 테이블의 데이터도 같이 삭제되도록 설정된 Cascade 조건 때문이었습니다.

문제의 원인

문제의 원인을 파악하기 위해 다음과 같은 초기 분석을 진행했습니다:

분석 결과, member 테이블의 레코드를 삭제할 때 관련된 comment 테이블의 레코드가 제대로 삭제되지 않아서 오류가 발생하는 것을 확인했습니다.

해결 과정

문제 진단

문제의 원인을 더욱 명확히 하기 위해 다음과 같은 진단을 진행했습니다:

  1. 데이터베이스 스키마 확인: membercomment 테이블의 관계와 제약 조건을 다시 검토했습니다.
  2. Cascade 삭제 조건 확인: comment 테이블의 외래 키 제약 조건에서 Cascade 삭제가 제대로 설정되었는지 확인했습니다.
  3. 로그 분석: 데이터베이스 로그를 통해 삭제 작업이 어떻게 처리되는지 분석했습니다.