본문 바로가기

Backend/DB

hard delete와 soft delete의 차이점

hard delete와 soft delete라는 단어를 듣게 되었다. 

삭제하는데 hard하게 하는건 뭐고 soft하게 하는건 뭐고,, 무슨 차이인지 궁금해서 찾아보았다.

 


일단 DB에서 삭제 방법은 hard delete(물리삭제)와 soft delete(논리삭제)가 있다. 

 

hard delete soft delete 
레코드를 전체적으로 삭제  데이터 사용 유무값(flag)만 바꿔 사용자에게 보이지 않게 하는 삭제
데이터베이스에서 DELETE 키워드 이용  DB에서 특정 column 사용 여부를 UPDATE 시켜 사용자에게 보이지 않게 처리 
장점 : 삭제 처리를 통해 테이블 디스크의 사용량 줄일 수 있음 + SQL 작성 편리함 / 단점 : 데이터 복구 불가능  장점 : 복구가 필요한 데이터의 경우 손쉽게 복구 가능 / 단점 : SQL 작성의 번거로움, 삭제 처리가 돼도 테이블 디스크 사용량이 떨어지지 않음

 

알고보니, 나도 soft delete를 사용하고 있었다 

is_active 컬럼을 두어 해당 팝업 데이터를 삭제하는 것이 아닌 노출 유무만 boolean(flag)값으로 판별하는 것이다.

 

참고 https://132262b.github.io/post/hard-delete-and-soft-delete/