클라이언트: 돌아오면 끊긴 연결을 기다리지 말고 세션 토큰으로 바로 자동 재접속(재로그인 없이 이어 붙이기), 최신 상태를 한 번에 받아 맞추기. 서버: 하트비트가 끊기면 연결은 정리하되 캐릭터 세션은 짧은 유예 시간 동안 유지(바로 내보내지 않기), 그 안에 재접속하면 세션 토큰으로 이어 받기.
수치 감각
게임 엔진은 보통 내리는 순간 멈춥니다. iOS는 몇 초, 추가 시간을 받아도 대개 수십 초 안에 앱을 일시 정지하고 안드로이드 14 이상은 화면에서 내려간 앱을 10초쯤 뒤 동결(freeze)합니다.
그래프에서는
연결이 한꺼번에 끊김 · 끊김 수(하트비트 타임아웃), 앱 일시 정지 기록
확인할 곳
클라이언트 로그의 앱 일시 정지·복귀 시각(유니티는 OnApplicationPause)과 서버의 끊김 사유·시각을 세션 ID로 맞춰 봄. 안드로이드는 ApplicationExitInfo에 남은 프로세스 종료 사유(REASON_LOW_MEMORY 등)도 함께 봄
이러면 맞음
서버의 하트비트 타임아웃 끊김 직전에 클라이언트가 일시 정지로 들어갔고 복귀 직후 재접속함
이러면 아님
앱을 앞에 띄워 둔 동안 끊겼다면 “NAT 매핑 만료”, “통신사 공유 IP (CGNAT)”, “와이파이 ↔ LTE·5G 전환”
확인 수단
게임 서버·클라이언트의 로그·지표가 필요
더 알아보기
폰은 메모리가 모자라면 내려 둔 게임을 아예 종료하기도 합니다. 카메라나 결제·인증 앱을 다녀오면 게임이 처음부터 다시 켜지는 것도 이 때문입니다. 저사양 기기일수록 흔합니다.