작성
·
287
·
수정됨
0
콜백 방식에 비해 이벤트 방식의 단점?이 와닿지 않아서 질문 남깁니다. 아마 제가 대규모 유저를 받는 환경의 코드를 아직 보지 못해서 그런 것 같아서 와닿지 않은것 같습니다.
설명해주신 내용은 클라 소켓 하나당 이벤트 하나를 대응시켜야 하는데 64개까지 제한이고, 여러명을 받는 서버의 코드는 코드가 간단하지 않다는 점을 단점으로 꼽으셨는데 와닿지 않습니다.
정말 이벤트를 64개 넘게 관찰해야 하는 상황이 있나요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
점심님, 이벤트 방식의 단점에 대한 근본적인 질문이시군요. 대규모 유저를 수용하는 게임 서버나 애플리케이션을 개발할 때는, 여러 소켓 연결이 동시에 발생하기 때문에 많은 이벤트를 처리해야 합니다. 만약 이벤트 기반 시스템이라면, 각 소켓 연결마다 이벤트 리스너를 등록하고 관리해야 하는데, 이는 제한된 수의 이벤트(예를 들어 64개)로 인해 병목 현상을 일으킬 수 있습니다.
전형적인 이벤트 기반 서버 구조에서는, 이벤트 리스너의 수를 넘어서는 소켓 연결이 발생할 경우, 하나의 이벤트 처리기가 여러 연결을 관리해야 하거나, 추가적인 로드밸런싱이 필요하게 되어 복잡성이 증가합니다. 또한, 이벤트 루프가 너무 가득 차면 새 이벤트를 처리하는 데 지연이 발생할 수 있어, 게임 서버에서는 실시간성이 매우 중요하기 때문에 성능 문제로 이어질 수 있습니다.
대규모 시스템 설계에 있어서 이러한 문제점은 고려해야 할 중요한 요소이며, 콜백 방식을 비롯해 다른 프로그래밍 모델을 비교 분석할 때 고려해야 하는 사항입니다. 실제로 이벤트를 64개 넘게 관찰해야 하는 상황은 대규모 온라인 게임이나 실시간 서비스를 운영할 때 매우 흔히 발생할 수 있습니다.
이론적인 이해를 넘어서 실제로 대규모 서비스의 코드를 경험하면 이벤트 방식의 한계를 좀 더 실감할 수 있을 것입니다. 개발하시는 MMORPG 서버에서 많은 유저들을 동시에 처리해야 할 때 이러한 고려사항이 보다 명확해질 수 있을 것입니다.