소프트 삭제란? 휴지통과 영구 삭제의 차이
소프트 삭제란 무엇이고 휴지통·영구 삭제와 어떻게 다를까요? 데이터 보관과 조회 제외 원리, 국내외 서비스의 복원 예외, 연결된 파일과 권한까지 확인할 검수 항목을 정리했습니다.

안녕하세요. 사랑받는 IT 프로덕트의 첫걸음, 똑똑한개발자입니다.
오늘의 인사이트 요약
소프트 삭제는 데이터를 남겨 두고 일반 조회에서 제외하는 방식입니다.
휴지통은 삭제된 항목을 관리하는 화면이며 실제 보관 방식은 서비스마다 다릅니다.
삭제 기능을 기획할 때는 조회 제외와 복원, 최종 삭제 조건을 함께 확인합니다.
소프트 삭제(논리 삭제)는 데이터를 곧바로 지우지 않고 삭제 상태로 표시해 일반 목록과 조회에서 제외하는 방식입니다. 물리적으로 데이터를 제거하는 하드 삭제와 구분합니다. 사용자가 보는 휴지통은 이런 상태의 항목을 찾아 복원하거나 영구 삭제하도록 만든 화면일 수 있습니다.
다만 휴지통 모양의 버튼이 있다고 데이터가 반드시 보관되는 것은 아닙니다. 화면의 이름과 저장 방식은 따로 확인할 부분입니다. 오늘은 소프트 삭제의 동작과 휴지통·영구 삭제의 차이, 서비스 기획에서 확인할 예외를 정리해보겠습니다.
1. 소프트 삭제와 휴지통의 차이

데이터베이스에서 소프트 삭제를 구현할 때는 삭제 여부나 삭제 시각을 저장하는 방식을 사용할 수 있습니다. 목록을 불러올 때 삭제된 항목은 빼고, 휴지통에서는 그 항목만 보여 줍니다. 원래 데이터가 남아 있기 때문에 조건이 맞으면 다시 일반 목록으로 돌려놓을 수 있습니다.
Microsoft의 EF Core 문서는 행을 제거하는 대신 삭제 상태를 표시하고 조회 필터로 기본 검색에서 제외하는 방식을 설명합니다. 개발 구현에서 필터를 어디에 적용하는지 살펴보고 싶다면 전역 쿼리 필터 문서의 소프트 삭제 예시를 참고해 보세요. 모든 프로그램이 같은 기술을 쓰는 것은 아니지만 동작을 이해하기 좋은 예입니다.
구분 | 데이터의 상태 | 사용자가 기대할 동작 |
|---|---|---|
소프트 삭제 | 삭제 표시를 남기고 보관 | 일반 조회에서 제외, 조건에 따라 복원 |
휴지통 | 삭제된 항목을 보여 주는 관리 영역 | 남은 기간과 복원 가능 여부 확인 |
하드 삭제 | 대상 저장소에서 데이터 제거 | 해당 데이터로는 일반 복원 불가 |
보관과 삭제는 어떤 점이 다를까요?
보관(아카이브)은 완료한 프로젝트처럼 현재 목록에서 치워도 기록으로 계속 활용하려는 목적에 가깝습니다. 삭제는 잘못 만든 항목이나 더 이상 필요 없는 항목을 제거하려는 의도입니다. 두 기능 모두 화면에서는 항목이 사라져도 권한과 검색, 복원 조건은 달라질 수 있습니다.
세 동작을 같은 버튼으로 만들면 사용자는 무엇이 남는지 알기 어렵습니다. 버튼의 설명에는 일반 목록에서만 숨기는지, 휴지통으로 보내는지, 복구할 수 없게 지우는지를 구체적으로 적는 편이 좋습니다. 기능 이름만 보고 보관 기간을 추측하게 두지 않는 것입니다.
2. 삭제했는데 검색되는 이유

일반 목록에서 사라진 항목이 검색·직접 주소·내보내기에서는 여전히 보일 수 있습니다. 각 기능이 다른 조회 경로를 쓰는데 일부에만 삭제 조건이 적용되면 이런 차이가 생깁니다. 소프트 삭제 상태를 저장하는 것과 화면 전체에서 같은 규칙으로 다루는 것은 별개의 작업입니다.
관리자와 일반 사용자가 볼 수 있는 범위도 다를 수 있습니다. 휴지통을 볼 권한이 있는 담당자는 삭제된 항목을 찾되, 일반 사용자는 직접 주소로 접근해도 내용이 노출되지 않도록 권한과 삭제 상태를 함께 확인하는 식입니다. 검색 결과 수와 내려받은 파일도 같은 기준으로 검수합니다.
연결된 데이터는 어떻게 처리하나요?
프로젝트에 첨부 파일과 댓글이 연결된 서비스를 가정해 보겠습니다.
프로젝트를 휴지통으로 보낸 뒤 첨부 파일 주소는 계속 열리거나, 댓글만 검색되는 상황이 생기지 않는지 확인할 수 있습니다.
부모 항목을 삭제했을 때 하위 데이터까지 숨길지, 별도 화면에서는 유지할지 연결 관계별로 정합니다. 복원할 때도 프로젝트 이름만 다시 나타나는지, 원래 첨부 파일과 접근 권한까지 돌아오는지 봐야 합니다. 화면 한 곳의 삭제 버튼만 검수하면 놓치기 쉬운 부분입니다.
3. 복원과 영구 삭제의 예외

삭제 표시를 되돌려도 복원이 끝나지 않을 때가 있습니다. 기존 폴더가 사라졌거나 같은 이름의 항목이 새로 생겼을 수 있기 때문인데요. 서비스가 원래 위치·중복 이름·접근 권한을 어떻게 처리하는지 정하고 복원 결과를 사용자에게 안내하면 혼선을 줄일 수 있습니다.
Google Cloud Storage의 소프트 삭제 기능은 정해진 기간에 삭제된 객체를 보관하며, 보관된 객체에도 저장 비용이 발생합니다. 복원 시 같은 이름의 활성 객체가 있으면 기존 활성 객체를 덮어쓰고 그 객체가 다시 소프트 삭제됩니다. 이 제품의 구체적인 보관·복원 동작은 Cloud Storage 소프트 삭제 안내에서 더 자세히 보실 수 있습니다.
영구 삭제 뒤에는 복구할 수 있나요?
복구 가능 여부는 서비스 정책에 따라 다릅니다. 네이버 메일은 휴지통에서도 영구 삭제한 메일은 서버에서 별도 보관하지 않아 복구할 수 없다고 안내합니다. 휴지통 비우기와 설정에 따른 삭제의 차이는 네이버 메일 고객센터에서 확인할 수 있습니다. 휴지통이 있다는 사실만으로 삭제 후 복구를 기대하기는 어렵습니다.
자체 서비스를 검수한다면 삭제·복원 시나리오를 한 묶음으로 시험해 보세요.
삭제한 항목이 일반 목록과 검색, 직접 주소에서 같은 규칙으로 처리되는가?
원래 위치가 없거나 이름이 겹칠 때 복원 결과가 안내되는가?
첨부 파일과 권한도 정한 범위대로 숨겨지고 복원되는가?
보관 기간이 끝난 항목과 사용자가 영구 삭제한 항목을 구분해 처리하는가?
백업에서 되살리는 작업은 휴지통 복원과 다릅니다. 특정 항목을 복원할 수 있는지, 복구 시점 이후 수정분을 어떻게 다룰지는 백업·복구 절차에서 따로 정합니다. 서비스의 삭제 안내를 실제 저장소·백업의 처리 방식에 맞추면 운영자도 복구할 수 있는 범위를 분명하게 설명할 수 있습니다.
사용자의 동작과 운영 화면을 함께 설계합니다

똑똑한개발자는 웹·앱과 관리자 시스템의 기획·디자인·개발·운영을 함께 다룹니다. 자체 서비스 pluuug를 운영한 경험도 갖고 있습니다. 삭제 기능을 설계할 때는 사용자에게 보이는 안내와 담당자가 확인할 상태, 연결된 데이터의 처리 범위를 함께 살펴볼 수 있습니다.
서비스의 삭제·복원 기능을 어디까지 만들어야 할지 고민되시나요? 사용자 화면과 운영 조건을 함께 검토하고 싶다면 아래 똑똑한개발자 링크로 문의해 주세요. 감사합니다. :)
소프트 삭제와 휴지통·영구 삭제의 차이와 복원 예외를 설명합니다.
https://www.toktokhan.dev/contact?utm_source=landing&utm_campaign=soft-delete-restore&utm_medium=soft-delete-restore&utm_term=%EC%86%8C%ED%94%84%ED%8A%B8%EC%82%AD%EC%A0%9C%EB%B3%B5%EC%9B%90📚 이어서 읽어보세요