클라이언트-서버 모델
클라이언트-서버 모델은 서버가 하나 이상의 클라이언트에 리소스와 서비스를 제공하는 방식을 설명합니다. 서버의 예로는 웹 서버, 메일 서버, 파일 서버가 있습니다. 이러한 서버는 각각 데스크톱 컴퓨터, 노트북, 태블릿, 스마트폰과 같은 클라이언트 장치에 리소스를 제공합니다. 대부분의 서버는 클라이언트와 일대다 관계를 맺습니다. 즉, 하나의 서버가 동시에 여러 클라이언트에 리소스를 제공할 수 있습니다.
클라이언트가 서버에 연결을 요청하면 서버는 연결을 수락하거나 거부할 수 있습니다. 연결이 수락되면 서버는 특정 프로토콜을 통해 클라이언트와 연결을 설정하고 유지합니다. 예를 들어 이메일 클라이언트는 메시지를 보내기 위해 메일 서버에 SMTP 연결을 요청할 수 있습니다. 그러면 메일 서버의 SMTP 애플리케이션은 이메일 주소와 비밀번호 같은 인증 정보를 클라이언트에 요청합니다. 이러한 자격 증명이 메일 서버의 계정과 일치하면 서버는 이메일을 받는 사람에게 전송합니다.
온라인 멀티플레이어 게임도 클라이언트-서버 모델을 사용합니다. 한 가지 예로 World of Warcraft, StarCraft, Overwatch 등의 온라인 게임을 호스팅하는 Blizzard의 Battle.net 서비스가 있습니다. 플레이어가 Blizzard 애플리케이션을 실행하면 게임 클라이언트가 자동으로 Battle.net 서버에 연결됩니다. 플레이어가 Battle.net에 로그인하면 누가 온라인 상태인지 확인하고, 다른 플레이어와 채팅하고, 다른 게이머와 대결하거나 함께 경기를 할 수 있습니다.
인터넷 서버는 일반적으로 한 번에 여러 클라이언트에 연결을 제공하지만, 각 물리적 컴퓨터가 처리할 수 있는 트래픽에는 한계가 있습니다. 따라서 인기 있는 온라인 서비스는 분산 컴퓨팅이라는 기술을 사용해 클라이언트를 여러 물리적 서버에 분산합니다. 대부분의 경우 서버가 모두 동일한 서비스를 제공하므로 사용자가 어떤 특정 컴퓨터에 연결되어 있는지는 중요하지 않습니다.
NOTE: 클라이언트-서버 모델은 클라이언트가 서로 직접 연결하는 P2P 모델과 비교할 수 있습니다. P2P 연결에서는 각 컴퓨터가 클라이언트이자 서버 역할을 하므로 중앙 서버가 필요하지 않습니다.
지식 테스트하기