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

AWS Cognito - 10) 관심사 분리

monstro 2026. 6. 7. 19:53
728x90
반응형

- 개요

관심사 분리(SoC)는 프로그램을 고유한 기능 역할에 따라 독립적인 모듈로 나누는 설계 원칙을 의미한다

이를 통해 코드의 재사용성 + 유지보수성 + 가독성을 높일 수 있고 시스템 관리를 용이하게 할 수 있다

이러한 설계 원칙을 프로젝트에 적용하여 하나의 중재자 클래스에 과도하게 역할이 적용되는 것을 방지한다

 

- 문제 상황

PortalManager가 처리하는 작업

 

현재 GameSession의 중간 단계에 존재하는 포탈에 대한 중재자는 위와 같이 2개의 역할을 수행하고 있다

게임에 참여 + 퇴장하는 GameSession에 관련된 역할과 로그인 + 회원가입과 같은 포탈에 관련된 역할을 전부 수행한다

 

- 해결 방안

컴포지션 기반의 컴포넌트 구조로 변경

 

기존의 조상 클래스를 상속(Is-A)하는 방식에서 수정하여 컴포지션(Has-A) 방식의 컴포넌트 구조로 변경한다

이를 통해 각각의 중재자 클래스의 용도에 따라 독립된 클래스를 생성할 수 있다

또 1개의 중재자 클래스1개의 데이터 애셋을 할당하여 관리할 수 있다

위와 같은 방식으로 수정하게 되면 위젯이나 다른 클래스들은 중재자 클래스를 필요에 따라 컴포넌트로 사용할 수 있다

728x90
반응형