소켓 프로그래밍 - 블로킹, 논 블로킹, 비동기, epoll, IOCP, IO Uring
1. 들어가며 게임을 만들며 게임 서버가 필요한 로직이 들어간다면 Photon, 프라우드넷 등 다양한 네트워크 엔진을 고려하게 됩니다. 모두 유용한 도구이고 특히 프라우드넷의 경우 마비노기 영웅전과 같은 대규모 온라인 게임에도 사용되었다는 점에서 검증은 충분히 된 편이라고 생각합니다. 저의 경우 Photon library를 과거 프로젝트에서 활용했었는데 사용하기 꽤 직관적인 편이었습니다. 하지만 보다 근본적으로 게임 서버 프로그래밍을 하고자 한다면 소켓 프로그래밍을 피할 수는 없습니다. 기존 웹 서버에서 사용하는 프레임워크와 서버를 얹어서 구축하기엔 실시간 게임에 사용하기에 성능이 현저히 부족할 수 밖에 없습니다.또한 웹에서도 요즘 Spring Web flux 등 비동기 프레임워크를 사용하거나 gRPC,..