동기
Stateful (동기) / Stateless (비동기) 서버
Stateful (실시간 온라인 게임) 게임서버 Stateless (비실시간 비동기 온라인 게임) 게임서버 이 두 가지의 서버기술은 완전히 다른 방식의 기술을 사용한다. 먼저 게임의 종류에 대해 알아보자. 게임은 크게 '실시간 온라인 게임'과 '비실시간 비동기 온라인 게임'으로 나뉜다. 실시간/비실시간 게임 실시간 온라인 게임 리니지 LOL 오버워치 크레이지아케이드 이런 실시간 온라인 게임들은 다수의 유저들과 실시간 액션 플레이를 해야한다. 그렇기 때문에 모든 클라이언트는 서버에 접속하여 연결을 유지한 상태로 플레이를 진행한다. 또한 게임의 로직과 전투의 판정 등, 모든 데이터와 결정은 게임서버가 주도적으로 진행해야만 한다. 우리는 이런 게임을 ‘실시간 온라인 게임’ 이라고 부르며 이런 목적의 게임 서버..
C++ 동기(synchronous)와 비동기(asynchronous) / 블로킹(blocking)과 논블로킹(non-blocking)
1. 동기(Synchronous)와 비동기(Asynchronous) 개념 동기는 요청과 그 결과가 동시에 일어난다 비동기는 요청과 그 결과가 동시에 일어나지 않는다 1) 동기의 예 일반적으로 사용하는 함수들은 대부분 동기적 방식이다. C언어의 scanf()와 Java의 Scanner 객체의 next()메서드 같이 사용자의 입력을 받는 함수들이 그 예이다. Scanner sc = new Scanner(System.in); int num = sc.nextInt(); sc.nextInt() 결과 사용자가 입력을 하면, 그 값은 num이라는 변수에 담긴다. 즉, nextInt() 메서드를 호출하고 그 결과를 자신이 직접 처리 했다. 2) 비동기의 예 다음은 JS의 setTimeout() 함수이며, 비동기 방식의..