Auth and Friends Sample

인증 및 친구 샘플 프로젝트 살펴보기

10 분 소요

이 개요에서는 에픽 온라인 서비스(EOS) SDK를 사용하는 인증 및 친구(Auth and Friends) 샘플 프로젝트를 살펴봅니다.

이 인증 및 친구 샘플에서는 사용자 인증에 에픽 계정 서비스(Epic Account Services) 를 사용합니다. 유효한 애플리케이션에 상응하는 클라이언트 크리덴셜(Client Credentials)을 사용하여 EOS SDK를 초기화해야 합니다. 애플리케이션 셋업 방법은 개발자 포털(Developer Portal) 문서를 참조하세요. 이 샘플에서 시연하는 기능은 지원되는 모든 ID 제공자와 함께 사용할 수 있습니다.

소스 코드 및 프로젝트

인증 및 친구 프로젝트는 EOSSDK/Samples/AuthAndFriends/ 디렉터리 안에 있으며, 다음과 같은 하위 디렉터리로 구성됩니다.

하위 디렉터리콘텐츠
/Bin/게임의 실행 파일이 있는 출력 위치. 빌드 후에 실행 파일이 나타나는 하위 디렉터리는 구성 및 플랫폼에 따라 다릅니다.
/cmake/Mac과 Linux에서 CMake를 사용하여 빌드하는 데 필요한 도움말 파일.
/Intermediate/중간 빌드 파일.
/Source/프로젝트 소스 코드.

또한 EOSSDK/Samples/Shared/ 디렉터리에서 특정 공유 샘플 파일을 찾을 수 있습니다. 이러한 파일은 다음과 같은 하위 디렉터리로 분산됩니다.

하위 디렉터리콘텐츠
/Assets/공유 게임 런타임 텍스처 및 폰트 에셋.
/External/공유 라이브러리.
/Source/모든 공유 소스 코드.

Shared/Source/Core/ 디렉터리에는 EOS SDK를 사용하여 로그인하고, 사용자를 인증하고, 친구를 쿼리하는 샘플 코드가 포함되어 있습니다. 소스 디렉터리에는 게임 자체를 관리하는 코드도 포함되어 있습니다.

샘플 빌드하기

Windows DirectX

인증 및 친구 샘플을 컴파일하고 빌드하려면 Microsoft Visual Studio로 Samples.sln 을 열고 타깃 플랫폼(Win32 또는 Win64 )용으로 원하는 구성(Debug_DX 또는 Release_DX )을 빌드합니다.

빌드에 성공하면 구성 및 타깃 플랫폼에 따라 /Bin/ 디렉터리의 하위 디렉터리에 실행 파일(AuthAndFriends.exe )이 추가됩니다. 또한 하위 디렉터리에는 SDK 바이너리와 데이터 에셋의 사본이 추가됩니다.

Windows SDL

인증 및 친구 샘플을 컴파일하고 빌드하려면 Microsoft Visual Studio 2017로 Samples.sln 을 열고 타깃 플랫폼(Win32 또는 Win64 )용으로 원하는 구성(Debug_SDL 또는 Release_SDL )을 빌드합니다.

빌드에 성공하면 구성 및 타깃 플랫폼에 따라 /Bin/ 디렉터리의 하위 디렉터리에 실행 파일(AuthAndFriends.exe )이 추가됩니다. 또한 하위 디렉터리에는 SDK 바이너리와 데이터 에셋의 사본이 추가됩니다.

Mac OSX

Mac에서 빌드하려면 다음 종속성을 설치해야 합니다.

  • SDL2
  • SDL2_ttf
  • GLEW
  • cmake
  • gcc(Xcode의 Command Line Tools를 통해)

인증 및 친구 샘플을 컴파일하고 빌드하는 데 Build.sh 또는 Install.sh 를 사용할 수 있습니다.

  • 로컬 사용자 전용: Terminal에서 Build.sh 또는 Build.command 를 사용하여 샘플을 빌드하고, 샘플 폴더(/Build/AuthAndFriends.app)에서 로컬로 실행하는 데 필요한 최소한의 파일만 패키징합니다.

  • Terminal에서 Install.sh 또는 Install.command를 사용하여 샘플 애플리케이션 패키지(/Install/AuthAndFriends.app)와 함께 종속성(예: EOS SDK dynamic lib, SDL2 lib 등)을 패키징합니다. 그래야 다른 곳으로 샘플을 옮겨서 실행해도 정상적으로 실행됩니다.

AuthAndFriends 샘플을 실행하려면 Terminal에서 Run.command 또는 Run.sh 를 실행합니다.

Linux

Linux에서 빌드하려면 다음 종속성을 설치해야 합니다.

  • SDL2(런타임 + 헤더)
  • SDL2_ttf(런타임 + 헤더)
  • GLEW(런타임 + 헤더)
  • cmake
  • gcc/g++

인증 및 친구 샘플을 컴파일하고 빌드하려면 Terminal에서 Install.sh 를 실행합니다.

빌드에 성공하면 /Install/ 디렉터리에 실행 파일(AuthAndFriends )이 추가됩니다. 하위 디렉터리에 makefile 빌드 파일과 데이터 에셋의 사본도 포함됩니다.

AuthAndFriends 샘플을 실행하려면 Terminal에서 Run.sh 를 실행합니다.

Steam API로 인증하기

Steam 외부 인증(Steam External Auth)의 지원을 받아 인증 및 친구 샘플을 컴파일하고 빌드하려면 Microsoft Visual Studio에서 Samples.sln 을 열고 타깃 플랫폼(Win32 또는 Win64 )용으로 원하는 구성(Debug_DX_Steam , Release_DX_Steam , Debug_SDL_Steam 또는 Release_SDL_Steam )을 빌드합니다.

샘플이 Steam SDK의 파일을 참조합니다. 이 파일은 샘플 공유 폴더(아래 참조)로 다운로드하여 추출할 수 있습니다. public 폴더에는 Steam include 파일이 포함되어 있고, redistributable_bin 폴더에는 Steam LIB 및 DLL 파일이 포함되어 있습니다.

Samples.props 파일에는 Steam SDK 파일의 기본 경로가 ..\Shared\External\SteamSDKSteamSDK 프로퍼티가 포함되어 있습니다.

다른 위치에서 Steam SDK 파일을 참조하려면 이 경로를 변경해야 합니다.

테스트하려면 AuthAndFriends 프로젝트 루트 폴더(아래 참조)에 steam_appid.txt 를 생성하고 이 파일에 본인의 Steam 앱 ID(Steam App ID)를 추가합니다. 그러면 이 파일이 필요한 Steam DLL 파일(이미 빌드된 상태임)과 함께 복사됩니다.

빌드에 성공하면 구성 및 타깃 플랫폼에 따라 /Bin/ 디렉터리의 하위 디렉터리에 실행 파일(AuthAndFriends.exe )이 추가됩니다. 또한 하위 디렉터리에는 데이터 에셋, SDK 바이너리 및 Steam DLL 파일의 사본이 추가됩니다.

샘플을 실행하려면 Steam 클라이언트(Steam Client)를 실행해야 합니다.

샘플을 실행하면 샘플이 암호화된 Steam 앱 티켓(Encrypted Steam App Ticket)을 사용해 로그인을 시도합니다. 계정이 Steam에 아직 연결되어 있지 않은 경우 계정 포털로 이동하여 로그인하고 인증을 계속하면 로그인이 완료됩니다.

샘플 탐색하기

샘플을 탐색하려면 계속 읽어보면서 사용 가능한 명령줄 파라미터, 콘솔 명령 및 기능에 대해 알아보세요.

명령줄 파라미터

인증 및 친구 샘플은 다음과 같은 명령줄 파라미터 옵션을 지원합니다.

명령줄 파라미터용도설명
userid-userid <string>사용자 ID 상자는 <userid> 텍스트로 채워지며 로그인(LOGIN) 버튼을 클릭하면(또는 자동 로그인 프로세스를 통해) 사용자(ID <string>으로 지정)가 로그인됩니다. 또한 <userid>는 이메일, 이름 또는 Facebook ID가 될 수 있습니다.
password-password <string>암호 상자는 <password> 텍스트로 채워지며, 로그인(LOGIN) 버튼을 클릭하거나 자동 로그인 프로세스를 통해 사용자(암호 <string> 사용)가 로그인됩니다.
autologin-autologin 1EOS SDK가 초기화된 후 게임이 시작되면 useridpassword 로 지정된 사용자가 자동으로 로그인됩니다.
productid-productid <string>EOS SDK 플랫폼 옵션(EOS SDK Platform Options)을 생성할 때 제품 ID(Product ID)를 덮어씁니다. 기본값은 SampleConstants.ProductId 를 참조하세요.
sandboxid-sandboxId <string>EOS SDK 플랫폼 옵션을 생성할 때 샌드박스 ID(Sandbox ID)를 덮어씁니다. 기본값은 SampleConstants.SandboxId 를 참조하세요.
deploymentId-deploymentId <string>이 파라미터를 사용하면 EOS SDK 플랫폼 옵션을 생성할 때 디플로이 ID(Deployment ID)를 덮어쓸 수 있습니다. 기본값은 SampleConstants.DeploymentId 를 참조하세요.
clientid-clientid <string>이 파라미터를 사용하면 EOS SDK 플랫폼 옵션을 생성할 때 클라이언트 크리덴셜 ID(Client Credentials Id)를 덮어쓸 수 있습니다. 또한 기본값은 SampleConstants.ClientCredentialsId 를 참조하세요.
clientsecretclientsecret <string>이 파라미터를 사용하면 EOS SDK 플랫폼 옵션을 생성할 때 클라이언트 크리덴셜 암호(Client Credentials Secret)를 덮어쓸 수 있습니다. 또한 기본값은 SampleConstants.ClientCredentialsSecret 을 참조하세요.
fullscreen-fullscreen 1이 파라미터를 명령줄에 추가하면 게임이 전체 화면 모드(기본값은 창 모드)로 시작됩니다.
logfile-logfile <string><string>에서 지정한 파일 이름에 디버그 출력 로그가 기록됩니다. 또한 기본 디버그 출력 로그 파일은 'DebugOuput.log'이며, 솔루션 파일과 동일한 폴더에 저장됩니다.
devhost-devhost <string>Dev Auth 로그인 옵션의 호스트(Host) 포트 상자에 <string> 파라미터가 포함됩니다.
devcred-devcred <string>Dev Auth 로그인 옵션의 크리덴셜(Credentials) 상자에 <string> 파라미터가 포함됩니다.

콘솔 명령

인증 및 친구 샘플은 게임 속에서 입력할 수 있는 다음 콘솔 명령을 지원합니다.

콘솔 명령용도설명
TESTTEST콘솔에 테스트 메시지를 출력합니다.
CLEARCLEAR콘솔 출력 창의 모든 텍스트 라인을 지웁니다.
EXITEXIT게임을 종료하고 닫습니다.
LOGINLOGIN <USER_ID> <PASSWORD>사용자 ID <USER_ID>와 암호 <PASSWORD>로 사용자 로그인을 시도합니다.
LOGOUTLOGOUT <USER_NAME>이름이 <USER_NAME>인 사용자의 로그아웃을 시도합니다.
INVITEINVITE <FRIEND_NAME>표시 이름이 <FRIEND_NAME>인 사용자에게 친구 초대를 보냅니다.
PREVPREV이전에 로그인한 사용자의 정보를 표시합니다(둘 이상의 사용자가 로그인한 경우).
NEXTNEXT다음으로 로그인한 사용자의 정보를 표시합니다(둘 이상의 사용자가 로그인한 경우).
NEWNEW추가 사용자로 로그인할 수 있는 로그인 대화 상자를 표시합니다.
FRIENDSFRIENDS친구 오버레이를 엽니다.
HELPHELP위의 모든 콘솔 명령에 대한 정보를 콘솔 출력에 출력합니다.

더 많은 콘솔 명령을 추가하려면 Game.cppGame::CreateConsoleCommands 함수를 참조하세요.

기능

심플 프레임워크에는 로그인/로그아웃(Login/Logout) 기능, 콘솔 창(Console Window), 친구 목록(Friends List), 현재상태 정보(Presence Information)를 비롯한 몇 가지 기능이 있습니다.

로그인

다음 이미지에서 볼 수 있듯 친구(FRIENDS) 섹션에는 여러 가지 로그인 방법이 나타납니다. 로그인하려면 원하는 로그인 방법을 클릭하고 적절한 정보를 입력합니다. 그런 다음 로그인(LOG IN) 을 클릭하여 로그인 프로세스를 완료할 수 있습니다.

지원되는 로그인 방법이 표시된 로그인 패널

  • 디바이스 코드(Device Code): 에픽이 제공하는 코드가 포함된 URL을 사용해 로그인합니다.
  • 개발자 인증(Dev Auth): 개발자 인증 툴(Developer Authentication Tool) 크리덴셜을 사용해 로그인합니다.
  • 계정 포털(Account Portal): 에픽 계정과 연결하여 로그인합니다.

다음 이미지에서 볼 수 있듯 로그인에 성공하면 (오른쪽 상단에) 사용자 표시명이 표시됩니다.

EOS는 단일 시스템에서 복수의 동시 로그인을 지원합니다. 이 샘플에서는 새 계정(NEW) 버튼을 클릭하여 새 계정으로 로그인할 수도 있습니다. 동시에 여러 계정으로 로그인하면 왼쪽/오른쪽 화살표로 계정을 바꿀 수 있습니다.

디바이스 코드를 사용한 로그인 방법

이 로그인 방법을 선택하면 로그인 코드를 포함한 URL이 샘플로 전송됩니다. URL은 샘플의 콘솔 로그에서 찾을 수 있습니다. 친구(FRIENDS) 섹션에 URL을 복사하면 로그인됩니다. 이 프로세스를 취소하려면 팝업 창에서 취소(Cancel) 를 클릭합니다.

개발자 인증 방법

개발자 인증 방법으로 로그인하려면 개발자 인증 툴이 실행되고 있는 호스트 포트를 입력하고 이 툴이 제공하는 크리덴셜 정보를 입력합니다. 이 정보를 입력한 후 로그인(LOG IN) 을 클릭합니다.

계정 포털을 사용한 로그인 방법

계정 포털을 사용한 로그인 방법을 선택하면 웹 브라우저에서 에픽 계정 포털로 이동한 후 에픽 계정을 사용해 애플리케이션에 로그인할 수 있습니다. 웹 절차를 완료하면 샘플로 돌아갑니다.

로그아웃하기

로그아웃하려면 로그아웃(LOG OUT) 버튼을 클릭합니다.

콘솔 창

콘솔은 다양한 EOS SDK 작업의 관련 디버그 출력을 기록합니다. 또한 콘솔은 다음의 디버그 출력을 표시합니다.

함수텍스트 컬러
FDebugLog::Log()흰색
FDebugLog::LogWarning()주황색
FDebugLog::LogError()빨간색

참고: EOS SDK 작업의 오류는 빨간색 텍스트로 표시되고, 경고는 주황색 텍스트로 표시됩니다.

콘솔 창에 대해 자세히 알아보려면 다음 이미지를 참조하세요.

콘솔 출력 (1)은 관련 디버그 정보를 기록합니다. 또한 콘솔 명령 (2)를 입력하거나 콘솔 출력(3)에서 모든 항목을 지울 수 있습니다. 마지막으로, 콘솔 출력에서 노란색으로 하이라이트 표시된 텍스트를 선택하고 복사하려면 텍스트를 클릭해서 끌어온 후 Ctrl+C 키보드 조합을 사용합니다. 콘솔 출력 결과에 있는 텍스트를 전부 선택하려면 Ctrl+A 키보드 조합을 누릅니다.

참고: 텍스트가 클립보드에 복사됩니다.

친구 목록

친구 목록(Friends List) 은 창에 별도로 표시되는 섹션으로, 친구, 친구 상태, 친구 초대를 표시하고 상호작용할 수 있습니다. 친구 목록을 사용하려면 로그인이 필요합니다(아래 참조).

또한, 친구 목록에는 2가지 목적의 텍스트 필드가 포함됩니다. 첫째, 친구에게 표시 이름 필터를 적용할 수 있습니다. 둘째, 사용자 표시 이름을 입력하고 Enter 키를 누르면 새 친구를 검색할 수 있습니다. 입력한 표시 이름을 사용하는 친구가 사용자의 목록에 없다면 검색 후 해당 친구를 친구 추가 옵션과 함께 목록에 표시합니다(아래 참조):

+ 버튼을 누르면 친구 초대(friend invite) 가 사용자에게 전송됩니다. 사용자가 초대를 수락 또는 거절할 때까지 초대받은 친구가 친구 목록에 표시됩니다.

참고: 친구 초대가 수신되면 초대를 수락 또는 거절하는 버튼이 표시됩니다.

현재상태 정보

사용자가 초대를 수락하면 친구가 되므로 추가적인 정보를 표시할 수 있습니다. 예를 들어, 친구의 상태를 볼 수 있습니다(예: 온라인, 자리 비움, 오프라인). 또한 현재 게임 중인 친구의 현재상태 정보를 볼 수 있습니다. 친구 이름 옆의 녹색 라벨에는 친구가 현재 사용 중인 애플리케이션의 이름과 플랫폼이 표시됩니다(아래 이미지 참조).