본문 바로가기

전체 글

(228)
24-11-21 언리얼 네트워크 캐릭터 동기화 캐릭터 간에 동기화플레이어들의 움직임을 동기화 및 공격 시 데미지 연산 동기화 Multicast 는 서버가 호출해야 모든 클라에게 전달된다. 피스톨을 줍는 행위 자체를 서버에게 전달한다.서버는 해당 클라가 총의 소유 여부에 따라 부착 / 해제를 Multicast 로 모든 클라에게 전달한다.   MainUI 가 Local 에만 보인다. ( 총을 주운 클라만 )IsLocallyControlled 함수를 사용해서 로컬만 본인의 MainUI 를 가지고 있다.  로컬은 MainUI를 사용하지만 로컬이 아닌 클라는 머리 위에 HPBar 를 생성한다.  총을 쏘는 행위는 모든 클라가 확인해야한다 ( 동기화 )총 쏘는 행위를 Server 에게 알려주고 Multicast 를 호출하여 모든 클라가 총을 쏘는 행위를 동기화..
24-11-20 언리얼 네트워크 - 색상 동기화와 RPC RPC - 함수를 이용한 동기화 ( 이벤트와 같이 특정 한 번에 사용되어질 때 많이 사용 )리플리케이트 - 변수를 동기화 ( 빈번하게 변환되는 값들은 리플리케이트 ) 리플리케이트를 이용한 색상 동기화   굳이 시간까지 동기화가 필요가 없다. 서버만 시간을 쓰고 색상은 동기화하자  일단 리플리케이트 방식  함수를 이용한 생각 동기화   OnRep 함수는 클라이언트 입장에서만 동기화가 필요할 시에 호출된다. CPP 기준이다. 블루프린트에서는 OnRep 이 서버에서도 불려진다. 서버가 클라이언트의 함수를 호출 요청하면 클라이언트RPC클라이언트가 서버의 함수를 호출 요청하면 서버RPCMultiCastRPC 모든 클라이언트에게 신호를 보낼 때 모든 클라가 특정 함수를 호출한다. RPC를 이용한 크기 변경 언리얼의..
2024-11-19 언리얼 네트워크 동기화 RPC ( Remote Procedure Call ) 다른 주소 공간에서 함수나 프로시저를 호출하는 방법. 로컬 함수처럼 호출되지만, 실제로는 네트워크를 통해 다른 시스템에서 실행된다.   클라 -> 서버 ( Server RPC )일반적으로 클라이언트가 서버에 요청을 보내고 서버는 해당 요청을 처리한 후 결과를 반환합니다.    만약 A , B , C 객체가 있고 A 가 Liten  서버를 만든다면A 기준 A는 Invalid Connection,  B 는 Valid Connection, C 는 Valid Connection B 기준 A 는 Invalid Connection, B는 Valid Connection,  C는 Invalid Connection C 기준 A 는 Invalid Connection B..
바이트 패딩 바이트 패딩은 메모리 정렬 요구사항을 충족시키기 위해 구조체나 클래스의 멤버 사이에 추가적인 바이트가 삽입되는 현상이다. 데이터의 효율적인 접근을 도와주는 역할을 하기 때문에 접근에 대해서 성능 최적화 역할을 한다. 메모리 정렬이란?CPU는 특정 바이트가지의 데이터를 읽고 쓰는 것이 효율적이다.만약 4바이트 정렬이라면 필요한 데이터 타입은 메모리에서 4의 배수 주소에서 시작해야 최적의 성능을 제공한다. 정렬되지 않은 주소의 데이터를 읽고 쓰면 CPU가 추가 작업을 해야하는 단점이 생긴다. 바이트 패딩의 상황구조체 또는 클래스에서 멤버 변수를 나란히 배치할 때, 각 변수는 자신의 데이터 정렬 요구사항에 맞게 배치되야 한다.이때, 정렬을 맞추기 위한 패딩 바이트가 삽입된다. class WhatIsPaddin..
프로그래머스 - 섬 연결하기 #include #include #include using namespace std;bool Compare(vector& a, vector& b){ return a[2] & parent, int x){ if(parent[x] != x) { parent[x] = Find(parent, parent[x]); } return parent[x];}void Union(vector& parent, vector& rank, int x, int y){ int node1 = Find(parent, x); int node2 = Find(parent, y); if(node1 != node2) { if(rank[node1] > rank[node2..
백준 1644 소수의 연속합 소수 먼저 구하고 투 포인터로 해결 #include #include #include #include using namespace std;int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; vector nums(n+1, true); vector arr; for (int i = 2; i n) { sum -= arr[startIdx]; startIdx++; } else { answer++; if (endIdx
백준 - 12865 배낭 문제 무게를 인덱스로 활용 할 수 있어야한다.바텀업을 사용한다면 i,j 를 1부터 사용할 수 있다는 생각을 해야한다. #include #include #include #include #include using namespace std;vector> dp(101, vector(100001, 0));int Dp(vector>& thing, int n, int k){ for (int i = 1; i > n >> k; vector> thing(101); for (int i = 1; i > w >> v; thing[i].first = w; thing[i].second = v; } cout
24-11-13 ( 네트워크 1일차 ) 11.14 ~ 12.10 까지14 기획25 프로토02 알파10 베타  소켓 통신 : TCP / UDP ( 양방향 통신 )클라이언트와 서버 간에 통신이 서로 보내기 가능하다.클라가 요청안해도 서버가 정보를 클라에게 줄 수 있다.TCP : 검증 속도가 UDP 보다 느림, UDP : 검증 x 여서 빠르지만 데이터 유실 가능성 o 웹(HTTP) 통신 : 단방향 통신 ( 클라이언트가 서버에 요청 한 후에 서버가 답을 주는 형태 )Restful API 를 이용해서 URL로 통신 가능하도록 한다. ( 서버에서 API 로 통신 합시다 라고 하면 보통 이거임 )(POST, GET, PUT, DELETE) 사용POST : 데이터를 생성 ( 사이트에서 제공하는 DB에 데이터를 생성 저장 )GET : 데이터, 정보를 조회PU..