Title Storage Sample

타이틀 스토리지 샘플 개요

5 분 소요
EOS SDK 타이틀 스토리지 샘플

시작하기에 앞서

타이틀 스토리지 샘플(Title Storage Sample)에픽 계정 서비스(Epic Account Services) 를 사용하여 시연 목적으로 로컬 사용자를 인증합니다. 이를 위해서는 에픽 온라인 서비스(Epic Online Service, EOS) SDK를 개시하는 데 사용된 클라이언트 크리덴셜이 에픽 계정 서비스에 사용된 애플리케이션(Application) 에 할당되어 있어야 합니다.

이 샘플에서 시연된 SDK 기능은 사용자 인증에 대해 지원되는 모든 ID 제공자에서 사용 가능합니다.

타이틀 스토리지 인터페이스는 파일을 업로드 또는 태그할 수 없으므로 개발자 포털을 통해서 해야 합니다. 개발자 포털을 통해 파일을 업로드할 때 사용하는 암호 키(Encryption Key) 는 샘플 내 SampleConstants.h 와 반드시 일치해야 한다는 점을 유의하세요. 그러지 않으면 다운로드 후 암호 해독 단계에서 잘못된 결과를 도출합니다.

샘플 탐색하기

타이틀 스토리지 샘플은 귀하의 제품과 관련된 클라우드 스토리지를 위한 단순한 파일 탐색기입니다. 사용자 계정으로 로그인 또는 로그아웃할 수 있습니다. 로그인 중에 제품과 관련된 파일을 탐색하고, 다운로드하고, 볼 수 있습니다. 개발자 포털을 통해 파일을 태그했다면 해당 태그를 바탕으로 쿼리를 수행할 수 있습니다.

타이틀 스토리지 패널

타이틀 스토리지 샘플을 시작하려면 유저 인터페이스의 우측에서 타이틀 스토리지(Title Storage) 패널을 찾아서 호스트 주소와 (개발자 인증 툴의) 사용자 크리덴셜을 입력하고 로그인(Log In) 버튼을 눌러 로그인합니다.

로그인 화면

타이틀 스토리지 샘플의 로그인 화면입니다. 이미지를 클릭하면 확대됩니다.

로그인한 뒤에는 제품과 관련된 파일이 있는 경우 쿼리, 다운로드, 열람이 가능합니다. 로그인 버튼은 로그아웃 버튼으로 바뀌며, 파일과 상호작용하기 위한 유저 인터페이스를 사용할 수 있게 될 것입니다.

타이틀 스토리지 메인 패널

타이틀 스토리지 페이지의 메인 패널입니다. 이미지를 클릭하면 확대됩니다.

타이틀 스토리지 샘플은 다음 기능을 제공합니다.

  • 다운로드(Download) : 파일 하나를 다운로드합니다. 다운로드(Download) 버튼 옆 필드에 다운로드할 파일의 이름을 입력하고 버튼을 누릅니다. 백엔드 서비스가 파일 오버라이드 세팅을 바탕으로 어떤 파일을 보낼지 결정하며, 보낼 파일이 있으면 샘플이 해당 파일을 다운로드하여 파일 목록에 추가합니다. 다운로드가 완료되면 목록에서 파일을 눌러 콘텐츠를 볼 수 있습니다.
  • Query(쿼리) : 하나 이상의 태그 세트가 있는 모든 파일을 파일 목록에 추가합니다. 쿼리에 포함하려는 태그를 태그 추가(Add Tag) 버튼 옆 텍스트 필드에 하나씩 입력한 다음, 버튼을 눌러 태그 목록에 추가합니다. 언제든지 목록 지우기(Clear List) 버튼을 눌러 태그 목록을 지울 수 있습니다. 쿼리에 사용할 태그가 모두 목록에 있으면 목록 쿼리(Query List) 버튼을 눌러 입력한 태그를 하나 이상 포함하는 모든 파일을 창 하단의 파일 목록에 추가합니다. 파일을 선택하고 다운로드(Download) 버튼을 누르면 목록에서 파일을 다운로드하여 파일의 콘텐츠를 볼 수 있습니다.

콘솔 패널

콘솔 명령어 결과 등 프로그램 작동 도중 발생하는 로그 출력은 유저 인터페이스 좌측 하단에 나타나는 콘솔(Console) 패널 상단의 텍스트 영역에 표시됩니다. 타이틀 스토리지 패널에서 버튼을 누르는 대신, 콘솔 패널 하단에 콘솔 명령어를 입력할 수 있습니다.

타이틀 스토리지 샘플 콘솔 패널

타이틀 스토리지 샘플의 콘솔 패널입니다. 이미지를 클릭하면 확대됩니다.

지원하는 명령어는 다음과 같습니다.

명령어실행인자행동
GETFILEFILE_NAME클라우드에서 이름으로 파일을 지정하여 다운로드합니다.
TESTFILEFILE_NAME , FILE_PATH타이틀 스토리지 인터페이스에서 FILE_NAME 을 가져와서 그 콘텐츠를 FILE_PATH 의 암호화되지 않은 로컬 파일과 비교합니다.
HELP(없음)상기한 모든 명령어에 대한 도움말 정보를 콘솔 출력에 프린트합니다.

Game.cppGame::CreateConsoleCommands 함수에서 고유한 콘솔 명령어를 추가할 수 있습니다.

파일 패널

파일(File) 패널은 타이틀 스토리지 패널에서 현재 선택된 파일의 콘텐츠를 표시합니다.

프로그레스 바 창

타이틀 스토리지 샘플이 수행하는 파일 전송 작업은 비동기적입니다. 이 작업을 수행하는 동안 샘플은 진행률 표시줄과 취소(Cancel) 버튼이 있는 팝업인 프로그레스 바(Progress Bar) 창을 표시합니다. 사용자는 취소(Cancel) 버튼을 클릭하여 파일 전송을 중단할 수 있습니다. 타이틀 스토리지 인터페이스는 여러 파일을 동시에 전송할 수 있지만, 이 샘플은 한 번에 하나의 파일만 전송합니다.

파일 전송 상황

파일 전송이 진행 중인 모습입니다. 이미지를 클릭하면 확대됩니다.

소스 코드 살펴보기

데이터 파일과 상호작용하는 코드 대부분은 Samples/TitleStorage/Source/TitleStorage.cpp 에 있습니다. 다음 함수는 타이틀 스토리지 인터페이스와 직접 상호작용합니다.

함수 이름행동
QueryList현재 선택된 태그를 바탕으로 파일 엔트리 목록을 가져옵니다.
StartFileDataDownload지정된 파일의 콘텐츠를 가져옵니다.
CancelCurrentTransfer현재 진행 중인 파일 전송을 취소합니다.

다음 함수는 타이틀 스토리지 인터페이스를 직접 사용하지 않지만, 로컬 시스템의 관련 데이터와 상호작용합니다. 파일에 대해 로컬로 캐시된 정보를 관리하는 시스템을 빌드할 때 기본 가이드로 유용합니다.

함수 이름행동
GetFileList로컬 파일 리스트를 반환합니다.
SetFileList로컬 파일 목록을 설정합니다.
GetLocalData지정된 파일에 대해 로컬로 캐시된 데이터를 반환합니다. 로컬로 사용 가능한 데이터가 없으면 NoData 플래그가 true 로 설정됩니다.
SetLocalData지정된 파일에 대한 로컬 데이터를 설정합니다.
EraseLocalData지정된 파일에 대한 로컬 데이터를 삭제합니다.
AddTag목록 쿼리에서 사용할 새 태그를 현재 선택된 태그 세트에 추가합니다.
ClearTags현재 선택된 태그를 모두 제거합니다
GetCurrentTags선택된 태그를 얻습니다