현재 개발자 사이드 프로젝트 팀 매칭을 하고
매칭한 팀끼리 멘토링 받을 수 있는 플랫폼을 제작하고 있습니다
고민의 발단
현재 개발중인 서비스는 팀 매칭 서비스이다 보니 하나의 게시물(팀)에 여러명의 user가 들어간다.
팀의 삭제 API를 만들다 보니 삭제 권한은 팀장한테 있는데
팀장이 맘대로(?) 팀 삭제를 한다면 다른 팀원들이 피해를 볼것 같았다.
그래서 삭제를 어떻게 구현을 하지 고민하게 되었다.
구글링
구글링을 통해 찾아보니 soft delete와 hard delete라는것이 있었다.
https://velog.io/@taeha7b/hard-delete-softdelete
물리삭제(hard delete)와 논리삭제(soft delete)
데이터베이스에서 데이터를 삭제하는 방법에는 물리삭제와 논리삭제가 있으며 그중 하나를 선택하여 사용합니다.
velog.io
hard delete는 db에 delete 쿼리를 날려 데이터 자체를 아얘 날려버리는 방식이고
soft delete는 DB에 지워진 게시물인지를 판별할수 있는 column값을 넣어서 지워진 게시물이면 보이지 않게 하는 방식이다.
결론
게시물의 삭제 여부를 확인할수 있는 column을 두어 삭제 되지 않은 게시물만 보여지게 한다
이렇게 하면 DB에서 아얘 날려버리는것이 아니기 때문에
팀장이 악의적으로 팀을 지워버려도 복구가 가능하다..!
이런 식으로 0이면 존재, 1이면 삭제된 게시물로 처리된다
'기술적 고민 > Side Match' 카테고리의 다른 글
[SW마에스트로] 프로젝트 중 설계한 예외 처리 아키텍쳐 (0) | 2023.08.29 |
---|---|
[SW마에스트로] 복잡한 DTO 처리하기 (feat. queryDSL, 한방 쿼리) (0) | 2023.07.29 |
[SW마에스트로] ERD 설계 중 하는 고민 (0) | 2023.07.21 |
[SW마에스트로] AWS 미리 짚어보기 - 초급 (0) | 2023.05.03 |
[SW마에스트로] 코딩 테스트 문제 유형 정리 (0) | 2022.07.16 |