728x90
네트워크의 이해 - Property와 Function의 실행 제어
👉🏻MOD에서는 서버 - 클라이언트 모델을 지원한다. 서버와 클라이언트는 1:n관계이다.
- 클라이언트: 접속된 각각의 유저
- 서버: 클라이언트의 요청을 받는 서버
👉🏻서버의 특정 Property의 값을 바꾸면 클라이언트의 Property 값도 변경되지만 그 반대는 영향을 미치지 않는다. 그 이유는 둘은 다른 엔티티이기 때문이다.
📌실행 제어: 클라이언트의 Property 값이 변경될 때마다 서버의 Property 값을 변경시키는 것이 번거롭기 때문에 등장했다.
Property 실행 제어
👉🏻클라이언트의 Property 값이 변경될 때마다 서버의 Property 값을 변경시키면 서버에 과부하가 오게 된다. 때문에 동기화는 서버 → 클라이언트 단방향으로 진행된다. 기본적으로 Property는 동기화 옵션을 설정해준다.
- Sync: 동기화가 되는 Property
- None: 동기화가 되지 않는 Property
Function 실행 제어
👉🏻호출한 쪽이 서버인지 클라이언트인지 구분해 실행 제어하고 공간을 활성화한다. 공간을 활성화하면 function이 가질 수 있는 속성은 아래 5가지와 같다.
- Client: 서버 → 클라이언트 방향으로 함수 호출하고 클라이언트에 있는 함수가 실행된다.
- ClientOnly: 클라이언트에만 불릴 수 있다.
- Server: 클라이언트 → 서버 방향으로 함수 호출하고 서버에 있는 함수가 실행된다.
- ServerOnly: 서버에만 불릴 수 있다. 대부분의 로직은 서버 위주로 짠다.
- Multicast: 서버와 클라이언트 양쪽 모두 실행한다.
728x90