<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>모험 게임을 만들며 배우는 GS2 on Game Server Services | Docs</title><link>/ko/get_start/adventure/</link><description>Recent content in 모험 게임을 만들며 배우는 GS2 on Game Server Services | Docs</description><generator>Hugo</generator><language>ko</language><atom:link href="/ko/get_start/adventure/index.xml" rel="self" type="application/rss+xml"/><item><title>개발 환경 준비하기</title><link>/ko/get_start/adventure/start/setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/ko/get_start/adventure/start/setup/</guid><description>&lt;p&gt;GS2 학습용 프로젝트와 빈 Unity 씬을 준비합니다. 여기서 만드는 GS2 계정은 게임 설정을 관리하는 개발자 계정입니다.&lt;/p&gt;&#10;&lt;p&gt;스크린샷은 일본어 UI입니다. 아래 절차에서는 영어 UI의 항목 이름을 사용합니다.&lt;/p&gt;&#10;&lt;h2 id="1-gs2에-가입하기"&gt;1. GS2에 가입하기&lt;a class="td-heading-self-link" href="#1-gs2%ec%97%90-%ea%b0%80%ec%9e%85%ed%95%98%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;a href="https://gs2.io" target="_blank" rel="noopener"&gt;GS2 사이트(새 탭)&lt;/a&gt;에서 개발자 계정을 등록합니다. 받은 메일의 링크로 이메일 주소를 인증한 뒤 &lt;a href="https://app.gs2.io" target="_blank" rel="noopener"&gt;관리 콘솔(새 탭)&lt;/a&gt;에 로그인합니다.&lt;/p&gt;&#10;&lt;h2 id="2-학습용-프로젝트-만들기"&gt;2. 학습용 프로젝트 만들기&lt;a class="td-heading-self-link" href="#2-%ed%95%99%ec%8a%b5%ec%9a%a9-%ed%94%84%eb%a1%9c%ec%a0%9d%ed%8a%b8-%eb%a7%8c%eb%93%a4%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Project → Project list → Create project&lt;/strong&gt; 를 엽니다.&lt;/li&gt;&#10;&lt;li&gt;프로젝트 이름에 &lt;code&gt;adventure&lt;/code&gt;, 설명에 ‘모험 게임 연습’을 입력합니다.&lt;/li&gt;&#10;&lt;li&gt;처음 활성화할 리전을 &lt;strong&gt;Tokyo&lt;/strong&gt; 로 선택합니다. 예제 코드도 Tokyo(&lt;code&gt;ap-northeast-1&lt;/code&gt;)에 연결합니다.&lt;/li&gt;&#10;&lt;li&gt;계약 플랜 등의 내용을 확인하고 &lt;strong&gt;Create&lt;/strong&gt; 를 누릅니다.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="/images/adventure/create-project.png" alt="프로젝트 생성 화면. 왼쪽 위에서 이름, 왼쪽에서 첫 리전을 지정"&gt;&lt;/p&gt;</description></item><item><title>1. 계정을 만들고 로그인하기</title><link>/ko/get_start/adventure/lessons/01-login/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/ko/get_start/adventure/lessons/01-login/</guid><description>&lt;p&gt;먼저 게임에 로그인할 수 있게 만들어 봅시다. 로그인한 플레이어의 ID를 화면에 표시하고, Unity의 재생을 중지해도 같은 계정으로 돌아올 수 있게 합니다.&lt;/p&gt;&#10;&lt;p&gt;처음에는 계정을 만들고 플레이어 ID와 비밀번호를 저장합니다. 다음 실행부터는 저장한 정보로 로그인합니다. 로그인 후 받는 액세스 토큰에는 유효 기간이 있으므로 다음에 실행할 때도 로그인 절차를 거칩니다.&lt;/p&gt;&#10;&lt;h2 id="1-플레이어-계정을-저장할-공간-만들기"&gt;1. 플레이어 계정을 저장할 공간 만들기&lt;a class="td-heading-self-link" href="#1-%ed%94%8c%eb%a0%88%ec%9d%b4%ec%96%b4-%ea%b3%84%ec%a0%95%ec%9d%84-%ec%a0%80%ec%9e%a5%ed%95%a0-%ea%b3%b5%ea%b0%84-%eb%a7%8c%eb%93%a4%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;GS2에서 설정과 데이터를 나누어 보관하는 공간을 &lt;strong&gt;네임스페이스&lt;/strong&gt; 라고 합니다. 플레이어 계정을 저장할 GS2-Account 네임스페이스를 만들어 봅시다.&lt;/p&gt;</description></item><item><title>2. 퀘스트를 등록하고 목록에 표시하기</title><link>/ko/get_start/adventure/lessons/02-quests/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/ko/get_start/adventure/lessons/02-quests/</guid><description>&lt;p&gt;로그인이 되니 이제 모험 목록을 만들어 봅시다. 첫 모험은 &lt;strong&gt;숲 탐험&lt;/strong&gt; 입니다. GS2에서는 모험을 퀘스트라고 부르며, 퀘스트 그룹으로 묶어 관리합니다. 이번에는 &lt;code&gt;main&lt;/code&gt; 퀘스트 그룹에 &lt;code&gt;forest&lt;/code&gt;라는 ID로 등록하고 화면에 이름을 표시합니다.&lt;/p&gt;&#10;&lt;h2 id="게임-설정-준비하기"&gt;게임 설정 준비하기&lt;a class="td-heading-self-link" href="#%ea%b2%8c%ec%9e%84-%ec%84%a4%ec%a0%95-%ec%a4%80%eb%b9%84%ed%95%98%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;퀘스트 이름이나 보상처럼 개발자가 정하는 게임 설정을 &lt;strong&gt;마스터 데이터&lt;/strong&gt; 라고 합니다. 플레이어의 코인 잔액이나 진행 중인 퀘스트 정보는 &lt;strong&gt;유저 데이터&lt;/strong&gt; 입니다. 먼저 목록에 표시할 마스터 데이터를 만듭니다.&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;forest&lt;/code&gt;는 코드에서 퀘스트를 지정할 때 쓰는 식별자이고, &lt;strong&gt;숲 탐험&lt;/strong&gt; 은 플레이어에게 보여 주는 이름입니다. 둘을 분리하면 화면의 이름을 바꾸어도 코드에서는 같은 퀘스트로 다룰 수 있습니다.&lt;/p&gt;</description></item><item><title>3. 퀘스트를 시작하고 보상 받기</title><link>/ko/get_start/adventure/lessons/03-rewards/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/ko/get_start/adventure/lessons/03-rewards/</guid><description>&lt;p&gt;목록에 표시된 &lt;strong&gt;숲 탐험&lt;/strong&gt; 을 실제로 플레이할 수 있게 만들어 봅시다. &lt;strong&gt;시작&lt;/strong&gt; 으로 모험을 떠나고 &lt;strong&gt;클리어&lt;/strong&gt; 로 돌아오면 10코인을 받습니다. 몇 번을 클리어해도 보상은 같고 첫 클리어 보너스는 넣지 않습니다.&lt;/p&gt;&#10;&lt;h2 id="클리어-보상은-gs2에-설정하기"&gt;클리어 보상은 GS2에 설정하기&lt;a class="td-heading-self-link" href="#%ed%81%b4%eb%a6%ac%ec%96%b4-%eb%b3%b4%ec%83%81%ec%9d%80-gs2%ec%97%90-%ec%84%a4%ec%a0%95%ed%95%98%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;보상 수량은 GS2의 퀘스트 설정에서 정합니다. 일반 클리어 보상을 무상 코인 10개로 설정하면 Unity가 클리어를 보고할 때 GS2가 코인을 지급합니다. Unity에서는 잔액 변경에 맞춰 화면을 갱신합니다.&lt;/p&gt;&#10;&lt;p&gt;코인은 GS2-Money2의 &lt;strong&gt;지갑&lt;/strong&gt; 에 저장합니다. 지갑을 구분하는 번호를 &lt;strong&gt;슬롯&lt;/strong&gt; 이라고 하며, 이 게임에서는 &lt;code&gt;0&lt;/code&gt;을 사용합니다. 이 장에서 Money2 설정을 추가하고 이후에도 같은 지갑을 읽고 씁니다.&lt;/p&gt;</description></item><item><title>4. 다시 실행하여 이어서 플레이하기</title><link>/ko/get_start/adventure/lessons/04-resume/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/ko/get_start/adventure/lessons/04-resume/</guid><description>&lt;p&gt;3장까지 만든 게임을 다시 실행하여 모은 코인과 진행 중인 퀘스트가 남아 있는지 확인해 봅시다. 이 장에서는 코드나 서버 설정을 바꾸지 않습니다.&lt;/p&gt;&#10;&lt;h2 id="코인이-남아-있는지-확인하기"&gt;코인이 남아 있는지 확인하기&lt;a class="td-heading-self-link" href="#%ec%bd%94%ec%9d%b8%ec%9d%b4-%eb%82%a8%ec%95%84-%ec%9e%88%eb%8a%94%ec%a7%80-%ed%99%95%ec%9d%b8%ed%95%98%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;퀘스트를 클리어하여 코인을 10개 이상 모읍니다. 보상이 화면에 반영되면 플레이어 ID와 코인 잔액을 기록합니다.&lt;/li&gt;&#10;&lt;li&gt;Unity 재생을 중지했다가 다시 재생합니다. Studio는 자동으로 로그인하고, SDK에서는 &lt;strong&gt;로그인&lt;/strong&gt; 버튼을 누릅니다. 이 장에서 다시 재생할 때는 매번 이 방법으로 로그인합니다.&lt;/li&gt;&#10;&lt;li&gt;플레이어 ID와 잔액이 기록한 값과 같은지 비교합니다. 퀘스트는 시작 전 상태여야 합니다.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;코인과 퀘스트 진행 상태는 GS2에 저장됩니다. 1장에서는 같은 계정으로 로그인할 정보를 기기에 저장했습니다. 다시 실행하면 그 계정으로 로그인하고 3장의 표시 코드가 GS2에서 데이터를 가져옵니다.&lt;/p&gt;</description></item><item><title>5. 퀘스트 시작 시 스태미나 소비하기</title><link>/ko/get_start/adventure/lessons/05-stamina/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/ko/get_start/adventure/lessons/05-stamina/</guid><description>&lt;p&gt;이제 퀘스트에서 스태미나를 사용하도록 해 봅시다. 숲 탐험을 시작하는 데 5가 필요하고 부족하면 회복을 기다리는 규칙입니다.&lt;/p&gt;&#10;&lt;h2 id="시작하기-전에"&gt;시작하기 전에&lt;a class="td-heading-self-link" href="#%ec%8b%9c%ec%9e%91%ed%95%98%ea%b8%b0-%ec%a0%84%ec%97%90" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;진행 중인 퀘스트가 있다면 클리어한 뒤 스태미나 설정을 추가합니다.&lt;/p&gt;&#10;&lt;h2 id="추가할-설정"&gt;추가할 설정&lt;a class="td-heading-self-link" href="#%ec%b6%94%ea%b0%80%ed%95%a0-%ec%84%a4%ec%a0%95" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;스태미나 설정 이름은 &lt;code&gt;stamina&lt;/code&gt;입니다. 초기값과 일반 회복 상한은 모두 20으로 설정합니다. 사용한 스태미나는 300초마다 1씩 자연 회복되게 합니다.&lt;/p&gt;&#10;&lt;h2 id="따라-하기"&gt;따라 하기&lt;a class="td-heading-self-link" href="#%eb%94%b0%eb%9d%bc-%ed%95%98%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&#10;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="studio" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Studio&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="sdk (unity)" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; SDK (Unity)&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;h3 id="스태미나-표-만들기"&gt;스태미나 표 만들기&lt;a class="td-heading-self-link" href="#%ec%8a%a4%ed%83%9c%eb%af%b8%eb%82%98-%ed%91%9c-%eb%a7%8c%eb%93%a4%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Add features&lt;/strong&gt; 에서 &lt;strong&gt;Stamina&lt;/strong&gt; 를 추가한 뒤 &lt;strong&gt;Tables → Stamina (Energy)&lt;/strong&gt; 에 다음 행을 만듭니다.&lt;/p&gt;</description></item><item><title>6. 코인으로 스태미나 회복하기</title><link>/ko/get_start/adventure/lessons/06-shop/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/ko/get_start/adventure/lessons/06-shop/</guid><description>&lt;p&gt;퀘스트에서 모은 코인을 사용해 봅시다. 20코인으로 스태미나를 10 회복하는 상품을 &lt;code&gt;refill&lt;/code&gt;이라는 이름으로 등록합니다. 퀘스트 보상으로 받은 무상 코인으로 구매할 수 있게 합니다.&lt;/p&gt;&#10;&lt;h2 id="결제와-회복을-함께-처리하기"&gt;결제와 회복을 함께 처리하기&lt;a class="td-heading-self-link" href="#%ea%b2%b0%ec%a0%9c%ec%99%80-%ed%9a%8c%eb%b3%b5%ec%9d%84-%ed%95%a8%ea%bb%98-%ec%b2%98%eb%a6%ac%ed%95%98%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;코인 지불과 스태미나 회복을 하나의 트랜잭션으로 묶습니다. 코인이 부족하면 스태미나만 회복되는 일 없이 구매가 실패하도록 합니다.&lt;/p&gt;&#10;&lt;h2 id="따라-하기"&gt;따라 하기&lt;a class="td-heading-self-link" href="#%eb%94%b0%eb%9d%bc-%ed%95%98%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&#10;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="studio" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Studio&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="sdk (unity)" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; SDK (Unity)&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;h3 id="상품-표-만들기"&gt;상품 표 만들기&lt;a class="td-heading-self-link" href="#%ec%83%81%ed%92%88-%ed%91%9c-%eb%a7%8c%eb%93%a4%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Add features&lt;/strong&gt; 에서 &lt;strong&gt;Stamina Shop&lt;/strong&gt; 을 추가하고 &lt;strong&gt;Tables → Stamina product (EnergyProduct)&lt;/strong&gt; 에 다음 행을 만듭니다.&lt;/p&gt;</description></item><item><title>7. 설정을 바꾸고 게임에 반영하기</title><link>/ko/get_start/adventure/lessons/07-update/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/ko/get_start/adventure/lessons/07-update/</guid><description>&lt;p&gt;기본 기능이 완성되었으니 게임 내용을 바꿔 봅시다. 숲 탐험의 보상을 10코인에서 15코인으로 늘리고 &lt;strong&gt;동굴 탐험&lt;/strong&gt; 도 추가합니다. 설정을 바꾸면 화면과 실제 보상이 어떻게 달라지는지 확인합니다.&lt;/p&gt;&#10;&lt;h2 id="시작하기-전에"&gt;시작하기 전에&lt;a class="td-heading-self-link" href="#%ec%8b%9c%ec%9e%91%ed%95%98%ea%b8%b0-%ec%a0%84%ec%97%90" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;진행 중인 퀘스트를 클리어하고 구매 등의 처리가 끝난 뒤 설정을 변경합니다.&lt;/p&gt;&#10;&lt;h2 id="변경할-내용"&gt;변경할 내용&lt;a class="td-heading-self-link" href="#%eb%b3%80%ea%b2%bd%ed%95%a0-%eb%82%b4%ec%9a%a9" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;퀘스트&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;소비 스태미나&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;일반 보상&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;첫 클리어 보상&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;forest&lt;/code&gt; 숲 탐험&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;15코인&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;없음&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;cave&lt;/code&gt; 동굴 탐험&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;8&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;20코인&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;없음&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="따라-하기"&gt;따라 하기&lt;a class="td-heading-self-link" href="#%eb%94%b0%eb%9d%bc-%ed%95%98%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&#10;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="studio" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Studio&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="sdk (unity)" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; SDK (Unity)&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;h3 id="기존-행-수정하고-새-행-추가하기"&gt;기존 행 수정하고 새 행 추가하기&lt;a class="td-heading-self-link" href="#%ea%b8%b0%ec%a1%b4-%ed%96%89-%ec%88%98%ec%a0%95%ed%95%98%ea%b3%a0-%ec%83%88-%ed%96%89-%ec%b6%94%ea%b0%80%ed%95%98%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Tables → Quest (Quest)&lt;/strong&gt; 를 열고 다음과 같이 편집합니다.&lt;/p&gt;</description></item><item><title>8. 통신 오류와 연속 클릭에 대응하기</title><link>/ko/get_start/adventure/lessons/08-failures/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/ko/get_start/adventure/lessons/08-failures/</guid><description>&lt;p&gt;구매 버튼을 연속으로 누르거나 통신을 끊어 봅시다. 지금까지 사용한 플레이어로 진행합니다.&lt;/p&gt;&#10;&lt;h2 id="처리-중에-다시-눌러-보기"&gt;처리 중에 다시 눌러 보기&lt;a class="td-heading-self-link" href="#%ec%b2%98%eb%a6%ac-%ec%a4%91%ec%97%90-%eb%8b%a4%ec%8b%9c-%eb%88%8c%eb%9f%ac-%eb%b3%b4%ea%b8%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;코인을 20개 이상 준비합니다. 부족하면 퀘스트를 클리어하여 모읍니다.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;20코인으로 스태미나 10 회복&lt;/strong&gt; 을 누르고 곧바로 다시 눌러 봅니다.&lt;/li&gt;&#10;&lt;li&gt;처리 중에는 버튼이 비활성화되어 다음 구매를 시작할 수 없는지 확인합니다.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;코드는 조작을 시작할 때 &lt;code&gt;busy&lt;/code&gt;를 &lt;code&gt;true&lt;/code&gt;로, &lt;code&gt;finally&lt;/code&gt;에서 &lt;code&gt;false&lt;/code&gt;로 되돌립니다. 버튼 비활성화뿐 아니라 Studio의 &lt;code&gt;Run()&lt;/code&gt;과 SDK의 &lt;code&gt;RunWrite()&lt;/code&gt;도 처리 중 호출을 막습니다.&lt;/p&gt;&#10;&lt;p&gt;구매가 끝나 버튼이 다시 활성화된 뒤 누르면 새로운 구매가 됩니다.&lt;/p&gt;</description></item></channel></rss>