뜬금없이 써보는 회원탈퇴 DB 관련
- Minny
- 조회 수 3364
- 2020.09.05. 09:21
앞글 DB 암호화 관련 글https://meeco.kr/free/29141145 처럼, 사이트에 대한 비판, 저격의 목적이 아닌 회원 탈퇴하면 삭제되니까 난 탈퇴할래. 라는 내용을 보게 되어 그냥 적어봅니다.
여러분들. DB는 완전해야 합니다. 만약 완전하지 않으면 오류가 나고 문제가 생깁니다. 왜 이런말을 하냐면
회원탈퇴! - 회원정보 삭제 - 나의 정보는 없어졌다... 가 아닙니다.
이렇게 생각할려면, 일단 탈퇴할 계정이 쓴 글(심지어 그 글에 쓰인 다른사람의 댓글들)이나, 댓글, 포인트 이력, 기타등등 모든 데이터를 클랜징 시켜야 합니다. 연결고리를 끊던지, 아니면 연결된 모든 데이터를 삭제해야합니다. 연결고리를 끊게 되면 - '오류가 발생하였습니다' 얼랫이 나오는거예요. 연결된 모든 데이터를 삭제하는건 탈퇴 눌렀을때 너무 많은 트랜잭션이 일어나서 서버 부하가 가게 되고, 그동안에 관련 글들이 모두 사용 불가능하게 됩니다. 어찌됬든 모든 데이터를 삭제하려고 해서 삭제했다 손 친다면 외부에서 검색앤진타고 들어올때 '존재하지 않는 글이거나 삭제된 글입니다' 라고 페이지가 뜨게 될겁니다. 커뮤니티 사이트들은 가지고 있는 게시판 DB가 가장 매인 돈줄이고 사실상 생명인데 회원 탈퇴했다고 해당 사람이 쓴 모든 글을 삭제한다? 안하죠.,
보통 회원관리는 신청 - 사용중 - 사용중지 - 탈퇴 정도로 관리되는데, 탈퇴했다고 해서 회원정보가 사라지지 않습니다. 회원 정보를 관리하는 테이블에 USE_STATUS 같은 칼럼에 탈퇴 코드를 넣고 처리하거나, DEL_CD 에 'D' 를 넣게 됩니다. (D마킹한다고 합니다 보통) 이걸로 회원 탈퇴 끝입니다. 그래서 사실, 관리자는 탈퇴 처리를 했다더라도 쉽게 다시 원래 상태로 복구가 가능합니다. 이게 가능하다는건. 회원 탈퇴된 사람의 정보를 보는것도 그냥 조회해서 보면 됩니다.
글도 마찬가집니다. 회원 정보를 관리하는 USER_INFO 비슷한 이름 쓰는 테이블이 있고, BOARD_CONTENTS 비슷하게 이름 쓰는 게시판 데이터를 관리하는 테이블 따로 있습니다. 당연히 회원 정보를 탈퇴했다고 처리해봤자 게시판 데이터는 남아있습니다. 코멘트 데이터도 따로 저장할테니 당연히 남아있겠지요. 그리고 이 게시판에서 내가 글 삭제 눌렀어요. 그러면 없어지느냐? 아닙니다. 게시글 삭제를 하게 되면 보통은 'USE_YN' 칼럼에 'N' 혹은 DELETE_DT 에 현재 날짜시간을, 또는 현재 포스팅 상태 칼럼을 hidden, delete로 하던지... 여튼 앞에서 말한대로 D마킹을 합니다. 댓글도 마찬가지구요.
요즘은 '삭제된 댓글입니다' 같은 표시로 대충 알게는 합니다만, 얫날 CMS는 아예 안보이지 않냐, 삭제 눌렀더니 티도 안나던데?.. 걍 해당 테이블 select * 만 하면 쫙 보입니다. (과거에는 보통 삭제를 누르면 게시판을 이동시켜 버리는 경우가 많았습니다)왜 남겨두냐면, 나중에 복구해야할 수 도 있고(사실 이게 젤 큰 이유), 대댓글, 답글 같은 시스템을 지원하면, 중간 단계의 글이나 댓글을 삭제했을때 어떻게 처리할지가 답이 없거든요. 연결고리가 없어지니까... 그래서 삭제? - 그냥 안보이게만 하는겁니다.
물론 제가 최근 CMS 들을 써본 경험이 부족해서 요즘은 좀 신박한 구조로 바꿨을진 모르겠습니다만,,, 여튼...
그래서 요점이 뭐냐.
만약 본인이 떳떳하지 못한 내용을 인터넷에 써 놓고, 회원탈퇴를 하고 싶다면 회원 탈퇴만 하지 마시고, 운영진에게 메일을 보내서, '나 ID 이거 쓰는데, 이 ID에 있는 모든 정보 삭제 해달라' 요청하시면 됩니다. 이거 제가 알기로는 법적으로 꼭 해줘야 하는 것이니 아마 대부분 해줄 겁니다. 웹 캐싱 남아있거나 아카이브 떠 있는 내용들은 어쩔 수 없지만, 적어도 원본이 삭제되니 안심될겁니다. 인터넷 장의사 같은 서비스 사용하지 마시고 사이트 관리자에게 삭제해달라 하시면 됩니다.
참고로 관리자가 조회한 기록같은걸 볼 수 있냐 도 궁금하신 분들도 좀 있는 거 같은데, 쿼리 히스토리를 관리하고 DBMS 단에서 작동하고 있다면 아마 가능, 그 외에는 CMS내에 로그 기능이 있다면 CMS 기능 내에서 조회 및 수정, 삭제처리한 데이터를 관리는 할 겁니다.
다만, DBMS에서 쿼리 히스토리 기능이 작동하지 않고 있다면 관리자가 직접 DB에 접속한 상태에서 쿼리 날린건 사실상 확인 불가. CMS에 로그 기능 없다면 관리자 작업 내역 확인 불가 합니다. 기억상 쿼리 히스토리 기능 사용시 성능이 나빠져서 보통 안켜구요. CMS 툴에 로그 기능이 있는지 없는지는 모르겠습니다.
![sjkoon](https://meeco.kr/files/member_extra_info/profile_image/149/969/023/23969149.jpg?20190407143855)
![sjkoon](https://meeco.kr/files/member_extra_info/profile_image/149/969/023/23969149.jpg?20190407143855)
글 적어주신 취지는 알겠으나,
글과 댓글은 "개인정보" 범주에 들어가지 않습니다.
국내 어떤 사이트도 글과 댓글을 개인정보 취급하는 사이트는 없고요.
간혹 커뮤니티들에서 자신이 쓴 글은 왜 안지우냐고 항의하고 자웅을 겨루는데, 요청하면 삭제해주어야 하는건 맞지만 탈퇴시 자동삭제의 의무가 없기 때문에 굳이 하지 않죠.
아마 적어주신 돈줄의 이유도 있겠지만요 당연히..
전문용어를 섞어쓰셨지만 탈퇴시 회원정보 D표기도 웃음이 나오네요.
약관에 적힌 회원의 개인정보는 즉시 파기됩니다. 로 적어두고 D로 바꾸어 보관하는 행위도 법규 위반입니다.
만약 그렇게 하고계신 사이트나 서버를 유지보수 하셨다면 그건 권고대상이라 업체에 알려야합니다.
미코는 정지중엔 탈퇴요청해도 불가하다고 거부하더군요.