언리얼 엔진 - 게임 프로젝트/AWS GameLift를 활용한 데디케이트 FPS 프로젝트

AWS Cognito - 11) 중재자 클래스 분리 + Cognito 반환값 구조체

monstro 2026. 6. 11. 11:34
728x90
반응형

- 개요

이전에 알아본 관심사 분리를 적용하여 GameSession의 중간 단계를 처리하는 Portal 중재자

GameSession 관련 작업을 처리하는 중재자로 분리한다

또, AWS Cognito 관련 작업에 대한 데이터를 저장하는 구조체를 추가한다

 

- 스크립트 작업

1) HTTPRequestTypes 클래스

회원가입 관련 구조체

 

AWS Cognito의 회원가입 관련 구조체를 2개 추가한다

FCodeDeliveryDetails 구조체를 사용하여 인증 코드어디로 어떻게 발송되었는지에 대해 저장한다

FDSSignUpResponse 구조체를 사용하여 회원가입 요청을 보낸 후 서버로부터 받는 응답을 저장한다

 

로그인 및 인증 관련 구조체

 

AWS Cognito의 로그인 + 인증 관련 구조체를 2개 추가한다

FDSNewDeviceMetaData 구조체를 사용하여 새로운 기기브라우저에서 로그인했을 때 기억하거나 인증한다

FDSAuthenticationResult 구조체를 사용하여 로그인이 성공했을 때 발급되는 토큰 세트 인증 결과를 저장한다

 

챌린지(추가 인증) 관련 구조체

 

AWS Cognito의 챌린지(추가 인증) 관련 구조체를 추가한다

FDSChallengeParameters 구조체를 사용하여 추가 인증시에 클라이언트에게 요구하는 파라미터를 저장한다

FDSInitiateAuthResponse 구조체를 사용하여 로그인을 처음 시도했을 때 서버가 반환하는 전체 응답을 저장한다

 

 

추가한 각 구조체들의 Dump 함수를 위와 같이 정의한다

멤버변수들을 로그로 찍어 출력한다

 

2) SignInOverlay 클래스

제거하는 함수

 

로그인 UI에 존재하던 GameSession 관련 2개의 함수를 제거한다

 

 

NativeConstruct 함수에서 버튼에 GameSesssion 관련 함수를 바인드하는 로직을 제거한다

 

3) PortalManager 클래스

 

GameSession의 중간 단계를 처리하는 Portal의 중재자 클래스에서

GameSession 관련 멤버변수와 함수, 델리게이트를 제거한다

 

Portal 중재자 클래스의 cpp 파일

 

최종적으로 Portal의 중재자 클래스의 cpp 파일은 위와 같이 구성된다

 

4) GameSessionsManager 클래스

 

Portal 중재자 클래스에서 제거한 GameSession 관련 요소GameSessions 중재자 클래스로 이주하였다

 

GameSessions 중재자 클래스의 cpp 파일 일부

 

GameSession 함수 정의부를 GameSessions 중재자 클래스의 cpp 파일로 이주하였다

 

- 블루프린트 작업

1) BP_PortalManager 블루프린트

 

PortalAPI 데이터 애셋을 사용하도록 수정한다

 

2) BP_GameSessionsManager 블루프린트

 

GameSessions 중재자 클래스의 블루프린트를 생성하고 GameSessionsAPI 데이터 애셋을 사용하도록 설정한다

728x90
반응형