[코딩 뽀시래기] 회원의 최근접속일을 서버시간 기준과 비교하는 방법좀 알려주세요.

[코딩 뽀시래기] 회원의 최근접속일을 서버시간 기준과 비교하는 방법좀 알려주세요.

QA

[코딩 뽀시래기] 회원의 최근접속일을 서버시간 기준과 비교하는 방법좀 알려주세요.

답변 3

본문

안녕하세요 ^^ 제목읽고 관심가져주셔서 감사합니다 ㅎㅎ

1년동안 접속하지 않은 회원에게 자동탈퇴 안내메일을 보내는 작업을 하려고 합니다. 


제가 생각한 방식은

회원의 최근 접속일과 서버 시간의 차이가 335일 ( 365일에서 30일 이전 ) 이면 해당 회원에게 메일을 한 번만 전송하고 싶습니다. 그래서 회원이 해당 메일을 확인하고 페이지에 로그인하게 된다면 최근 접속일이 최신화 되어서 탈퇴되지 않을 것이고 접속하지 않고 365일이 지난다면 회원정보가 삭제되도록 하고싶습니다.

 

궁금한 점은 

접속일과 서버시간의 차이를 초를 기준으로 하게되면 해당 초가 아니면 메일을 전송하지 못할 것 같습니다. 그렇다면 day를 기준으로 하거나 1week를 기준으로 해야할 것 같은데 이렇게 되면 동일한 내용의 메일이 중복으로 발송될 것 같아서요. ( 1시간단위거나 admin로그인 되어있는 순간을 기준으로 새로고침되거나 하는 등의 이유로 메일 중복발송이 예상됨.) 

 

하루 혹은 1주를 기준으로 특정 조건을 만족하는 대상자에게 메일을 보낼 수 있는 방법이 있을까요?
예를 간단하게 들어보자면 

글을 쓰는 2022년 3월 14일을 기준으로 2021년 2월 12일날 최종접속한 회원에게 1달 뒤 회원정보가 삭제된다는 안내 메일을 발송하고 싶습니다. 

고수분들의 많은 도움 부탁드리며 많은 관심과 댓글 부탁드립니다. 

긴 글 읽어주셔서 감사합니다.

이 질문에 댓글 쓰기 :

답변 3

1. extend 등에 파일을 넣고 누구든 접속하면 실행.

2. 기본설정 여분필드에 프로세스 실행일자 기록 후 하루 한번만 실행되도록.

3. 마지막 로그인이 G5_TIME_YMDHIS 기준 11개월 전이라면 해당 메일 발송 후 회원여분필드에 1 기록

4. 여분필드에 1 값이 있는 회원중에서 12개월 전이라면 회원탈퇴 프로세스.

5. 탈퇴 전 메일 받고 로그인시 여분필드에 1 값이 있다면 해당 값 삭제.

 

이렇게 만드시면 될것 같습니다.

댓글로 친절한 설명 감사합니다 ^^
1번부터 어떻게 해야할 지 막히긴 했지만.. 구글링해보면 해당 내용 찾아볼 수 있겠죠? ㅎㅎ
그런데 궁금한 점이 있는데 2번 내용에 '프로세스 실행일자 기록 후 하루 한번만 실행되도록.' 이라고 하셨는데 이 방법은 어떻게 해야하는지 감이 안잡히는데 조금만 더 설명 부탁드려도 될까요?

우선 2가지 프로세스가 있는데

 

p1. 11개월 동안 접속안한 회원에게 메일발송 후 여분필드 기록

p2. 여분필드에 정보가 있는 회원중 12개월 동안 접속안한 회원정보 삭제

 

여기서 p1 프로세스를 하루에 1회로 제한하지 않으면 어떤 회원이든 계속 실행하게 됩니다.

sql 쿼리로 작성하셔야 하는데..

 

지금 질문주신걸로봐서는 의뢰로 가시는게 더 나을수도 있겠네요..

기본 프로세스는 알고 계신것 같아요. 생각하시는 그대로 만들면 될것 같은데,

 

저희가 진행하는 방식중에 추가로 하나 말씀을 드리자면

리눅스를 사용하시면 crontab 을 이용해서 주기적으로 1일이든 1주일이든 접속량이 많지 않은 시간에 데이터를 체크해서 발송하면 될것 같아요.

 

저희는 대략적으로? 아래의 흐름처럼 하고 있어요

 

1. crontab으로 특정시간에 체크하는 파일을 실행하는 것을 예약한다.

   1-1 예약하는 파일의 종류 - 회원체크후 메일 발송하는 파일 / 실행주기 : 매주 월요일 새벽

   1-2 예약하는 파일의 종류 - 12개월이 지난 회원을 탈퇴하는 파일 / 실행주기 : 매월 초 새벽

 

2. 회원 로그인 시 현재 접속시간을 특정 필드(여분필드)에 업데이트한다.

 

3. 위 1-1 예약하는 파일을 만든다.

   회원들의 접속시간을 체크해서 11개월 접속하지 않은 회원에게 메일을 발송한다.

   메일이 정상적으로 발송이 되었다면, 관리자만 체크할 수 있는? 특정 필드에 탈퇴 관련 메일 발송기록을 남긴다. (대부분 회원가입 시 약관을 보지 않는데, 포인트가 있음에도 강제탈퇴시켰다며 항의한 사람이 있어서.. 발송기록을 남기게 했어요. 이부분은 상황에 맞추셔서..)

 

4. 위 1-2 예약하는 파일을 만든다.

   탈퇴시키는 파일을 만든다.

   탈퇴시키는 파일에도 이것저것 붙어있긴한데, 대략적으로 삭제되는 포인트, 복구할수 있는 기간 등 안내하는 메일 발송.

   

좋은 결과 있길 바랄께요..^^

제리v님 감사합니다!!!

저도 이 글 올리고 구글링을 더 해보다가 crontab을 알게되어서 admin에 적용해서 test중이었습니다
말씀해주신 방법처럼 탈퇴관련 필드값 입력하는 방법도 적용해서 해봐야겠네요 ^^ 구체적으로 설명해주셔서 감사합니다! 좋은 하루 보내세요 ~

답변을 작성하시기 전에 로그인 해주세요.
전체 1
© SIRSOFT
현재 페이지 제일 처음으로