[Spring_4기 본캠프] Spring 숙련 - 일정관리 앱 Develop | Day 44
1. 일정관리 앱 유저 삭제 에러
개발자 인생에서 딱 25번만 허락된다는 갓핑거. 내가 알지도 못하는 로직들을 신들린듯 쓰고 API 테스트도 정상으로 순조롭게 넘어가며 과제를 진행하고 있었는데 첫 에러가 났다.
에러명 : Cannot delete or update a parent row: a foreign key constraint fails (`develop_todo`.`todos`, CONSTRAINT `FK3ju26rdbtvey9t2vm08idphxx` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`))
부모키를 참조하고 있는 외래 키가 있어서 삭제가 되질 않는다는 것 같았다.
검색을 해보니 내가 생각한 것이 맞았다. 일정 기능을 구현하기 전까진 문제가 없었는데.. 이제 일정 기능들이 유저의 정보를 참조하고 있기 때문에 에러가 나면서 삭제 기능이 무의미해져버렸다.
인터넷에서는 해당 테이블 혹은 행을 참조하는 데이터를 삭제한 후 삭제하거나, 외래키 체크 설정을 해제하라는데 무조건 유저의 고유 식별자를 참조하는 것이 이번 과제의 필수 요건이기 때문에 불가능했다.
고민을 하다가 임선생님께 여쭤보니 Soft Delete 를 하는 방법이 있다고 했다.
Soft Delete를 간단하게 설명하면, 유저가 썼던 게시글들이 유저가 해당 사이트에서 탈퇴해 정보가 사라지더라도 게시글들은 <알수없음> 상태로 남아있는 것이다. (데이터는 소중하니까 Hard Delete가 아니라 Soft Delete 를 선호한다고 하셨다..)
일단 아직 구현하지 못한 나머지 기능들을 구현하고 문제를 해결하기로 했다!.. 에러는 미래의 나에게....!!