Unity Apple Silicon IOS를 빌드할 때 발생하는 일부 충돌 문제가 수정됐습니다.
일부 오류 항목이 개선되었습니다.
이전 버전과 호환성이 유지됩니다.
1. 프라우드넷, 대학생 대상 게임 서버 개발 특강 개최
지난 4월 9일, 안양대학교에서 프라우드넷이 주최한 게임 서버 개발 특강이 성황리에 개최되었습니다! 이번 특강은 게임 개발에 있어 필수적인 서버 엔진 기술과 프라우드넷의 우수성을 소개하고, 학생들에게 실질적인 서버 개발 관련 지식과 경험을 전달하는 소중한 자리였습니다.💡
프라우드넷은 앞으로도 예비 개발자 학생들을 위해 다양한 교육 기회를 제공할 예정입니다.
#ForFutureDevelopers 🎮📚
2. 프라우드넷 고객사인 플린트의 새로운 작품 <별이 되어라2: 베다의 기사들>을 소개합니다!
<별이 되어라2: 베다의 기사들>은 2014년 발매된 <별이 되어라!>의 후속작으로, 어둡고 심오한 세계관과 매력적인 스토리텔링을 담고 있는 뛰어난 그래픽의 액션 MORPG 게임입니다. 2024년 4월 2일 정식 출시된 이 작품은 출시 1주일 만에 무려 260만 다운로드를 기록하며 게임 업계에서 크게 화제가 되었답니다!🔥🚀
특히 이 게임은 프라우드넷의 네트워크 서버 엔진을 활용하여 플레이어들에게 안정적이고 원활한 게임 플레이를 제공할 것으로 기대됩니다.
스레드 1개를 생성하고 제거하는 과정은 많은 처리량을 요구합니다. 또한 무언가를 실행중인 스레드가 많은 경우 운영 체제에 걸리는 부하가 상당합니다. 따라서 가능한 적은 갯수의 스레드를 유지하면서 스레드를 제거하거나 생성하는 과정을 최소화하기 위해서 스레드 풀 기능을 사용합니다.
스레드 풀은 미리 생성된 스레드들을 재사용하여 작업하는 방식으로, 이를 이용하면 스레드 생성 및 소멸의 비용을 절감하고 관리하기가 용이합니다.
2. 스레드 풀 생성 및 관리 팁
일반적으로 CPU 코어 수만큼 스레드를 할당하는 것이 좋습니다. 그러나 CPU burst time이 아닌 device burst time이 많은 경우에는 스레드 수를 늘려야 합니다. 예를 들어, 유저 DB에 접근하는 경우가 이에 해당합니다.
게임 서버의 로직이 여러 스레드에서 동시 접근가능한 구조로 만들어져 있으면 1개의 게임 서버 프로세스만 서버 컴퓨터에서 실행시켜도 무방합니다. 하지만, 게임 서버 로직이 단일 스레드에서만 실행될 수 있도록 critical section이나 mutex로 보호되고 있는 경우에는 여러 개의 게임 서버 프로세스를 실행하는 것이 바람직합니다.
3. 스레드 풀 최적화 및 모니터링
각 스레드가 일하는 작업의 종류에 따라 스레드 풀을 분할하고 관리할 수 있습니다. 오랫동안 대기하는 작업을 최소화하고, 스레드의 재사용을 촉진하여 자원을 효율적으로 활용할 수 있습니다. 또한, 서버의 부하나 트래픽 패턴이 변할 때마다 스레드 풀의 크기와 구성을 조정하여 최적의 성능을 유지합니다.
4. ProudNet 스레드 풀의 특징
프라우드넷의 스레드 풀은 socket layer와 user callback layer가 서로 다른 2중 구조로 설계되어 있어 뛰어난 안정성을 제공합니다.
Networker thread pool: ProudNet 내부 처리 전용으로 사용하며 소켓 I/O 처리 등을 담당합니다.
User worker thread pool: 사용자가 정의한 루틴을 실행하는 용도로 사용. RMI나 콜백 이벤트 등을 처리합니다.
이러한 구조로 인해 일반적인 스레드 풀과 다르게 프라우드넷은 동시 접속자가 많은 환경에서 발생하는 "starvation (유저들이 튕겨나가는 현상)"이 발생하지 않습니다.