[08]에서 코루틴을 통해 비동기적 메소드로 서버를 돌리려고 시도했지만, 이런 저런 이유들로 안됐다.
결국은 Accept -> BeginAccept로 가는 방식을 사용해서 해결하기로 마음먹었지만, 의문이 생겼다.
Coroutine도, Thread도 비동기적으로 실행되는 것처럼 보이는데, 왜 둘은 다른가?
-> 둘 다 동시 실행처럼 보이지만, 사실 Coroutine는 스케쥴링(순서 알잘딱)에 의한 지연실행에 불과하기 때문. 매 프레임을 기준으로 코루틴을 확인하는 과정을 해줄 뿐이다.
그래서 만약 코루틴의 과정에 문제가 생긴다면, 메인 동작도 영향을 받는다.(결국은 순차적 실행이기 때문에, 앞의 작업이 완료되지 않으면 뒤로 가지 못한다.) -> 참고자료 https://planek.tistory.com/36
즉, 네트워크같은 구조를 게임 내부 실행과 관계없이 하고 싶다면 결국은 쓰레드에서 처리해야한다는 결론이 나온다.
그런데 직접 쓰레드를 건드는 방법말고, 다른 방법도 있다고 하는데?
https://docs.unity3d.com/2022.3/Documentation/Manual/JobSystem.html
Unity - Manual: Job system
docs.unity3d.com
유니티에서 지원하는 Job System이 바로 그것. 이 부분을 ECS(Entity Component System)와 같이 공부해보고 나머지를 진행하자. 공부가 끝나면 추후 수정될 포스터이다.
'IndianPoker' 카테고리의 다른 글
[11] Battle Scene (1) | 2023.11.17 |
---|---|
[10] 게임 구조 설계 겸 튜토리얼 장면 만들기 (0) | 2023.11.15 |
[08] UI와 Scene, 스크립트 정리 + 서버 의문 (0) | 2023.11.10 |
[07] 채팅창 UI 만들기, TMP로 한글 쓰기 (0) | 2023.11.01 |
[06] TCP, 클라이언트 만들기 (1) | 2023.10.28 |