그누보드 장기 미접속 휴면 회원 일괄 삭제 및 완전 정리 방법
페이지 정보

본문
그누보드 장기 미접속 휴면 회원 일괄 삭제 및 완전 정리 방법
1. 그누보드 기본 회원 삭제 함수 방식 (
그누보드 운영 중 오랫동안 로그인하지 않은 휴면 회원을 일괄 삭제하거나 아이디와 관련 데이터를 완전히 정리하여 사이트를 정돈하는 구체적인 스크립트 작성 및 실행 방법을 확인합니다.
그누보드 장기 미접속 휴면 회원 일괄 삭제 및 정리 방법
그누보드에서 오랫동안 로그인하지 않은 장기 미접속 회원을 일괄 삭제하거나 아이디까지 완전히 정리하려면 PHP 스크립트를 작성하여 실행해야 합니다. 처리할 데이터가 많아 서버 부하가 우려될 경우 -1 years 등의 기간 설정을 조절하여 순차적으로 처리하십시오.
사전 준비
- 작업 전 반드시 데이터베이스(DB)를 백업하십시오.
1. 그누보드 기본 회원 삭제 함수 사용
회원 정보는 삭제되나 아이디는 DB에 남겨 동일 아이디로 재가입을 방지하는 방식입니다.
- 새 PHP 파일을 생성하고 아래 코드를 입력합니다.
<?php
include_once('./_common.php');
$login_date = date('Y-m-d H:i:s', strtotime(G5_TIME_YMDHIS. ' -1 years'));
$sql_login = " select mb_id, mb_today_login from {$g5['member_table']} where mb_today_login < '$login_date' order by mb_today_login desc ";
$result = sql_query($sql_login);
for ($i=0; $row=sql_fetch_array($result); $i++) {
echo $row['mb_today_login']." ".$row['mb_id']."<br>";
// 회원 삭제
// member_delete($row['mb_id']);
}
?>
- 그누보드가 설치된 경로에 파일을 업로드한 후 실행하여 대상 회원 아이디와 최근 로그인 날짜가 올바르게 출력되는지 확인합니다.
- 목록이 정상적으로 출력되면 코드 내
// member_delete($row['mb_id']);주석에서//를 제거하고 새로고침하여 삭제를 완료합니다.
2. 회원 아이디까지 완전히 삭제하는 방법
회원 목록에서도 완전히 삭제되어 해당 아이디로 재가입이 가능한 방식입니다. 그누보드 5.2 이하 버전에서는 소셜 로그인 및 프로필 이미지 관련 코드를 제외하고 사용하십시오.
- 새 PHP 파일을 생성하고 아래 코드를 입력합니다.
<?php
include_once('./_common.php');
$login_date = date('Y-m-d H:i:s', strtotime(G5_TIME_YMDHIS. ' -1 years'));
$sql_login = " select mb_id, mb_today_login from {$g5['member_table']} where mb_today_login < '$login_date' order by mb_today_login desc ";
$result = sql_query($sql_login);
for ($i=0; $row=sql_fetch_array($result); $i++) {
echo $row['mb_today_login']." ".$row['mb_id']."<br>";
/*
// 회원 삭제
sql_query(" delete from {$g5['member_table']} where mb_id = '{$row['mb_id']}' ");
// 포인트 테이블에서 삭제
sql_query(" delete from {$g5['point_table']} where mb_id = '{$row['mb_id']}' ");
// 그룹접근가능 삭제
sql_query(" delete from {$g5['group_member_table']} where mb_id = '{$row['mb_id']}' ");
// 쪽지 삭제
sql_query(" delete from {$g5['memo_table']} where me_recv_mb_id = '{$row['mb_id']}' or me_send_mb_id = '{$row['mb_id']}' ");
// 스크랩 삭제
sql_query(" delete from {$g5['scrap_table']} where mb_id = '{$row['mb_id']}' ");
// 관리권한 삭제
sql_query(" delete from {$g5['auth_table']} where mb_id = '{$row['mb_id']}' ");
// 그룹관리자인 경우 그룹관리자를 공백으로
sql_query(" update {$g5['group_table']} set gr_admin = '' where gr_admin = '{$row['mb_id']}' ");
// 게시판관리자인 경우 게시판관리자를 공백으로
sql_query(" update {$g5['board_table']} set bo_admin = '' where bo_admin = '{$row['mb_id']}' ");
//소셜로그인에서 삭제 또는 해제
if(function_exists('social_member_link_delete')){
social_member_link_delete($row['mb_id']);
}
// 아이콘 삭제
@unlink(G5_DATA_PATH.'/member/'.substr($row['mb_id'],0,2).'/'.$row['mb_id'].'.gif');
// 프로필 이미지 삭제
@unlink(G5_DATA_PATH.'/member_image/'.substr($row['mb_id'],0,2).'/'.$row['mb_id'].'.gif');
*/
}
?>
- 파일을 업로드 후 실행하여 대상 목록이 바르게 출력되는지 확인합니다.
- 목록이 맞다면
/*와*/두 군데 주석 기호만 삭제하고 새로고침하여 즉시 완전 삭제를 수행합니다.
그누보드 회원 삭제 방식의 차이
그누보드에서 휴면 회원을 정리할 때 사용하는 기본 회원 삭제 함수 방식과 아이디까지 완전히 지우는 방식은 데이터 보관 범위와 재가입 허용 여부에서 차이가 있습니다.
1. 그누보드 기본 회원 삭제 함수 방식 (member_delete())
- 특징: 회원 정보는 삭제되지만 회원 아이디는 데이터베이스에 그대로 남습니다.
- 재가입 여부: 기존 아이디로 재가입할 수 없습니다.
- 목록 유지: 회원 목록에서도 아이디가 없어지지 않고 그대로 남습니다.
- 근거:,,
2. 회원 아이디까지 완전히 삭제하는 방식
- 특징: 회원 테이블(
{$g5['member_table']})뿐만 아니라 연관 테이블(포인트, 그룹접근가능, 쪽지, 스크랩, 관리권한, 소셜로그인 연결 등)과 아이콘, 프로필 이미지 파일까지 직접 삭제합니다. - 재가입 여부: 회원 목록에서도 보이지 않게 완전히 삭제되므로, 삭제한 아이디로 재가입이 가능합니다.
- 근거:,
대용량 회원 데이터 일괄 삭제 시 서버 부하 방지
대량의 휴면 회원을 한꺼번에 삭제하면 서버 부하가 발생할 수 있습니다. 이를 방지하기 위한 요령은 다음과 같습니다.
1. 처리량 조절
- 기간 설정 변경: 스크립트 내
$login_date설정의 기간(-1 years등)을 좁게 설정하여 한 번에 처리하는 회원 수를 줄이십시오. 2년 기준은-2 years, 월 단위는-12 months로 수정 가능합니다. - 순차적 실행: 기간을 나누어 여러 번에 걸쳐 삭제를 진행하십시오.
2. 실행 절차
- 위 [Q1]의 스크립트 작성 및 실행 방법을 동일하게 적용하되, 기간 설정 값을 조절하여 대상 목록을 먼저 출력하고 확인한 뒤 삭제를 진행하십시오.
- 작업 전 반드시 데이터베이스(DB)를 백업하십시오.
상황별 판단 가이드
- 내 상황: 대량의 휴면 회원을 일괄 정리해야 하지만 서버 부하가 걱정되는 경우
- 선택 기준: 기간 설정 값(
-1 years등)을 조절하여 처리량을 줄이고 순차적으로 실행 - 다음 행동: DB 백업 후 스크립트의 기간을 좁게 설정하여 대상 목록을 먼저 출력하고 순차 삭제 수행
- 선택 기준: 기간 설정 값(
- 내 상황: 퇴사자나 탈퇴 회원의 아이디 중복 가입을 허용하기 위해 완전히 지워야 하는 경우
- 선택 기준: 회원 테이블뿐만 아니라 연관 테이블 및 파일까지 모두 삭제하는 완전 삭제 쿼리 스크립트 적용
- 다음 행동: 스크립트 실행 후 대상 목록 확인 후 전체 주석을 해제하여 즉시 삭제 실행
실전 FAQ
- Q. 삭제 대상 회원을 조회할 때 기간은 어떻게 변경하나요?
- 스크립트 내
$login_date설정 부분에서 2년 기준은-2 years, 월 단위는-12 months등으로 수정하여 범위를 조절할 수 있습니다.
- 스크립트 내
- Q. 스크립트 실행 시 서버에 부하가 걸리거나 멈추는 경우 어떻게 해야 하나요?
- 처리할 데이터 양이 너무 많을 때 발생할 수 있으므로, 기간을 짧게 설정하여 처리량을 줄인 뒤 순차적으로 나눠서 삭제해야 합니다.
- Q. 그누보드 버전별로 주의할 점이 있나요?
- 원본 기준 그누보드 5.2 이하 버전에서는 소셜 로그인과 프로필 이미지 관련 코드가 포함되어 있지 않거나 다를 수 있으므로 해당 코드는 제외하고 사용해야 합니다.
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글그누보드 회원 아이디 이메일 일괄 변경 방법과 연관 테이블 영향 점검 26.10.13
- 다음글카카오맵 지도 퍼가기 반응형 가로 사이즈(100%) 설정 방법 26.10.12
댓글목록
등록된 댓글이 없습니다.