본문 바로가기

Project

[간단한 퀴즈 서비스] 회원탈퇴, 테이블 데이터

회원탈퇴 때 삭제되어야 할 데이터들이 무엇인지 고려해 보았다.

 

 

 

user테이블에서 해당 유저 정보,

score 테이블에서 해당 유저의 퀴즈 기록,

solved_quizzes  테이블에서 해당 유저가 풀었던 문제들,

quiz_accuracy_statistics 퀴즈 문제별 풀었던 정보(정답 횟수, 전체 시도 횟수) 등등

 

quiz_accuracy_statistics의 경우 전체 통계로 사용되고 개인 정보가 남지는 않기에 탈퇴한 유저의 문제 시도 횟수를 남기는 것은 괜찮다고 판단하였다.

그 외에 당연하지만 user, score, solved_quizzes 테이블에서 탈퇴 유저 정보는 지우기로 하였다.

 

탈퇴하고서 1~2년간 데이터를 보관하고 해당 유저가 계정복구를 하면 살려두는 방식이 있다고 듣기는 하였지만

우리 서비스의 경우 그런 점은 감안하지 않았다.

탈퇴를 원하면 유저와 관련된 데이터를 다 삭제하는 것으로 정책을 정하였다.

 

탈퇴할 때, 여러 테이블의 데이터를 변경해야 하므로 이 부분을 하나의 트렌젝션으로 묶었다.

트렌젝션으로 묶은 부분에서 DB 요청에 대한 병목현상이 발생할 수 있다 보여 메시지 큐를 써서 구현해야 하나 잠깐 고민되었지만

아직은 이용자 수가 적기에 메시지 큐는 쓰지 않기로 하였다.