4.4 게임 클라이언트와 서버의 상호 작용
게임 클라이언트가 서버에 데이터, 즉 메시지를 전달하면 서버는 이를 수신하여 메시지 내용에 따라 특정한 행동을 합니다. 반대로 서버에서 클라이언트에 메시지를 전달하면 클라이언트는 수신한 메시지 내용에 따라 특정한 행동을 합니다. 이렇게 메시지가 오가는 과정을 상호 작용(interaction)이라고 합니다.
게임 클라이언트와 서버의 상호 작용은 크게 네 가지로 구별됩니다.
• 연결
• 요청-응답
• 능동적 통보
• 연결 해제
연결이란 최초로 클라이언트가 서버와 데이터를 주고받을 준비를 하는 것입니다. 클라이언트에서 서버에 연결을 요청하면 서버는 이를 수락하여 클라이언트와 연결을 맺는 것입니다. 앞서 언급했던 TCP 연결이 이 과정 중 하나입니다.
연결을 마쳤으면 클라이언트는 서버에 메시지를 보내고, 서버는 이를 처리한 후 결과를 응답해 줍니다. 이 과정을 요청-응답 처리라고 합니다. TCP 연결을 했다고 해서 바로 모든 행동이 허락될 수는 없습니다. 클라이언트가 해커일 수도 있기 때문입니다. 일단 클라이언트가 서버와 연결되었으면 클라이언트는 서버에 “내가 누구인지” 알려 주기 마련입니다. 그리고 서버는 클라이언트의 신원을 확인하여 연결을 계속 유지할지 아니면 추방(연결 해제)할지 판단해야 합니다.