강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

tmaxMV님의 프로필 이미지
tmaxMV

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

시간 복잡도 관련 질문입니다

작성

·

122

0

안녕하세요.

강의를 수강하던 와중에 궁금한 점이 생겨 질문드립니다.

서버에서 packet 관련 로직을 처리하는데 n^2가 소요된다고 들었던 것 같습니다.

예를 들면 n개의 client에서 각각 1개의 packet을 받을 경우

1.

for(packet in packets){

  result = handlePacket(packet)

  for (client in clients){

    sendPacket(result);

  }

}

이런 식으로 n^2이 되는 것 같은데

패킷을 모아서 처리하게 된다면 

2.

for(packet in packets){

  result = handlePacket(packet)

}

for (client in clients){

    sendPacket(result);

}

이런식으로 n+n이 되는거 아닌가요?

또한 2와 같은 방식으로 코드를 짜시지 않은 이유가 궁금합니다.

2와 같은 방식이 불가능한건가요?

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

result = handlePacket(packet)

이 부분이 계속 바뀌기 때문입니다.
물론 좀 기다렸다가 패킷을 모아서 보낸다거나 할 수는 있습니다.

tmaxMV님의 프로필 이미지
tmaxMV

작성한 질문수

질문하기