Skip to content
스토브
마지막 업데이트

실제 적용 흐름이 궁금하신가요?

이용 시나리오 / 점검·업데이트 확인하기

점검/업데이트

이해하기


스토브 SDK가 제공하는 점검/업데이트 기능을 이용하면 게임서버 점검을 설정·해제하거나 게임 버전을 관리하여 업데이트를 제어할 수 있어요.
스토브 SDK는 이용자의 앱(클라이언트) 안에서 동작해요. 앱을 켤 때 점검 중이거나 새 업데이트가 나왔다면 이용자에게 안내 팝업을 보여줘요.
다만, 스토브 기능 이외에 게임서버에서 직접 관리해야 하는 부분이 포함되어 있어 함께 구현이 필요해요.

SDK는 앱 실행 시점에만 점검/업데이트를 확인해요
ㆍ 확인은 앱 실행(initialize) 시 한 번뿐이며, 플레이 도중에는 실시간으로 감지하지 않아요.
ㆍ 플레이 중 점검 감지(Heartbeat), 접속 중 이용자 Kick은 게임서버에서 직접 구현해야 해요.

기능 제공 주체

점검/업데이트 기능은 스토브(SDK)와 게임(CP사)이 역할을 나누어 제공해요.

기능 제공 주체 설정 위치
SDK initialize 시 점검 여부 판단 및 팝업 노출 SDK (스토브) 파트너스
플랫폼 화이트리스트 여부 판단 및 접속 차단 SDK (스토브) 파트너스
앱 업데이트 여부 판단 및 팝업 노출 SDK (스토브) 파트너스
게임 리소스(CDN) 업데이트 여부 판단 게임 (CP사) 게임 운영툴
게임서버 점검 여부 판단 및 화이트리스트 관리 게임 (CP사) 게임 운영툴
이용자 Kick 및 게임 점검 팝업 노출 게임 (CP사) 게임 운영툴

PC는 스토브 PC 클라이언트가 점검·업데이트 안내를 자동 처리해요
스토브 PC 클라이언트로 실행되는 게임은 점검·앱 업데이트 안내를 클라이언트가 자동으로 노출하므로, 위 SDK 팝업 연동은 주로 모바일에 해당해요. 게임서버 기반 점검·Kick·리소스 업데이트는 플랫폼과 무관하게 구현해야 해요.

모바일 플랫폼 점검 시 주의사항

  • 모바일 플랫폼의 특성상 점검 시 이용자에게는 다양한 예외 상황이 발생할 수 있어요.
    • 점검 설정·이용자 Kick 시 서버와의 통신이 없는 구간에 위치하는 경우 (예: 로비화면, 싱글 플레이 진행 중)
    • 점검 시작 전 앱을 백그라운드에 내려놓았던 경우 — 점검 시작 전 앱 백그라운드 → 점검 중 앱 포그라운드 접속 등의 상황이 발생할 수 있어요.
    • 물리적으로 네트워크가 끊기는 구간에 위치하는 경우 (예: 비행모드, 지하철)

  • 서버 기반의 점검·업데이트 기능이 없거나 처리가 되어 있지 않으면 아래와 같은 문제가 발생할 수 있어요.
    • 이용자 Kick이 되지 않은 일부 이용자가 점검 중 게임에 접근/Play 하는 문제 발생
    • 앱 실행 시에만 리소스 업데이트를 체크하여 일부 이용자들이 리소스 업데이트를 받지 못하는 상황

  • 위와 같은 문제를 방지하기 위해 게임서버에서는 다음 항목을 반드시 구현해야 해요.
    • 게임서버 점검 설정 (진입 차단)
    • 서버 기반의 이용자 Kick 구현
    • 앱 업데이트 버전 / 업데이트 옵션
    • 리소스 업데이트 버전 / 업데이트 옵션

연동 가이드


사전 준비

항목 내용
파트너스 점검 설정 파트너스에서 서비스 점검 및 업데이트 관리 설정 필요.
게임서버 점검 구현 게임서버 점검 설정(진입 차단), 이용자 Kick, 앱·리소스 업데이트 버전 관리 구현 필요.

기본 연동 구조

스토브 SDK 초기화(initialize) 시 점검·업데이트 여부를 확인해 상황에 맞는 안내 팝업을 자동으로 노출해요. 스토브가 제공하는 팝업은 이용자 안내용 단순 팝업이며, 게임 내 점검 안내·이용자 Kick·입력 차단과 서버 레벨 점검은 게임에서 별도로 구현해야 해요.

점검/업데이트 구현 시 주의하세요
SDK는 최초 앱 실행(initialize) 시에만 점검/업데이트 정보를 최소한으로 제공하므로, 이후 흐름은 게임서버에서 제어해야 해요.

점검·업데이트 흐름

이용자가 게임에 진입할 때 스토브 SDK와 게임서버가 순서대로 점검·업데이트를 판단하는 전체 순서예요.

전체 흐름

앞 단계(①~⑤)는 스토브 SDK가 플랫폼 차원에서, 뒤 단계(⑥~⑨)는 게임서버가 게임 차원에서 처리해요.

순서 동작 상세 기능제공 주체
SDK initialize 시 스토브 백엔드 서비스 호출하여 점검여부 판단. 최초 앱 실행시에만 점검여부를 내려줌. SDK (스토브)
플랫폼 화이트리스트 여부 판단. (플랫폼 화이트리스트는 파트너스에서 등록) SDK (스토브)
플랫폼 화이트리스트 아닐 시 SDK 점검팝업 노출 / 접속 차단. SDK (스토브)
SDK initialize 시 스토브 백엔드 서비스 호출하여 앱 업데이트 여부 판단. SDK (스토브)
앱 업데이트 존재 시 SDK 업데이트 팝업 노출. SDK (스토브)
게임 리소스(CDN 리소스 패치) 업데이트 여부 판단. 게임 (CP사)
게임서버 점검여부 판단. 게임 (CP사)
게임서버 화이트리스트 여부 판단. (게임 화이트리스트는 게임 운영툴에서 등록) 게임 (CP사)
게임서버 화이트리스트 아닐 시 게임 점검팝업 노출 / 접속 차단. 게임 (CP사)
상황별 상세 흐름

전체 흐름에서 점검 또는 업데이트가 실제로 발생했을 때, 각 상황을 어떻게 처리하는지 나눠 정리했어요.

점검 흐름
순서 동작 상세 기능제공 주체
파트너스 점검 설정 (SDK 점검 설정). 파트너스 (스토브)
게임서버 점검 설정 (서버 점검 설정). 게임 운영툴 (CP사)
이용자 Kick. 게임 운영툴 (CP사)
Kick 팝업 노출 → 앱 종료 or 재실행 처리. 게임 (CP사)
Kick 시점에 처리되지 않은 이용자가 게임 접근 시 - 게임서버 다운(작업중) 상태인 경우:
에러 팝업 노출 → 앱 종료 or 재실행 처리.
게임 (CP사)
Kick 시점에 처리되지 않은 이용자가 게임 접근 시 - 게임서버 실행(라이브 검증중) 상태인 경우:
게임서버 점검여부 확인 → 게임 점검팝업 노출 → 앱 종료 or 재실행 처리.
게임 (CP사)
업데이트 흐름

앱(클라이언트)·리소스(CDN) 업데이트가 존재하는 경우의 흐름이에요. 업데이트 점검 시 Kick 처리가 되지 않은 이용자가 게임에 접근하거나, 점검 없이 앱·리소스 업데이트만 적용하는 상황에 해당해요.

순서 동작 상세 기능제공 주체
앱 업데이트(버전 업데이트) 설정. 파트너스 (스토브)
리소스 업데이트(리소스 버전 업데이트) 설정. 게임 (CP사)
업데이트를 받지 않은 이용자(클라이언트)와 게임서버 통신 발생. 게임 (CP사)
앱 버전 비교 — 최신 버전이 아닌 경우 ⑤단계 진행, 최신 버전인 경우 ⑨단계 진행. 게임 (CP사)
필수 업데이트 여부 확인 — 필수인 경우 ⑥단계, 선택인 경우 ⑥단계 진행
(단, 강제 업데이트가 아닌 경우 접속 중인 이용자는 Kick 하지 않음).
게임 (CP사)
필수 업데이트를 적용시키기 위해 이용자 Kick 진행 (전체 이용자 Kick X). 게임 (CP사)
앱 재실행 → 타이틀 화면에서 SDK 앱 업데이트 팝업 노출 → 앱 업데이트 진행. 게임 (CP사)
리소스 업데이트 존재 여부 확인 — 존재할 경우 ⑨단계, 존재하지 않을 경우 게임 접속. 게임 (CP사)
리소스 버전 비교 — 최신 버전이 아닌 경우 ⑩단계, 최신 버전인 경우 게임 접속. 게임 (CP사)
필수 업데이트 여부 확인 — 필수인 경우 ⑪단계, 선택인 경우 게임 접속
(강제 업데이트가 아닌 경우 접속 중인 이용자는 Kick 하지 않음).
게임 (CP사)
필수 리소스 업데이트를 적용시키기 위해 이용자 Kick 진행 (전체 이용자 Kick X). 게임 (CP사)
앱 재실행 → 타이틀 화면에서 리소스 업데이트 팝업 노출 → 리소스 다운로드 진행 → 다운로드 완료 후 게임 접속. 게임 (CP사)

개발하기


SDK 연동

SDK 초기화(initialize) 결과로 점검 또는 앱 업데이트 상태가 감지되면, OperationUI.handleResult를 호출해 SDK가 제공하는 안내 UI를 노출하고 이후 게임 흐름을 제어해요.

사전 준비

  • AuthUI 모듈 의존성: OperationUI는 AuthUI 모듈에 포함돼요. 프로젝트(Android build.gradle, iOS Podfile/SPM, Unity/Unreal 패키지)에 AuthUI 의존성이 추가돼 있는지 확인하세요.
  • 파트너스 설정 완료: 파트너스에서 서비스 점검과 업데이트 관리를 미리 설정하세요. 클라이언트는 initialize 응답으로 이 설정을 받아 화면을 분기해요.
  • 호출 컨텍스트: handleResult는 화면을 띄우기 위해 살아있는 Activity(Android) / UIViewController(iOS)가 필요해요. 호출 시점에 해당 컨텍스트가 finish/dismiss 되지 않았는지 확인 후 호출하세요.
  • 게임서버 측 구현: SDK 점검 정보는 최초 initialize 시점에만 응답하므로, 게임서버 진입 차단·이용자 Kick·리소스 버전 검증은 별도로 구현하세요. (자세한 내용은 트러블슈팅 참고)

개발 흐름

  1. 게임 시작 시 Auth.initialize(Android) / [SGSAuth initialize:](iOS) / Auth.Initialize(Unity·Unreal)를 호출하세요.
  2. 콜백으로 받은 Result(errorCode 포함)를 그대로 OperationUI.handleResult(activity, result) { ... }에 전달하세요.
  3. OperationUIerrorCode를 분기해 적절한 화면을 자동으로 노출해요.
    • Auth.MaintenanceError (30003) → 점검 안내 화면
    • Auth.AppUpdateError (30004) → 앱 업데이트 안내 화면 (필수/선택 옵션에 따라 동작 분기)
    • 그 외 권한·계정 관련 에러 → 해당 안내 화면 (제재, 휴면, 탈퇴 등)
  4. 이용자 인터랙션(확인/업데이트 이동/앱 종료)이 끝나면 listener 콜백이 호출돼요. 콜백 안에서 handled.isSuccessful() 여부로 게임 진입(로그인 → 캐릭터 선택 → 로비) 흐름을 이어가세요.
  5. Auth.initialize 자체가 점검·업데이트가 아닌 사유(네트워크 오류 등)로 실패한 경우 재시도 로직을 별도로 구현하세요.

트러블슈팅

점검·업데이트 정보는 initialize 시점에만 제공돼요
SDK는 최초 앱 실행(initialize) 시에만 점검/업데이트 상태를 응답해요. Heartbeat나 실시간 이용자 Kick은 SDK가 제공하지 않으므로, 게임서버 측에서 진입 차단·Kick 로직을 반드시 별도로 구현하세요. SDK 팝업은 이용자 안내용으로만 활용하고, 강제 종료/재시작 처리는 게임 측에서 책임지세요.

에러 코드 / 상황원인조치
Auth.MaintenanceError (30003)파트너스 점검 설정 활성OperationUI.handleResultResult를 전달해 SDK 점검 화면을 노출하세요. 콜백 안에서는 게임에 진입시키지 말고 앱을 종료하거나 재시작 화면으로 보내세요.
Auth.AppUpdateError (30004)파트너스 업데이트 관리에서 신규 버전 설정OperationUI.handleResult 호출 → 필수 업데이트인 경우 이용자 입력을 차단(뒤로가기 비활성, 확인 시 스토어 이동/앱 종료)하세요. 게임서버에서도 클라이언트 버전 검증으로 구버전 접속을 거부하세요.
OperationUI.handleResult 호출했는데 화면이 안 뜸호출 시점에 Activity가 finish됐거나 Fragment가 detach된 상태호출 직전에 Android는 !isFinishing && !isDestroyed, iOS는 viewController가 presentedViewController로 살아있는지 확인 후 호출하세요. Fragment 버전을 쓴다면 fragment.isAdded == true 시점에서만 호출하세요.
백그라운드 → 포그라운드 복귀 시 점검 팝업 누락SDK 점검 정보는 initialize 시점에만 응답됨. 포그라운드 복귀는 initialize를 다시 타지 않음포그라운드 복귀 시점에 게임서버 응답으로 점검 여부를 확인하고 자체 점검 안내 화면을 띄우세요. SDK에 의존하지 말고 게임 측 라이프사이클 훅(onResume, applicationDidBecomeActive)에서 처리하세요.
일부 이용자가 점검 중에도 게임 접속됨클라이언트 점검만 적용된 상태(서버 진입 차단 미구현)게임서버에 점검 모드 플래그를 두고, 모든 게임서버 API 응답에서 점검 여부를 검증해 차단하세요. 클라이언트 정보는 위변조 가능하므로 신뢰하지 말고, 점검 판단의 최종 권한은 서버에 두세요.
필수 업데이트인데 이용자가 무시하고 게임 진입클라이언트 단의 강제 업데이트 화면 입력 차단 누락, 또는 게임서버가 구버전 클라이언트를 차단하지 않음OperationUI 콜백에서 이용자가 업데이트를 거부하면 finish()/exit(0)로 앱을 종료시키세요. 동시에 게임서버에서 클라이언트 버전 헤더를 검증해 구버전 접속을 거부하세요.
리소스(CDN) 업데이트가 일부 이용자에게 적용 안 됨앱 실행 시점에만 리소스 체크가 일어나도록 구현됨게임 진입 단계마다(타이틀 → 로비 진입 등) 리소스 버전을 게임서버에 다시 질의하고, 신규 리소스가 있으면 강제 다운로드 화면으로 분기하세요.
화이트리스트로 등록된 운영진 계정도 점검 화면에 막힘플랫폼/게임 화이트리스트 미등록 또는 잘못된 시스템에 등록플랫폼 화이트리스트는 파트너스에서, 게임 화이트리스트는 게임 운영툴에서 각각 별도 등록하세요. 두 시스템은 독립적으로 동작하므로 운영진 계정은 양쪽 모두 등록하는 것을 권장해요.

샘플 코드

csharp
using Stove.Auth;
using Stove.AuthUI;

Auth.Initialize(initRequest, (Result result) => {
    OperationUI.HandleResult(activity, result, (Result handled) => {
        if (handled.IsSuccessful()) {
            // 게임 진입 흐름 진행 (로그인 → 캐릭터 선택 → 로비)
        } else {
            // 사용자가 종료/취소 선택 → 앱 종료 처리
        }
    });
});

자주 묻는 질문



Q1. SDK에서 제공하는 점검 팝업만으로 점검 처리가 완료되나요?
A. 아니요, STOVE SDK 팝업은 이용자 안내용 단순 팝업으로만 사용해요.
게임 내 자체 점검 안내, 점검 Kick, 이용자 입력 차단 기능 등은 게임에서 별도로 구현해야 해요.
SDK만으로는 서버 기반의 점검 처리가 완료되지 않아요.
Q2. 점검 중에도 일부 이용자가 게임에 접근하는 문제가 발생해요.
A. SDK 점검 정보는 최초 앱 실행(initialize) 시에만 제공되며, Heartbeat 및 이용자 Kick 기능은 SDK에서 지원하지 않아요.
게임서버에서 점검 설정(진입 차단), 서버 기반의 이용자 Kick 구현을 반드시 별도로 구현해야 해요.
또한 게임 클라이언트의 점검·Kick 기능과 별도로, 게임서버 측에서도 외부 접속을 차단하는 기능을 구현해야 해요.
Q3. 선택 업데이트와 필수 업데이트의 차이는 무엇인가요?
A. 필수 업데이트는 이용자 Kick을 통해 강제로 업데이트를 적용시키는 방식이에요.
선택 업데이트는 현재 접속 중인 이용자에게는 Kick을 적용하지 않으며, 다음 앱 실행 시 업데이트 팝업을 노출해요.
필수·선택 여부에 따라 Kick 대상 범위가 달라지므로 게임서버에서 업데이트 옵션을 정확히 설정해야 해요.
Q4. 플랫폼 화이트리스트와 게임 화이트리스트는 어떻게 다른가요?
A. 플랫폼 화이트리스트는 파트너스에서 등록하며 SDK(SGS)에서 판단해요.
게임 화이트리스트는 게임 운영툴에서 등록하며 게임서버(CP사)에서 판단해요.
두 화이트리스트는 독립적으로 동작하며, 점검 중 QA·운영 인력이 접근할 수 있도록 각각 별도로 관리해야 해요.
Q5. 앱을 백그라운드에 내려놓은 상태에서 점검이 시작되면 어떻게 되나요?
A. SDK 점검 정보는 최초 앱 실행(initialize) 시에만 제공되므로, 백그라운드에서 앱을 포그라운드로 전환하는 경우에는 SDK 점검 팝업이
노출되지 않을 수 있어요. 이런 예외 상황은 게임서버 기반의 이용자 Kick 기능으로 처리해야 해요.
앱 초기화(initialize) 단계로 보내지 않도록 별도 처리 로직 구현을 권장해요.
Q6. 점검 및 업데이트 설정은 어디서 하나요?
A. SDK(스토브) 영역의 점검 및 앱 업데이트는 파트너스에서 설정해요.
파트너스 내 서비스 점검 메뉴에서 점검 시간과 안내 메시지를, 업데이트 관리 메뉴에서 버전과 업데이트 옵션을 설정할 수 있어요.
게임서버 점검 및 리소스 업데이트 설정은 게임 운영툴에서 별도로 관리해요.



직접 문의하고 싶으신가요? stove.developers@smilegate.com