2025-03-20 TIL

알고리즘 문제

처음에는 모든 숫자들의 조합을 어떻게 생성해야할지 고민을 했었는데, 해당 부분을 해결한 후 소수를 판별하고 개수를 세는 것은 어렵지 않았습니다.
순열이나 백트래킹에 대해 좀 더 학습해볼 필요를 느꼈고, 순열과 백트래킹으로 조합을 만들 수 있다는 것을 잘 기억해야할 것 같습니다.
[프로그래머스][C++] 소수 찾기

디자인 패턴

프록시 패턴은 동일한 인터페이스를 구현하고, 원본 객체처럼 사용하며, 추가 로직을 수행한다는 개념을 이해했습니다.
하지만 실제 프로젝트에 구현하기에는 아직 부족한 것 같습니다.
굉장히 중요한 개념이라고 생각되기 때문에 제대로 이해하고, 외우고 있을 수 있도록 복습을 자주 해야할 것 같습니다.
[Design Pattern] Proxy Pattern(프록시 패턴)

파사드 패턴은 여러가지의 서브시스템을 하나의 인터페이스로 통합해서 여러 기능을 쉽게 사용할 수 있게 해주는 디자인패턴이라고 개념을 이해했습니다.
프록시 패턴보다 이해하기 간단했고, 몇 번의 연습을 통해 실제 프로젝트에 구현해볼 수 있을 것 같습니다.
파사드 패턴 또한 중요한 개념이라고 느껴지고, 확실하게 이해하고 사용 할 수 있도록 복습해야할 것 같습니다.
[Design Pattern] Facade Pattern(파사드 패턴)

기타

언리얼 엔진의 멀티플레이와 Replication과 RPC에 대해 학습했습니다.

언리얼 엔진은 멀티플레이어 게임에서 Server-Client 구조를 사용합니다.

여러 실행 모드를 지원합니다.

  • Standalone: 네트워킹을 고려하지 않는 단일 인스턴스
  • Dedicated Server: Server 전용 인스턴스
  • Listen Server: 한 플레이어가 동시에 Server 호스트 역할
  • Client: 호스트가 아닌 모든 플레이어

Replication은 Server에서 Client로 객체 상태를 자동 동기화해주는 기능입니다.
어떤 PropertyActorReplicates = true로 설정하면, Engine의 네트워킹 시스템이 주기적으로 해당 데이터를 관련된 Client들에게 보냅니다.
Replication은 단방향입니다. Server -> Client로만 갑니다.
변경 Event 자체를 보내지 않습니다.
RepNotify 등을 통해 값 변경 시점을 포착할 수 있습니다.

RPC (Remote Procedure Call)는 원격 머신에서 함수를 호출하는 명시적인 방법입니다.
Unreal에서 RPC는 UFUNCTIONServer, Client, NetMulticast 같은 지정자를 붙여 만들며, 이를 호출하면 설정된 대상(Server 또는 Client들)에서 함수가 실행됩니다.
RPC의 종류에 따라 방향 지정이 가능합니다.

  • Server RPC: Client -> Server로 호출하며, Server에서 실행합니다.
  • Client RPC: Server -> Client로 호출하며, Client에서 실행합니다.
  • Multicast RPC: Server -> 모든 Client

일반적으론 지속적인 상태의 동기화에는 Replication된 Property를 사용하고, 일회성 Event와 같을 때 RPC를 사용합니다.
Replication = 값 동기화, RPC = 원격 함수 호출

Replication은 프레임마다 혹은 필요한 시점마다 값을 보내주며 내부적으로 최적화합니다.
RPC는 개발자가 필요한 순간에 직접 호출해야 하고, 호출할 때마다 네트워크 Packet을 생성합니다.

여러 변수의 Replication은 한 번에 뭉쳐서 보내지고, 특정 순서를 보장하지 않습니다.

RPC는 Reliable로 보낼지 Unreliable로 보낼지 선택할 수 있는데, 같은 종류의 RPC들끼리는 호출 순서가 보장됩니다.

해당 내용과 좀 더 자세한 내용은 나중에 따로 글을 작성하면서 정리해볼까 합니다.


단일 프로세스 하 실행 중일 경우 뷰포트의 print가 공유된다.

Date:     Updated:

카테고리:

태그:

TIL 카테고리 내 다른 글 보러가기

댓글남기기