- 마지막 업데이트
인게임 메뉴
이해하기
인게임 메뉴는 게임 플레이 중 플레이어가 스토브 플랫폼의 주요 기능에 빠르게 접근할 수 있도록 제공하는 SDK 기반의 설정 UI예요.
별도의 화면 전환 없이 게임 내에서 계정 관리, 고객센터, 알림 설정, 이용약관 고지 등 운영에 필수적인 기능을 제공해요.
인게임 메뉴는 Mobile(Android/iOS) 플랫폼을 기본으로 지원하며, 각 기능은 사업/기획 의도에 맞게 선택적으로 적용해야 해요.
기능 구성
인게임 메뉴에서 제공하는 기능은 구현 필수 여부에 따라 아래와 같이 구분돼요.
| 기능명 | 구현 | 설명 |
|---|---|---|
| 계정관리 기능 | 필수 | 계정 연결·이메일 인증·비밀번호 변경·스토브 회원 탈퇴 등 계정 설정 제공 |
| 로그아웃 기능 | 필수 | 현재 계정 로그아웃 (게스트는 로그아웃 시 계정 유실 주의) |
| 게임 해지 기능 | 필수 | 게임 정보·스토브 계정 연결 정보 삭제 (SDK 미제공, 게임에서 직접 구현) |
| 정보 노출 | 필수 | 계정 유형·스토브 회원번호·게임/SDK 버전 등 노출 |
| 고객센터 연동 | 필수 | FAQ·1:1 문의 고객센터 연결 |
| 알림 설정 | 필수 | 광고성 알림(Push) 수신 설정 (국내·플랫폼사 정책상 필수) |
| 인게임 내 이용약관 고지 | 필수 | 플랫폼·국가 정책에 따른 이용약관 고지 |
| SDK(플랫폼) 노출 언어 변경 | 선택 | 게임 언어에 맞춰 SDK 노출 언어 통일 |
| 기기 등록 서비스 | 선택 | 기기 정보 등록으로 게임 접속 허용 (Auth-ui v2.7.2 이상) |
| 커뮤니티 | 선택 | 인게임에서 스토브 커뮤니티 연결 (파트너스 사전 세팅 필요) |
서버 초기화, 게임 해지, 로그아웃 기능 구현에 주의해요
세 기능은 사업/기획의 의도에 따라 선택적으로 구현해야 해요.
구체적인 구현은 사업/기획 담당자와의 논의 후 메뉴 기획 의도에 맞춰 적용해 주세요.
계정 유형별 제공 항목
계정 관리 화면은 로그인한 계정 유형에 따라 제공되는 항목이 다르게 구성돼요.
| 계정 유형 | 제공 메뉴 |
|---|---|
| 정회원(이메일) | 이메일 인증, 비밀번호 변경, 스토브 회원 탈퇴 |
| 정회원(3rd Party) | 스토브 회원 탈퇴 |
| 게스트 | 계정 연결 (게스트 소실 방지를 위해 필수 제공) |
ㆍ 정회원(이메일): 이메일 인증, 비밀번호 재설정, 스토브 회원 탈퇴 항목이 노출돼요.

ㆍ 정회원(3rd Party): 스토브 회원 탈퇴 항목이 노출돼요.

ㆍ 게스트 계정: 스토브 계정 연결 화면이 노출돼요. 게스트 소실 방지를 위해 계정 연결 기능은 반드시 제공해야 해요.

연동 가이드
사전 준비
| 항목 | 내용 |
|---|---|
| 이용자 로그인 상태 | 인게임 메뉴 기능은 이용자 로그인 완료 이후 호출 가능 |
| 파트너스 설정 | 고객센터·커뮤니티 사용 시 파트너스 사전 설정 필요 |
| 이용약관 URL 준비 | 이용약관 고지 기능 사용 시, 파트너스에 약관 등록 후 노출용 URL 확보 |
| 기능 구현 범위 확정 | 서버 초기화·게임 해지·로그아웃 등 구현 여부 사전 확정 |
개발하기
SDK 연동
계정 설정 화면 구성하기
인게임 내 '설정 > 계정' 화면을 구성할 수 있어요. 계정 상태(게스트/정회원)에 따라 SDK가 자동으로 다른 UI를 표시해줘요.
결과 분기 처리
콜백에서 받은 result로 다음 분기를 직접 처리하세요.
- 성공 +
userInfo["userAction"] == "withdraw"→ 스토브 회원 탈퇴 완료 상태예요. SDK가 자동 로그아웃을 수행하므로, 게임 시작 화면으로 즉시 이동시켜 재로그인을 유도하세요. - 실패(취소 등) 후 게스트 → 정회원 전환 발생 → 호출 전
IsGuest()값과 콜백 후accessToken.User.IsGuest()값을 비교해 전환 여부를 판단하고,accessToken.User.VerifiedDevice값으로 기기 등록 단계로 보낼지 결정하세요.
public void ManageAccount()
{
bool isGuest = false;
if (Auth.AccessToken != null)
{
isGuest = Auth.AccessToken.User.IsGuest();
}
AuthUI.ManageAccount((Result result) =>
{
if (result.IsSuccessful)
{
if (result.UserInfo != null && result.UserInfo.TryGetValue("userAction", out string userAction))
{
if (!string.IsNullOrEmpty(userAction) && userAction.Equals("withdraw"))
{
//회원탈퇴 완료 - 자동 로그아웃되므로 게임 종료 or 초기화면 이동
Login();
}
}
}
else
{
AccessToken accessToken = Auth.AccessToken;
if (accessToken != null)
{
if (!accessToken.User.IsGuest() && isGuest)
{
//계정 연결하기 완료 - 기기등록 확인
if (Auth.AccessToken.User.VerifiedDevice) {
//등록된 기기
} else {
Login();
}
}
}
}
});
}
로그아웃
Auth.logout은 SDK 내부의 accessToken과 저장소의 토큰 파일을 모두 삭제해요.
- 게스트 계정 주의: 게스트는 로그아웃하면 같은 계정을 다시 찾을 방법이 없어요.
- 로그아웃 후에는 게임 최초 동선(시작 화면)으로 이동해서 재로그인을 유도하는 걸 권장해요.
- v1 SDK는 로그아웃 후 게스트 로그인 시 동일 계정, v2 SDK는 신규 계정으로 동작해요.
public void Logout()
{
Auth.Logout();
}
스토브 회원 탈퇴
AuthUI.withdraw를 호출하면 Marina(Auth) 서버에 탈퇴 요청을 보내고 성공 시 자동으로 로그아웃돼요. 탈퇴 완료 후에는 게임 최초 동선(시작 화면)으로 이동해서 재로그인을 유도하세요.
실패 시 처리result.IsSuccessful == false인 경우 직접 에러 메시지를 띄우지 말고 OperationUI.HandleResult(result, ...)에 위임하세요. SDK가 제재·휴면·네트워크 등 사유에 맞는 화면을 자동으로 노출해요. 성공 시에는 자동 로그아웃되므로 별도로 Auth.logout을 호출하지 마세요.
public void Withdraw()
{
AuthUI.Withdraw(result =>
{
if (result.IsSuccessful)
{
//회원탈퇴 완료 - 자동 로그아웃되므로 게임 종료 or 초기화면 이동
}
else
{
OperationUI.HandleResult(result, (Result operationResult) =>
{
/** ex) 현재 화면 유지 및 회원탈퇴 재시도 유도 **/
});
}
});
}
쿠폰 사용 (Android만 가능)
ViewUI.coupon을 호출하면 스토브 쿠폰 입력 화면이 노출돼요. Android 전용 기능이라 iOS에서는 제공되지 않아요.

게임 앱에서는 쿠폰창 호출 외 별도 작업이 필요 없지만, 게임 서버에서 아이템 지급(쿠폰) 요청 처리가 필요해요.
자세한 내용은 게임 서버 — 아이템박스 연동 가이드를 참고하세요.
public void Coupon()
{
ViewUI.Coupon((Result result, Dictionary<string, string> dictionary) =>
{
if (result.IsSuccessful)
{
}
else
{
OperationUI.HandleResult(result, (Result operationResult) =>
{
/** ex) 현재 화면 유지 **/
});
}
});
}
고객센터
ViewUI.customerSupport를 호출하면 로그인 유지 상태로 고객센터 페이지가 WebView로 노출돼요. SDK가 내부적으로 onlineAccessToken을 발급받아 SSO 연동을 처리해요.
로그인 상태 필요
SDK가 SSO 연동을 위해 onlineAccessToken을 발급받으므로, 호출 전에 반드시 Auth.login이 완료된 상태여야 해요. 미로그인 상태에서 호출하면 인증 실패로 페이지가 정상 노출되지 않아요. 호출 전에 Auth.AccessToken != null을 확인하세요. 실패 콜백은 OperationUI.HandleResult(result, ...)에 위임해 처리하세요.
public void CustomerSupport()
{
ViewUI.CustomerSupport((Result result, Dictionary<string, string> dictionary) =>
{
if (result.IsSuccessful)
{
}
else
{
OperationUI.HandleResult(result, (Result operationResult) =>
{
/** ex) 현재 화면 유지 **/
});
}
});
}
회원번호 조회
로그인된 이용자의 스토브 회원번호(userId)를 AccessToken.user.userId로 가져올 수 있어요. 미로그인 상태에서는 accessToken이 null이므로 조회 전 체크가 필요해요.
private string UserId()
{
AccessToken accessToken = Auth.AccessToken;
if(accessToken == null)
{
return "";
}
return accessToken.User.UserId;
}
회원 전환
게스트·서드파티 계정을 정회원으로 전환하거나 스토브 정회원과 연결할 때 사용해요. AuthUI.manageAccount 화면에서 자동 진입되거나, 아래 API를 직접 호출해 독립 화면으로 노출할 수 있어요.
스토브 정회원 전환 (AuthUI.switchAccount)
서드파티 계정을 스토브 정회원으로 전환하는 화면이에요. 서드파티 계정 로그인 이후에 호출 가능해요.
public void SwitchAccount()
{
if (Auth.AccessToken != null) {
AuthUI.SwitchAccount((Result result) =>
{
if (result.IsSuccessful)
{
//계정 이전 성공
}
else
{
//계정 이전 실패
}
});
}
}
게스트 → 정회원 연결 (AuthUI.link)
게스트 계정을 정회원 계정으로 연결하는 기능이에요. 계정 관리 화면의 '정회원 전환하기'와 동일한 기능이며, 게스트 계정인 경우에만 호출을 권장해요. (게스트가 아닌 경우 '채널 연결하기'가 노출돼요.)
public void link()
{
if (Auth.AccessToken != null) {
AuthUI.Link((Result result) =>
{
if (Auth.AccessToken.User.IsGuest())
{
// 게스트 유지 (정회원 전환 미완료)
}
else
{
// 정회원 전환 성공
}
});
}
}
언어 설정
플랫폼 노출 언어(19종)를 변경해요. 게임 언어 변경 시 스토브 플랫폼도 함께 변경되도록 연동하세요.
- 상세 코드는 국가/언어 설정 — 플랫폼 표시 언어 변경 문서를 참고하세요.
알림 설정
푸시 알림(주간/야간) On·Off 및 푸시 설정 조회 기능이에요.
- 상세 코드는 푸시 — 푸시 설정 조회, 푸시 알림 On/Off, 야간 푸시 On/Off 문서를 참고하세요.
인게임 내 이용약관 고지
인게임에서 스토브 이용약관을 노출하는 기능이에요. 별도 원본 자료를 받으면 상세 구현 가이드를 채울 수 있어요.
커뮤니티 연결
인게임에서 스토브 커뮤니티를 팝업으로 노출하거나, 특정 커뮤니티 URL을 로그인 유지 상태로 호출할 수 있어요.
- 상세 코드는 팝업(View) — 커뮤니티, 커뮤니티 URL 직접 호출 문서를 참고하세요.
기기 등록 서비스
이용자의 기기 등록 상태 확인과 기기 관리 화면 노출 기능이에요. deviceRegistrationPolicy와 verifiedDevice 속성으로 상태를 판단해요.
- 상세 코드는 기기 등록 문서를 참고하세요.