그 땐 IT활동했지/그 땐 멋쟁이사자처럼했지

[멋쟁이사자처럼 X 넥슨] MOD Suppoters Hackathon 3주차 7/18일 회고 | 07 네트워크의 이해

루이란 2022. 7. 18. 20:58
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