서버

섬네일|right|200px|인터넷을 통해 서버 컴퓨터와 통신하는 클라이언트 컴퓨터의 컴퓨터 망 다이어그램
섬네일|위키미디어 재단 데이터 센터 랙에 설치된 랙마운트 서버
섬네일|최초의 WWW 서버는 유럽 입자 물리 연구소에 위치하며, "이 기기는 서버입니다. 전원을 끄지 마세요!!"라고 쓰인 원래 스티커가 붙어 있다.

서버(, )는 컴퓨터 망에서 "클라이언트"라고 불리는 다른 컴퓨터에 정보를 제공하는 컴퓨터이다. 이 아키텍처를 클라이언트 서버 모델이라고 부른다. 서버는 종종 "서비스"라고 불리는 다양한 기능을 제공할 수 있으며, 예를 들어 여러 클라이언트 간에 자료나 리소스를 공유하거나 클라이언트를 위해 컴퓨테이션을 수행하는 등이 있다. 단일 서버는 여러 클라이언트를 서비스할 수 있으며, 단일 클라이언트는 여러 서버를 사용할 수 있다. 클라이언트 프로세스는 동일한 장치에서 실행될 수도 있고, 네트워크를 통해 다른 장치의 서버에 연결될 수도 있다. 일반적인 서버로는 데이터베이스 서버, 파일 서버, 메일 서버, 인쇄 서버, 웹 서버, 게임 서버, 웹 애플리케이션 서버 등이 있다.

클라이언트-서버 시스템은 일반적으로 요청-응답 모델에 의해 가장 자주 구현되고 (그리고 종종 그렇게 식별된다): 클라이언트가 서버에 요청을 보내면, 서버는 어떤 동작을 수행하고 일반적으로 결과나 승인과 함께 클라이언트에게 응답을 보낸다. 컴퓨터를 "서버 클래스 하드웨어"로 지정한다는 것은 서버를 실행하는 데 특화되어 있음을 의미한다. 이는 종종 일반적인 개인용 컴퓨터보다 더 강력하고 신뢰할 수 있음을 의미하지만, 대규모 컴퓨팅 클러스터는 많은 비교적 간단하고 교체 가능한 서버 구성 요소로 구성될 수도 있다.

 역사 
컴퓨팅에서 '서버'라는 단어의 사용은 대기행렬이론에서 유래했으며, 20세기 중반으로 거슬러 올라가 에서 (서비스와 함께) 두드러지게 사용되었는데, 이 문서는 켄달의 표기법을 소개했다. 와 같은 초기 문서에서는 "[전화] 교환원"과 같이 보다 구체적인 용어가 사용되었다.

컴퓨팅에서 "서버"는 아파넷 (인터넷의 전신)을 설명하는 가장 초기 문서 중 하나인 RFC 5 (1969)부터 사용되었으며, "사용자"와 대조하여 "서버 호스트"와 "사용자 호스트"라는 두 가지 유형의 호스트를 구별한다. "서비스"의 사용 또한 RFC 4와 같은 초기 문서에서 "서비스 호스트"와 "사용 호스트"를 대조하는 방식으로 거슬러 올라간다.

자곤 파일은 서버를 일반적으로 원격으로 요청에 대해 서비스를 수행하는 프로세스라는 의미로 정의하며, 1981년 버전에서는 다음과 같이 기술하고 있다:
 2000년대 초반 서버의 평균 활용률은 5~15%였지만, 가상화가 도입되면서 이 수치는 필요한 서버 수를 증가시키기 시작했다.

 작동 방식 
섬네일|중앙 집중식 서버에서 여러 개별 클라이언트가 서비스와 리소스를 요청하는 클라이언트 서버 모델 기반의 네트워크
엄밀히 말해 서버라는 용어는 컴퓨터 프로그램 또는 프로세스 (실행 중인 프로그램)를 의미한다. 환유를 통해 이는 하나 또는 여러 서버 프로그램을 실행하는 데 사용되는 (또는 전용으로 사용되는) 장치를 의미한다. 네트워크에서 이러한 장치를 호스트라고 부른다. 서버 외에 serve와 service (각각 동사와 명사)라는 단어가 자주 사용되지만, servicer와 servant는 그렇지 않다. 서비스(명사)라는 단어는 추상적인 기능 형태, 예를 들어 웹 서비스를 나타낼 수 있다. 또는 컴퓨터를 서버로 바꾸는 컴퓨터 프로그램, 예를 들어 윈도우 서비스를 나타낼 수 있다. 원래 "서버는 사용자를 서비스한다" (그리고 "사용자는 서버를 사용한다")는 의미로 "복종하다"의 의미로 사용되었지만, 오늘날에는 종종 "서버는 자료를 제공한다"고 말하는데, 이는 "제공하다"와 같은 의미이다. 예를 들어, 웹 서버는 "사용자에게 웹 페이지를 [제공]한다" 또는 "요청을 서비스한다"고 말한다.

서버는 클라이언트 서버 모델의 일부이다. 이 모델에서 서버는 클라이언트에게 자료를 제공한다. 클라이언트와 서버 간의 통신 특성은 요청-응답이다. 이는 관계가 온디맨드 상호 호혜적인 P2P 모델과는 대조된다. 원칙적으로 다른 프로세스(특히 원격으로, 특히 리소스를 공유하기 위해)에 의해 사용되거나 호출될 수 있는 모든 전산 프로세스는 서버이며, 호출하는 프로세스 또는 프로세스는 클라이언트이다. 따라서 네트워크에 연결된 모든 범용 컴퓨터는 서버를 호스팅할 수 있다. 예를 들어, 장치의 파일이 어떤 프로세스에 의해 공유된다면, 그 프로세스는 파일 서버이다. 마찬가지로, 웹 서버 소프트웨어는 모든 유능한 컴퓨터에서 실행될 수 있으므로, 랩톱이나 개인용 컴퓨터도 웹 서버를 호스팅할 수 있다.

요청-응답은 가장 일반적인 클라이언트-서버 설계이지만, 발행-구독 모델과 같은 다른 설계도 있다. 발행-구독 모델에서는 클라이언트가 지정된 유형의 메시지를 구독하여 발행-구독 서버에 등록한다. 이 초기 등록은 요청-응답 방식으로 이루어질 수 있다. 이후 발행-구독 서버는 추가 요청 없이 일치하는 메시지를 클라이언트에 전달한다. 즉, 요청-응답 방식처럼 클라이언트가 서버에서 메시지를 끌어오는 대신 서버가 메시지를 클라이언트에 푸시한다.

 목적 
서버의 역할은 자료를 공유하는 것뿐만 아니라 리소스를 공유하고 작업을 분배하는 것이다. 서버 컴퓨터는 자체 컴퓨터 프로그램도 서비스할 수 있으며, 시나리오에 따라 대가성 거래의 일부일 수도 있고 단순히 기술적 가능성일 수도 있다. 다음 표는 서버가 사용되는 여러 시나리오를 보여준다.

인터넷의 거의 전체 구조는 클라이언트-서버 모델을 기반으로 한다. 상위 수준의 루트 네임서버와 DNS, 라우터는 인터넷상의 트래픽을 지시한다. 인터넷에는 수백만 개의 서버가 연결되어 전 세계적으로 지속적으로 실행되고 있으며 일반 인터넷 사용자가 취하는 거의 모든 행동은 하나 이상의 서버와의 상호 작용을 필요로 한다. 전용 서버를 사용하지 않는 예외도 있다. 예를 들어, P2P 파일 공유 및 일부 전화 구현 (예: Microsoft 이전의 스카이프)이 있다.

 하드웨어 
섬네일|상단 덮개를 제거하여 내부 구성 요소를 드러낸 랙마운트 서버

서버의 목적과 소프트웨어에 따라 서버의 하드웨어 요구 사항은 크게 달라진다. 서버는 종종 연결되는 클라이언트보다 더 강력하고 비싸다.

서버라는 이름은 하드웨어와 소프트웨어 모두에 사용된다. 하드웨어 서버의 경우 일반적으로 하이엔드 머신을 의미하는 것으로 제한되지만, 소프트웨어 서버는 다양한 하드웨어에서 실행될 수 있다.

서버는 일반적으로 네트워크를 통해 액세스되므로, 많은 서버가 컴퓨터 모니터나 입력 장치, 오디오 하드웨어 및 USB 인터페이스 없이 무인으로 실행된다. 많은 서버에는 그래픽 사용자 인터페이스 (GUI)가 없다. 이들은 원격으로 구성되고 관리된다. 원격 관리는 마이크로소프트 관리 콘솔 (MMC), 파워셸, SSH 및 브라우저 기반 대역 외 관리 시스템(예: Dell의 iDRAC 또는 HP의 iLo)을 포함한 다양한 방법을 통해 수행될 수 있다.

 대규모 서버 
대규모의 전통적인 단일 서버는 중단 없이 장기간 실행되어야 한다. 가용성이 매우 높아야 하므로 하드웨어의 신뢰성과 내구성이 매우 중요하다. 미션 크리티컬 엔터프라이즈 서버는 매우 내결함성이 높고 업타임을 극대화하기 위해 낮은 고장률을 가진 특수 하드웨어를 사용한다. 무정전 전원 장치는 전원 장애를 방지하기 위해 통합될 수 있다. 서버는 일반적으로 듀얼 전원 공급 장치, RAID 디스크 시스템, ECC 메모리와 같은 하드웨어 중복성을 포함하며, 광범위한 사전 부팅 메모리 테스트 및 검증도 포함한다. 중요한 구성 요소는 핫 스왑 가능하여 기술자가 서버를 종료하지 않고 실행 중인 서버에서 교체할 수 있으며, 과열을 방지하기 위해 서버는 더 강력한 팬을 갖추거나 수랭을 사용할 수 있다. 이들은 종종 IPMI를 기반으로 하는 대역 외 관리를 사용하여 원격으로 구성, 전원 켜기 및 끄기, 또는 재부팅이 가능하다. 서버 케이스는 일반적으로 납작하고 넓으며, 19인치 랙 또는 오픈 랙에 랙 마운트되도록 설계되었다.

이러한 유형의 서버는 종종 전용 데이터 센터에 보관된다. 이들은 일반적으로 매우 안정적인 전력 및 인터넷과 향상된 보안을 갖추게 된다. 소음도 덜 문제가 되지만, 전력 소비량과 열 발생량은 심각한 문제가 될 수 있다. 서버실에는 에어컨 장치가 설치되어 있다.

 클러스터 

서버 팜 또는 서버 클러스터는 단일 장치의 기능을 훨씬 뛰어넘는 서버 기능을 제공하기 위해 조직에서 유지 관리하는 컴퓨터 서버의 모음이다. 현대의 데이터 센터는 이제 훨씬 더 단순한 서버의 매우 큰 클러스터로 구축되는 경우가 많으며, 이 개념을 중심으로 오픈 컴퓨트 프로젝트라는 공동 노력이 진행 중이다.

 어플라이언스 
작은 전문가용 서버 종류인 네트워크 어플라이언스는 일반적으로 일반적인 데스크톱 컴퓨터보다 작은 경우가 많다.

 모바일 
모바일 서버는 랩톱과 같은 휴대용 폼 팩터를 가지고 있다. 대규모 데이터 센터나 랙 서버와는 달리, 모바일 서버는 전력 요구 사항, 크기 및 배포 시간으로 인해 기존 서버가 실현 불가능한 비상, 재난 또는 임시 환경에서 이동 중 또는 임시 배포용으로 설계되었다. 소위 "이동 중 서버" 기술의 주요 수혜자로는 네트워크 관리자, 소프트웨어 또는 데이터베이스 개발자, 교육 센터, 군인, 법 집행 기관, 포렌식, 비상 구조 단체 및 서비스 조직이 있다. 휴대성을 용이하게 하기 위해 키보드, 디스플레이, 배터리 (무정전 전원 장치, 장애 시 전원 이중화 제공), 마우스와 같은 기능이 모두 섀시에 통합되어 있다.

 운영체제 
섬네일|선 마이크로시스템즈의 코발트 큐브 3; 컴퓨터 서버 어플라이언스 (2002); 코발트 리눅스 (Red Hat 리눅스의 맞춤형 버전, 2.2 리눅스 커널 사용), 아파치 웹 서버와 함께 실행 중.
인터넷에서 서버 간에 지배적인 운영체제는 리눅스 및 FreeBSD를 기반으로 하는 유닉스 계열의 오픈 소스 리눅스 배포판이며, 윈도우 서버 또한 상당한 점유율을 가지고 있다. Z/OS 및 macOS 서버와 같은 독점 운영체제도 배포되지만, 그 수는 훨씬 적다. 리눅스를 실행하는 서버는 일반적으로 웹서버 또는 데이터뱅크로 사용된다. 윈도우 서버는 윈도우 클라이언트로 구성된 네트워크에 사용된다.

전문 서버 지향 운영체제는 전통적으로 다음과 같은 특징을 가졌다:
 GUI를 제공하지 않거나 선택 사항으로 제공
 재시작 없이 하드웨어와 소프트웨어를 어느 정도 재구성하고 업데이트하는 능력
 중요한 자료의 정기적이고 빈번한 온라인 백업을 허용하는 고급 백업 기능
 다른 볼륨 또는 장치 간의 투명한 데이터 전송
 유연하고 고급 네트워킹 기능
 UNIX의 데몬 및 Windows의 서비스와 같은 자동화 기능
 고급 사용자, 리소스, 데이터 및 메모리 보호를 통한 강력한 시스템 보안
 과열, 프로세서 및 디스크 오류와 같은 조건에 대한 고급 감지 및 경고

실제로 오늘날 많은 데스크톱 및 서버 운영체제는 주로 구성에서만 차이가 나며 유사한 코드 베이스를 공유한다.

 에너지 소비 
2024년에 데이터 센터 (서버, 냉각 및 기타 전기 인프라)는 415 테라와트시의 전력을 소비했으며, 전 세계 전력 소비의 약 1.5%를 차지했고, 미국에서는 4.4%를 차지했다. 한 추정치에 따르면 정보 통신 기술의 총 에너지 소비는 효율성 증가를 통해 나머지 경제에서 5배 이상의 탄소 발자국을 절약한다.

데이터 및 대역폭 수요 증가로 인해 전 세계 에너지 소비가 증가하고 있다.

환경 단체들은 데이터 센터의 탄소 배출량에 주목하고 있는데, 이는 연간 2억 미터톤의 이산화 탄소를 차지하기 때문이다.

 같이 보기 

 P2P
 NAS
 클라이언트-서버 시스템
 홈 서버
 FTP 서버
 데이터 센터
 baas.io : 모바일 애플리케이션이 필요로 하는 서버의 기능을 일반화/정형화하여 API로 제공하는 서비스

 내용주 

 각주 

 더 읽어보기 

 
 

 
분류:서버 하드웨어