[TIL] 2025-03-20
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로 객체 상태를 자동 동기화해주는 기능입니다.
어떤 Property
나 Actor
를 Replicates = true
로 설정하면, Engine의 네트워킹 시스템이 주기적으로 해당 데이터를 관련된 Client들에게 보냅니다.
Replication은 단방향입니다. Server -> Client로만 갑니다.
변경 Event 자체를 보내지 않습니다.
RepNotify 등을 통해 값 변경 시점을 포착할 수 있습니다.
RPC (Remote Procedure Call)는 원격 머신에서 함수를 호출하는 명시적인 방법입니다.
Unreal에서 RPC는 UFUNCTION
에 Server
, 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가 공유된다.
댓글남기기