thumbnailthumbnail

그래서 계정 연동 하면 뭐가 좋은데?

안정현

안녕하세요, 저는 데브시스터즈 기술본부 백엔드셀에서 소프트웨어 엔지니어로 일하고 있는 안정현입니다. 이 글에서는 DevPlay 계정에 대해 알아보고 이를 통해 얻을 수 있는 다양한 혜택을 알아봅니다.

DevPlay 소개

DevPlay는 데브시스터즈의 글로벌 게임 서비스 플랫폼으로, 새로운 기기로 바꾸어도 기존에 플레이하던 게임 데이터 그대로 플레이할 수 있게 하거나, 데브시스터즈의 다양한 게임간 이벤트에 참여할 수 있습니다.

devplay login horizontal
게임 진입 시 로그인 화면

DevPlay 계정 구조를 간단하게 나타내면 아래와 같습니다.

하나의 DevPlay 계정(Member)으로 여러 게임을 즐기고 있는 사용자는, 내부적으로 각 게임별 계정(Player)을 연결하여 저장하고 있습니다.

struct auth member player
계정이 연동된 유저의 데이터 구조

과거 로그인 기록을 통해 유저에게 편리함을 제공하는 방법

오랜만에 들어왔더니 어떤 계정으로 가입되어 있었는지 기억이 나지 않아요

DevPlay는 다양한 로그인 수단을 제공하고 있어서, Google, Apple 등 이미 가지고 있는 여러 로그인 수단 중 하나를 선택하여 계정 연동을 할 수 있습니다.

또한 게임에 접속할 때마다 매번 로그인해야 하거나 게임 도중에 인증수단이 만료되는 것은 사용자에게 좋지 않은 경험을 주기 때문에, DevPlay는 토큰을 일정 기간 동안(refresh token이 만료되기 전까지) 주기적으로 교체해 줘서 인증이 끊기지 않도록 도와줍니다.

신규 게임에 처음 접속했을 때, 이전에 사용했던 계정이 무엇이었는지 기억이 나지 않아요

위의 인증을 편하게 할 수 있도록 해주는 두 가지 기능의 영향인지는 모르겠지만 가끔 사용자분들이 자신의 계정을 기억하지 못하시는 경우도 있는데요, 플레이를 오랜 기간 쉬었던 사용자분들의 경우 더욱 그러합니다.

데브시스터즈에서 새로운 게임이 출시했을 때, 사용자분이 이전에 다른 게임에서 사용했던 DevPlay 계정이 무엇이었는지 기억하지 못하고 새로운 로그인 수단으로 DevPlay 계정을 새로 생성할 수 있습니다. 이는 궁극적으로 사용자의 불편으로 이어지기 때문에, DevPlay는 동일 디바이스의 다른 게임에서 DevPlay 로그인을 사용한 적이 있다면 디바이스의 고유 식별자를 통해 “이미 연동 가능한 DevPlay 계정이 있군요!" 라고 제안하며 이전의 로그인 수단으로 연동할 수 있도록 도와줍니다.

이는 한 게임에 대해 여러 계정을 사용하고 있는 사용자들에게도 좋은 경험을 제공합니다.

devplay idp horizontal
접속 이력이 있는 디바이스에서의 로그인 화면

Guest 계정

회원가입을 진행하지 않고 게임을 진행하고 싶어요

DevPlay 계정을 이용하면 디바이스를 변경하는 상황에서도 게임 데이터를 안전하게 보호할 수 있는 장점이 있지만, 로그인 수단을 연동하는 과정 자체가 당장 플레이를 즐기고 싶은 사용자에게는 하나의 진입장벽이 될 수 있습니다. 이러한 경우 사용자는 Guest로 로그인 하여, DevPlay 연동 과정을 생략하고 계정을 생성하여 서비스를 이용할 수 있습니다.

Guest 계정의 경우에도 위에서 설명한 Auth-Member-Player의 구조를 가지지만, Guest 계정은 사용자를 기기 또는 앱의 생애주기에 맞춰서 구분하기 때문에 사용자가 핸드폰을 변경할 경우 게임 계정을 잃어버릴 수도 있습니다.

⚠️ DevPlay 연동을 하지 않은 채로 계정을 잃어버리더라도 계정을 찾을 수는 있습니다. 고객지원 페이지를 통해 계정을 복구받을 수 있지만, 그 때엔 결제내역 등을 통해 본인임을 증명해야 합니다.

struct auth guest player
게스트 유저의 데이터 구조

위와 같이 Guest 계정은 당장 플레이하기에 편리함을 제공하지만, DevPlay 연동을 하면 게임 데이터를 안전하게 보관할 수 있는 장점과 더불어 아래에서 설명할 크로스 게임 프로모션의 혜택을 받을 수 있게 됩니다.

크로스 게임 프로모션

새로운 게임을 런칭했는데, 기존 게임들의 유저풀을 이용할 수 없나요?

서비스 런칭 후, 유저들에게 이를 알리는 방법은 굉장히 많습니다. 기존 라이브 서비스 게임을 통해서 홍보를 하는 방법도 그 중 하나인데, 이를 크로스 게임 프로모션(CGP)이라 부르고 있습니다.

CGP는 앱 마케팅 및 고객 유치를 위한 주요한 전략입니다. 고객이 새롭게 출시하는 게임에서 일정한 기준을 충족하는 경우, 연계된 기존 라이브 서비스 게임에 보상을 지급하는 방식으로 진행합니다. 이럴 경우 새롭게 출시하는 게임에 기존 게임의 고객을 유입시켜 런칭 초기 고객을 확보할 수 있는 효과를 노릴 수 있습니다.

아래는 기존에 진행했던 CGP 예시입니다.

cgp examples
각 게임의 크로스 게임 프로모션 예시

A게임에서 조건 달성 후 B게임에서 보상을 받기 위해서는 A게임의 Player와 B게임의 Player가 하나의 계정으로 묶여있어야 하는데, 이는 DevPlay 연동을 통해 가능합니다.

CGP 조건 달성 시 보상을 받는 플로우는 아래와 같습니다.

아래에서는 쉬운 설명을 위해, 쿠키런: 모험의 탑, 쿠키런: 킹덤 을 예시로 듭니다.

  1. 모험의 탑에서 스토리 모드 1-1 클리어 라는 CGP 조건을 달성하면,
  2. DevPlay 서버에서 해당 DevPlay 계정의 킹덤 계정에 보상이 생성됩니다.
  3. 이후 유저는 킹덤에 다시 접속하여 보상을 획득합니다.
clear mission
쿠키런: 모험의 탑 - 스토리 모드 1-1 클리어
devplay games
계정 연동 상태
kingdom reward
쿠키런: 킹덤 - CGP 보상 수령

모험의 탑과 킹덤 계정을 하나의 DevPlay 계정으로 연동하지 않은 상태라면, 상황은 조금 더 복잡해집니다. 당장은 CGP 조건을 달성 하더라도 보상을 받을 수 없는것이 당연하지만, 나중에 계정 연동을 했을 경우 그 즉시 보상을 받을 수 있도록 처리를 해줘야 합니다.

조건 달성을 먼저 한 후, 계정 연동을 하는 경우 보상을 받는 플로우는 아래와 같습니다.

  1. 모험의 탑에서 스토리 모드 1-1 클리어 라는 CGP 조건을 달성합니다.
  2. 아직 연동된 킹덤 계정이 없으므로, 모험의 탑 계정의 Member에 대해 지급되지 않은 킹덤 보상이 있음을 기록해둡니다.
  3. 이후 CGP 기간 내 해당 계정에 킹덤 계정이 생성되어 연동된다면, 그 때 지급하지 못한 킹덤 보상을 지급합니다.

CGP를 통해 이득을 취하려는 시도와 해결방법

계정을 쉽게 초기화 할 수 있는 경우, 유저는 최초의 뽑기를 이론상 무한정 시도할 수 있습니다. 이것을 일본어로 리셋 마라톤, 줄여서 리세마라 라고 부르고 있고 한국에서도 리세마라 라고 부르는 편입니다. 데브시스터즈의 게임에서도 보상을 극대화 하기 위해 유저들이 리세마라를 하는 경우가 꽤 있습니다.

CGP에 대해서도 리세마라를 시도하는 유저가 있을 수 있습니다. 기본적으로 DevPlay 플랫폼 입장에서는 중복지급 방지를 위한 최소한의 방어 로직을 제외하고는 리세마라에 대한 제한을 두고 있지 않고, 각 게임사에 선택지를 주고 있습니다.

지난 CGP에서는 리세마라를 막기로 결정했고, 위의 설명과 동일하게 쿠키런: 킹덤쿠키런: 모험의 탑 을 예시로 설명하겠습니다.

모험의 탑 계정 리세마라 (조건 달성 게임)

조건을 달성하는 쪽인 모험의 탑 계정을 리세마라 하면서 하나의 킹덤 계정에 CGP 보상을 지급하려는 경우, DevPlay 서버에서 하나의 킹덤 계정에 중복 보상이 지급되지 않도록 처리를 하고 있습니다.

reward id의 구조를 통해 중복 지급을 막는 과정

만일 DevPlay 서버에서 이러한 처리를 하지 않는다면, 어떻게 해야할까요? 지난 CGP에선 별석탄이라는 CGP 전용 재화를 둠으로써 추가적인 방어 로직을 만들었습니다. 유저가 CGP 보상을 중복으로 받았어도 별석탄이라는 재화는 CGP 보상을 교환할 때에만 '1개일 경우' ~ '4개일 경우' 등 제한적으로 사용 가능하게 하였으므로, 유저가 일정한 수량을 초과하여 별석탄을 소지하고 있더라도 더 이상의 이득을 취할 수 없습니다.

ck star coal reward
쿠키런: 킹덤 - 별석탄 보상 획득

킹덤 계정 리세마라 (보상 수령 게임)

반대로 보상을 받는 쪽인 킹덤 계정을 리세마라 하여 이미 미션을 완료한 모험의 탑 계정으로부터 중복된 CGP 보상을 얻어가려는 경우는 어떻게 처리할 수 있을까요?

모험의 탑 서버에서 DevPlay 서버에 미션 달성 API를 단 한번만 호출할 수 있도록 제한을 두어 보상을 중복지급하지 않게 만들 수 있습니다. CGP 조건 달성 및 보상 여부에 대해 서버가 매 번 중복을 체크하는 것은 부담이 될 수도 있지만, 잘 구현할 수만 있다면 가장 확실한 방법입니다. 지난 CGP에서는 모험의 탑 서버 개발자들이 이러한 방어 로직을 직접 구현하기도 했습니다.

이러한 작업들을 통해 유저들이 예상치 못한 방법으로 이득을 취하는 것을 방지하고, 게임의 공정성을 유지할 수 있습니다.

마치며

지금까지 DevPlay 계정의 구조와, 계정 연동과 Guest 계정의 장단점, 크로스 게임 프로모션에 대해 알아보았습니다. 데브시스터즈의 게임을 이용해주시는 분들의 수 만큼 계정을 사용하는 방법이 다양하다고 느끼는데요, 이러한 다양한 방법들을 통해 사용자들에게 더 나은 경험을 제공할 수 있도록 노력하고 있습니다.

이 글을 통해 DevPlay 계정에 대한 궁금증이 어느정도 해소되었으면 좋겠습니다. 긴 글 읽어주셔서 감사합니다.

deco cookie

데브시스터즈는 최고의 인재를 찾고 있습니다.

데브시스터즈에서는 능력있는 [기술본부] [DevPlay] 서버 소프트웨어 엔지니어 (Senior)를 찾고 있습니다.
자세한 내용은 채용 사이트를 확인해 주세요!