<p>안녕하세요 킴영감입니다~</p>
<p> </p>
<p>많은 분들이 중복 로그인 문제로 힘들어 하시는데요</p>
<p>정확하게 어떤 원인으로 발생하는 문제인지 알려드릴테니 말씀드리는 사항을 고려해서 프로그램을 만드시기 바랍니다.</p>
<p> </p>
<p>우선 아이디와 비밀번호를 사용해 인증을 하게되면 접속 정보가 저장됩니다.</p>
<p>그리고 EKMLib_Shutdown() 함수를 사용하면 인증이 해제됩니다.</p>
<p> </p>
<p>만약 프로그램을 종료하고 다시 시작할 때 인증해제가 완전히 완료되기 전에 접속시도를 하게되면 문제가 발생합니다.</p>
<p>인터넷 연결이라는게 똑같은 홈페이지에 접속하더라도 매번 똑같은 응답속도와 처리속도를 가지지 않는다는 것 아실겁니다.</p>
<p>똑같은 홈페이지를 연속으로 여러개 열었을 때 접속을 시도한 순서와는 다른 순서로 열리는걸 직접 해보시면 알 수 있을겁니다.</p>
<p>위 내용을 가지고 상황을 유추해보면 여러개의 인증해제 요청과 인증 요청이 동시에 들어온다면 우리가 생각하기에 하나의 인증 해제와 하나의 인증이 1:1 대응이라 문제가 없을 것 같다는 생각이 들지만 실제로 종료와 실행 사이에 시간 간격이 없다면 종료 인증해제 요청이 처리되기 전에 인증 요청이 얼마든지 먼저 처리될 수 있다는 것을 생각할 수 있습니다.</p>
<p> </p>
<p>프로그램이 종료되고 실행되는 것을 반복하도록 만들어 놓으셨다면 위 사항을 고려하시고 아래와 같이 만드셔야 합니다.</p>
<p> </p>
<p><strong>1. 프로그램 종료와 재시각 시 충분한 대기시간을 주셔야 합니다.</strong></p>
<p>서버에서 인증 해제에 대한 처리가 완료되는 것을 기다리는 의미입니다.</p>
<p> </p>
<p><strong>2. 프로그램을 강제종료 (Process Kill 등) 하시면 안됩니다.</strong></p>
<p>프로그램을 종료하는 방법은 여러가지 입니다.</p>
<p>일반적인 종료는 종료 시 실행될 스크립트를 작성해놓고 실행된 후 종료하도록 만들 수 있습니다.</p>
<p>(노하우 게시판 참고)</p>
<p>그런데 강제종료의 경우 현재 동작하고 있는 프로세스를 강제로 죽여버립니다.</p>
<p>그래서 종료 시 EKMLib_Shutdown() 함수를 실행하지 못하게 되고 이로 인해 인증 정보가 서버에 남아있게 됩니다.</p>
<p> </p>
<p>노하우 게시판에도 작성해 놓았듯이 단일 프로그램으로 동작하는 경우에 프로그램의 재시작은 불필요합니다.</p>
<p>초기화의 목적으로 재시작으 한다면 스크립트내에서 초기화 작업을 직접 작성하는 방향으로 만들어지는게 올바른 방법입니다.</p>
<p>만약 프로그램 사용 시 메모리가 쌓이는 등의 문제 (goto, gosub을 사용하면 발생한다고 함)가 있다면 재시작이 아니라 스크립트 상에서 수정하는 방향으로 만들어지는게 올바른 방법입니다.</p>
<p> </p>
<p>개인적으로 저는 매크로를 한번 켜면 짧으면 12시간, 길면 몇일동안 프로그램을 종료하지 않고 사용합니다.</p>
<p>그래도 아무런 문제가 없도록 만들구요.</p>
<p> </p>
<p>물론 제가 모든 경우를 알 수 없기 때문데 제가 모르는 부분이 있을 수 있습니다.</p>
<p>본인이 제가 언급하지 않은 상황에 놓여있다면 질문 게시판에 자세하게 설명을 해주시면 같이 고민해 볼 수 있을 것 같습니다.</p>
<p> </p>
<p>제가 말씀드린 내용들을 충분히 읽어보시고 본인의 프로그램에 잘 적용한다면 중복 로그인의 문제가 발생하는 일은 없을 거라고 생각합니다.</p>
<p>참고하셔서 EKMLib를 유용하게 사용하셨으면 좋겠습니다.</p>
<p> </p>
<p>감사합니다~</p>