CS 면접 준비

TIL230727_2 회원탈퇴, 게시글 삭제와 같은 기능을 구현할 때 실제 레코드를 삭제합니까? 그렇지 않다면 그 이유는 무엇입니까?

베스트오버 2023. 7. 27.

  회원 탈퇴나 게시글 삭제 같은 기능을 구현할 때 실제 레코드를 삭제할지 아니면 삭제하지 않을지는 개발 상황이나 비즈니스 요구 사항에 따라 달라집니다.

 

  데이터를 완전히 삭제하는 방법을 "하드 삭제"라고 부릅니다. 이 방법은 해당 레코드를 데이터베이스에서 완전히 제거합니다. 이 방법은 데이터를 완전히 제거하므로 데이터베이스의 용량을 관리하는 데 유리할 수 있습니다. 하지만 이렇게 데이터를 완전히 삭제하면 나중에 그 데이터가 필요해질 때 복구하는 것이 불가능하거나 매우 어렵습니다.

 

  따라서 많은 경우에 "소프트 삭제" 방법을 사용합니다. 이 방법은 레코드를 실제로는 삭제하지 않고, '삭제됨'이라는 상태로 표시하는 것입니다. 일반적으로 이를 위해 'is_deleted'나 'deleted_at' 같은 필드를 레코드에 추가하고, 레코드를 삭제할 때 이 필드의 값을 변경하여 삭제 상태를 표시합니다. 이 방법의 장점은 '삭제'된 데이터를 필요할 때 쉽게 복구할 수 있다는 것입니다. 또한, 이전의 데이터를 분석하거나, 삭제된 데이터에 대한 기록을 유지하는 등의 요구 사항을 충족하기도 쉽습니다.

 

  따라서, 제가 개발을 진행할 때는 회원 탈퇴나 게시글 삭제 등의 기능을 구현할 때 소프트 삭제 방식을 주로 사용합니다. 이는 추후 데이터 복구의 유연성을 제공하며, 데이터의 연속성을 유지하는 데 도움이 되기 때문입니다. 하지만 이는 개발 상황이나 비즈니스 요구에 따라 달라질 수 있으며, 필요에 따라 하드 삭제를 사용하는 경우도 있습니다.

댓글