soft Delete vs Hard Delete

Featured image

hard Delete와 soft Delete는 데이터베이스에서 데이터를 삭제하는 방법으로 둘 모두 데이터삭제를 하지만 둘의 처리 방법이 다르다

hard Delete

데이터를 영구적으로 삭제하는 방법으로 데이터베이스에서 삭제하는 방식으로 해당 레코드를 완전히 제거하며 이후에는 복구가 불가능 합니다

데이터베이스에서 완전히 제거되기 떄문에 데이터베이스의 공간을 차지하지 않고 복잡한 로직 필요없이 간단하게 구현 할 수 있습니다

하지만 한번 삭제된 데이터는 영구적으로 삭제되기 때문에 만약 실수로 데이터를 삭제되었다면 백업에서 복구가 힘듭니다

그렇기 때문에 데이터 복구가 필요하지 않고 일회성 데이터나 개인정보와 같은 민감한 정보를 처리할 때 주로 사용합니다

soft Delete

데이터를 실제로 삭제하지 않고 deleteAt등을 설정해 삭제되었다고 설정하는 방식으로 사용자는 해당 데이터에 접근할 수 없게 하는 방식을 의미합니다

데이터가 삭제된것 처럼 보이지만 실제로는 남아있기 때문에 쉽게 복구할 수 있고 삭제된 데이터를 보관하고 있기 때문에 삭제된 기록을 조회할 수 있습니다

하지만 한 컬럼이 추가되었기 때문에 데이터베이스의 크기가 커지고 삭제된 데이터가 많아지면 데이터베이스에 성능에 영향을 줄 수 있고 삭제된 데이터와 비슷하거나 같은 데이터를 추가할 경우 중복 문제가 발생할 수 있습니다