질문 있습니다.
42
27 asked
안녕하세요. 강사님.
이전 강의에서 VisionCube::Update 함수에서
Spawn패킷 처리할 때 MergeFrom으로 복사를 하셨습니다.
이번 강의의
GameRoom::EnterGame 에서는
Spawn패킷을 참조형식으로 Add 했습니다.
제 생각에는
현재 잡방식이기 때문에 비동기로 처리되어 있고,
2) EnterGame보다 빈번하게 발생하는 VisionCube::Update에서는 복사로 Add를 진행한 것이고,
3)자주 발생하지 않는 EnterGame 함수여서
참조 값으로 Add 한것 인가요?
Answer 2
0
안녕하세요, 인프런 AI 인턴입니다. 김원태님.
강의 내용을 따라가시다 보면 여러 가지 패킷 처리 방식에 대해 궁금한 점이 생길 수 있습니다. 질문하신 내용에서, Spawn 패킷을 처리할 때 MergeFrom을 사용하여 복사하는 입력 방식과 참조 형식을 사용하는 방식의 차이점에 대해 말씀드리겠습니다.
패킷 처리 방식의 차이점
MergeFrom을 사용한 복사:
VisionCube::Update에서 패킷을 복사할 때MergeFrom을 사용합니다. 이는 패킷이 여러 곳에서 동시에 사용될 경우 잠재적인 데이터 충돌을 방지하기 위해 안전하게 복사본을 만들어서 처리하는 방법입니다.
- 특히,
Update는 주기적으로 매우 빈번하게 호출되기 때문에, 패킷 처리가 많은 양의 데이터를 신속하게 다룰 수 있도록 복사본을 만들어 데이터 무결성을 유지합니다.
참조 형식을 이용한 Add:
GameRoom::EnterGame에서 참조를 통해 패킷을 추가하는 방식은 패킷 생명이 짧거나 접근 빈도가 낮은 경우에 사용됩니다.
EnterGame은 상대적으로 이벤트 발생 빈도가 적기 때문에, 참조를 통한 데이터 전달이 효율적입니다. 이를 통해 메모리 사용을 최소화할 수 있습니다.
결론
패킷 처리 방법은 이벤트 발생 빈도와 데이터 무결성을 어떻게 유지할 것인지에 따라 결정됩니다. VisionCube::Update는 매 프레임 수행되는 빈번한 작업으로 데이터 무결성을 유지하기 위해 복사본을 사용하고, GameRoom::EnterGame은 발생 빈도가 낮아 참조를 통한 방법을 사용하는 예입니다.
관련하여 유사한 질문들이 있었던 링크를 참고하시면 이해에 더욱 도움이 되실 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
심리스 존 방식 난이도
0
86
2
RewardPlayer함수 에 대해서
0
55
1
모바일 데이터 환경에서의 렉 현상 문의 드립니다.
0
88
2
화살 처리 관련 질문이 있습니다!
0
116
1
part1~9 모두 완료하였습니다.
0
209
2
이번 수업 특히 좋았습니다
0
149
1
화살과 몬스터 버그와 관련한 질문입니다
0
169
3
DummyClient cpu스펙 질문있습니다.
0
120
2
InventoryManager 클래스에서 사소하지만 꼭 알고 싶은 사항이 있습니다
0
111
2
FANTASTIC UI STARTER PACK이 없네요..
0
119
1
면접 질문 드립니다.
0
146
1
로그인 정보 암호화는 어떻게 하나요?
0
231
2
조건식 중단점을 걸면 문제가 발생합니다
0
133
0
GenProto.bat 파일 오류
0
169
2
코드변경을 하면 오류가 생기는데요
0
188
2
아이템 슬롯 선적용에 대한 질문입니다
0
193
1
M1 M2강의의 경우 어느정도 수준이 필요한가요?
0
308
1
3~4일 간격으로 CPU 99% 사용되는 문제
0
421
2
JobSerializer 관련
0
287
1
3D 게임 이동 동기화
0
462
2
GameLogic 쓰레드에서 모든 GameRoom을 처리하나요?
0
255
1
Async와 Job방식의 차이가 궁금합니다.
0
293
1
EF사용시 async사용
0
254
1
해당 강의를 완강하면 실제 여러 대 PC의 환경에서 MMO구현이 가능할까요?
0
358
1

