회원 탈퇴 처리하기

옷가게 쇼핑몰 "포근한 옷장"을 운영하다 보면, 가입했던 손님이 계정을 지워 달라고 연락해 오는 날이 있습니다. 후기 관리자 역할을 맡고 있던 고은이 그런 요청을 보내 왔다고 생각해 보세요. 이때 운영진은 어디서 무엇을 눌러야 하는지 알아야 하고, 그 회원이 남긴 후기와 사진을 어떻게 할지도 정해야 합니다.

이 페이지는 가입한 회원(ServiceUser, 내 서비스에 직접 가입한 손님)을 명단에서 내보내는 일을 다룹니다. 손님이 앱 안에서 탈퇴를 요청할 자리를 마련해 두는 방법, 콘텐츠 스튜디오에서 밟는 절차, 그리고 회원이 만든 것을 함께 지울지 정하는 기준을 차례로 살펴봅니다.

회원 탈퇴 처리는 콘텐츠 스튜디오에서 합니다

회원 탈퇴 처리는 콘텐츠 스튜디오에서 할 수 있습니다. 회원이 앱에서 버튼을 눌러 자신의 계정을 제거하는 길은 열려 있지 않습니다.

운영진이 모르는 사이에 회원과 그 회원이 만든 것이 사라지는 일은 생기지 않습니다. 따라서 앱에는 탈퇴를 요청받는 자리를 두고, 운영진이 그 요청을 확인한 뒤 콘텐츠 스튜디오에서 처리하는 방식으로 회원 탈퇴를 진행해야 합니다.

앱에서 탈퇴 요청 받기

탈퇴 처리는 운영진만 할 수 있습니다. 그러니 손님이 탈퇴 의사를 전할 자리는 앱 쪽에 직접 마련해 두어야 합니다. 권장하는 방식은 탈퇴 요청을 Content 한 건으로 받아 두는 것입니다. 회원이 앱에서 요청을 남기면 운영진이 콘텐츠 스튜디오에서 그 목록을 보고, 확인이 끝난 회원을 명단에서 내보냅니다.

앱을 올리는 곳에 따라, 앱 안에서 탈퇴를 시작할 수 있는 자리를 갖추도록 요구하기도 합니다. 이 요청 흐름이 그 자리가 됩니다.

요청을 담을 Content Type 만들기

먼저 탈퇴 요청을 담을 Content Type을 하나 만듭니다. "포근한 옷장"이라면 이름을 탈퇴 요청으로 두고, 담을 것은 두 가지면 충분합니다.

  • 요청 사유: 회원이 앱에서 적는 내용입니다. 예를 들면 "이제 옷을 자주 사지 않게 되었습니다"처럼 적힙니다.
  • 처리 상태: 운영진이 직접 바꾸는 값입니다. 접수로 시작해 처리가 끝나면 완료로 바꿉니다.

요청을 보낸 사람이 누구인지는 따로 적지 않아도 됩니다. 회원이 앱에서 Content를 한 건 만들면 그 회원이 작성자로 기록되기 때문입니다. Content Type을 만드는 방법은 콘텐츠 모델링에서 다룹니다.

회원에게는 Create와 Read만

회원에게 주는 권한 묶음(ServiceUserRole)에 이 Content Type에 대한 규칙을 넣을 때는 두 가지만 엽니다.

  • Create: 회원이 탈퇴 요청을 한 건 남길 수 있게 합니다. 작성자모든 사용자 그대로 두세요.
  • Read: 자기가 남긴 요청이 접수되었는지 앱에서 확인할 수 있게 합니다. 이 규칙에는 작성자본인으로 걸어 두세요. 그래야 다른 회원의 요청을 들여다보지 못합니다.

Delete는 넣지 않습니다. 회원이 요청을 임의로 없애 버리면 운영진이 무엇을 처리해야 하는지 알 수 없게 되기 때문입니다. 규칙 한 줄을 넣는 화면과 작성자 칸을 다루는 방법은 회원 역할과 권한에서 다룹니다.

콘텐츠 스튜디오에서 탈퇴 처리하기

탈퇴 요청 목록에서 고은의 요청을 확인했다면, 회원 명단에서 그 회원을 찾아 내보냅니다. 명단을 여는 자리와 목록이 보여 주는 정보는 서비스 회원 관리하기에서 다룹니다.

  1. Users 목록에서 내보낼 회원(고은) 행 오른쪽 끝의 펼치기 아이콘을 누르세요.
  2. 펼쳐진 아래쪽 왼편의 탈퇴 처리를 누르세요. 저장과 반대편에 있습니다.
  3. 창이 열리면 그 회원의 이메일 주소(goeun@example.com)를 그대로 입력하세요.
  4. 그 회원이 만든 것까지 지울지 정해 이 사용자가 생성한 Content와 Media도 함께 삭제를 켜거나 꺼 두세요. 판단 기준은 함께 지울 것과 걸리는 시간에서 다룹니다.
  5. 탈퇴 처리를 누르세요.

Users 목록에서 회원 고은의 행을 펼친 상세. 권한 섹션의 Role과 계정 섹션의 로그인 허용 아래, 왼쪽 끝에 붉은 테두리의 탈퇴 처리 버튼이 있고 오른쪽 끝에 취소·저장 버튼이 있다

탈퇴 처리를 누르면 확인 창이 열립니다.

ServiceUser 탈퇴 처리 창. 위쪽 카드에 대상 회원 고은(goeun@example.com)이 있고, 그 아래에 이 사용자는 즉시 이 Space에 접근할 수 없게 되며 같은 계정으로 다시 가입하면 별개의 ServiceUser로 등록된다는 안내, 비어 있는 이메일 확인 입력칸, 꺼져 있는 "이 사용자가 생성한 Content와 Media도 함께 삭제" 체크박스, 그리고 아직 누를 수 없는 탈퇴 처리 버튼이 보인다

이메일 주소가 그 회원의 것과 맞아야 탈퇴 처리 버튼을 누를 수 있습니다. 이 확인은 회원에게 동의를 구하는 절차가 아니라, 지금 고른 행이 정말 그 회원인지 운영진이 한 번 더 읽게 하려는 장치입니다. 목록에서 한 줄 아래를 눌렀더라도 이 단계에서 걸립니다.

처리를 마치면 다음 네 가지가 곧바로 적용됩니다.

  • 그 회원은 즉시 이 Space에 들어올 수 없고, 다시 로그인하지 못합니다.
  • 명단에서 곧바로 사라집니다.
  • 같은 소셜 계정으로 나중에 다시 가입하더라도 예전 기록과 이어지지 않고, 별개의 회원으로 등록됩니다.
  • 이 처리는 되돌릴 수 없습니다.

마지막 항목이 로그인을 막는 조치와 다른 점입니다. 문제 회원의 로그인 막기는 회원을 잠시 못 들어오게 해 두었다가 다시 열어 줄 수 있지만, 탈퇴 처리한 회원은 되돌릴 수 없습니다. 다시 들어올 여지를 남겨야 하는 상황이라면 로그인을 막는 쪽을 쓰세요.

요청 기록을 남겨 둘 것이라면, 처리를 마친 뒤 그 탈퇴 요청처리 상태완료로 바꿔 두세요.

함께 지울 것과 걸리는 시간

탈퇴 처리 창에는 이 사용자가 생성한 Content와 Media도 함께 삭제 체크박스가 있고, 기본값은 꺼짐입니다. 회원을 내보내는 일과 그 회원이 만든 것을 지우는 일은 별개라서, 함께 지울지는 운영진이 그때그때 정합니다.

체크박스를 켜지 않고 처리하면, 고은이 쓴 후기와 올린 사진은 Space에 그대로 남습니다. 작성자였던 회원만 사라진 상태가 됩니다. 후기 내용이 다른 손님에게 계속 도움이 되는 경우라면 이쪽을 고릅니다.

체크박스를 켜고 처리하면, 그 회원이 만든 ContentMedia가 뒤따라 삭제됩니다. 회원이 올린 사진처럼 그 사람의 자료만 남기는 것이 곤란한 경우에 고릅니다.

ContentMedia 삭제는 탈퇴 처리가 끝난 후 이어서 진행됩니다. 회원이 만든 것이 한꺼번에 사라지지 않고 순차적으로 삭제됩니다. 개수가 많으면 오래 걸릴 수 있으니, 목록에 아직 몇 건이 남아 있다면 시간이 지난 뒤에 다시 확인하세요.

탈퇴 요청도 회원이 만든 Content입니다. 따라서 이 사용자가 생성한 Content와 Media도 함께 삭제를 켜고 처리하면 그 요청 기록까지 사라집니다. 누가 언제 탈퇴를 요청했는지 이력을 남겨야 한다면, 회원이 작성자가 아닌 자리에 따로 적어 두세요. 운영진이 직접 만드는 처리 대장을 Content Type으로 하나 더 두고, 요청을 확인할 때 거기에 한 줄 적는 방식입니다.

다음으로 할 일

  • 서비스 회원 관리하기: 회원 명단을 보고, 신규 가입을 승인하고, 로그인을 막고, 회원마다 다른 권한을 주는 방법을 다룹니다.
  • 회원 역할과 권한: 탈퇴 요청을 남기고 읽는 권한을 회원에게 주는 ServiceUserRole을 만드는 방법을 다룹니다.
  • 서비스 회원 로그인: 회원 로그인을 켜고, 소셜 로그인을 붙이고, 새로 가입하는 회원이 받을 기본 Role을 정하는 방법을 다룹니다.
  • API 레퍼런스: 회원이 앱에서 탈퇴 요청을 남길 때의 요청 형식 같은 기술 명세를 다룹니다.