오픈소스로 알아보는 Soft Delete

오픈소스로 알아보는 Soft Delete
Photo by Evie S. / Unsplash

들어가며

이번 시간에는 azure-sdk-for-python의 PR을 통해 soft-delete 기법을 알아보겠습니다. 😄

어떤 점이 궁금했나요?

1
PR discussion 중

위 PR은 기존 코드에서 test를 위해 비활성화했던 soft-delete 기능을 다시 활성화하며, test code들을 수정한 내용입니다. 해당 PR을 읽어보던 중soft delete키워드가 문득 궁금해져 찾아보게 되었습니다.

Soft Delete란?

Soft Delete는 데이터베이스에서 자주 사용하는 용어로, 데이터를 삭제하지 않고, 삭제된 것처럼 표시하는 기법을 말합니다. 즉, 데이터를 삭제하지 않고, 삭제된 것처럼 표시하는 것이죠. 이를 통해 데이터를 복구할 수 있습니다. 반대되는 개념으로 Hard Delete 가 존재하죠.

실제로 Hard Delete는 SQL의 DELETE 쿼리를 사용하여 데이터를 삭제한다면, Soft Delete는 UPDATE 쿼리를 사용하여 is_deleted 컬럼을 True로 변경하는 방식으로 데이터를 삭제합니다.

그렇다면 Soft Delete가 왜 필요할까요?

Soft Delete의 가장 큰 장점은 복구가 가능하다는 것 입니다. 우리가 데이터를 실수로 삭제 하거나, 정책 상으로 일정 기간 동안 데이터가 복구 가능 해야 하는 경우가 있습니다. 이런 경우에 Soft Delete를 활용하면 손 쉽게 데이터를 복구 할 수 있습니다. 또한 데이터를 바탕으로 통계를 내야하는 경우에도 Soft Delete를 유용하게 활용할 수 있습니다.

Soft Delete의 단점은 없을까요?

soft delete는 데이터를 삭제하지 않기 때문에, 데이터베이스의 용량을 차지 하고 있게 됩니다. 또한 soft delete를 사용하면 데이터를 조회할 때, is_deleted 컬럼을 항상 체크해야 하기 때문에 조회 속도가 느려질 수 있다는 단점도 있습니다.

이외에도 해당 블로그 글에서 soft delete의 단점 을 다음과 같이 소개하고 있습니다.

  1. 모든 코드에서 delete_at 조건을 체크하고 있어야 한다.
  2. 외래키의 기능이 상실된다.
  3. 종속성을 체크하며 데이터의 정리가 어려워진다.
  4. 현실적으로 서비스 상에서 삭제 취소, 즉 복구가 잘 일어나지 않는다.

따라서 저자는 delete_at 컬럼을 사용하는 것 대신에, 삭제된 데이터들을 보관하는 deleted_record를 만들어서 관리하는 것을 추천하고 있습니다. 혹시 자세한 내용이 궁금하시다면 링크에서 확인해보세요!

여담

2
PR discussion 중

해당 PR의 리뷰 내용 중에time.sleep()대신await asyncio.sleep()을 사용하라는 의견이 있는데, 다음 시간에는두 함수의 동작 방식의 차이에 대해서 자세히 알아보도록 하겠습니다. 감사합니다. 😄

Read more

[논문 리뷰] Evaluating Very Long-Term Conversational Memory of LLM Agents

[논문 리뷰] Evaluating Very Long-Term Conversational Memory of LLM Agents

들어가며 이번 시간에는 Evaluating Very Long-Term Conversational Memory of LLM Agents 논문에 대해 살펴봅니다. 최근에 ChatGPT를 필두로 사람과 LLM 간의 대화가 활발해지면서, LLM Agent가 사용자와 그동안 했던 대화를 기억(Memory)하고 답변에 적재적소로 활용할 수 있는 능력 또한 중요해지고 있습니다. 하지만 기존의 데이터셋은 대화 세션의 길이가 충분히 길지 않아, 긴

By Yongwoo Song
[독서 메모] 차라투스트라는 이렇게 말했다 <창조하는 길에 대하여> - 니체

[독서 메모] 차라투스트라는 이렇게 말했다 <창조하는 길에 대하여> - 니체

깨진 틈이 있어야 그 사이로 빛이 들어온다 | 프리드리히 니체 | 페이지2북스- 교보ebook“그대들의 희망이 삶을 밝히는 등불이 되게 하라” 철학자들의 철학자 니체가 전하는 삶의 지혜 * “현대 철학은 대부분 니체 덕으로 살아왔고, 여전히 니체 적으로 살아가고 있다.”_질 들뢰즈 * “이 책은 철학과 문학, 예언이 일체를 이룬 예술작품이다.”_칼 야스퍼스 * “우리의 질문은 니체를

By Yongwoo Song
[독서] 당신이 너무 바쁘다는 착각 - 스즈키 유

[독서] 당신이 너무 바쁘다는 착각 - 스즈키 유

✒️지혜의 9할은 시간에 대해 현명해지는 것이다. - 시어도어 루즈벨트당신이 너무 바쁘다는 착각 | 스즈키 유 저자, 하진수 번역 | 길벗- 교보ebook더 이상 시간에 쫓기지 않는 사람이 되는 법**베스트셀러 저널리스트 스즈키 유 신작** 시간을 효율적으로 사용하고 싶다는 것은 인간의 아주 오래된 욕망이다. 시간을 낭비하는 것이 인생을 낭비하는 것처럼 느껴지기도 한다. 그렇기에 시간을

By Yongwoo Song