Server
서버란?
서버(server)는 간단히 말하면 네트워크상의 데이터 저장소이다.
server 에는 “제공하는 곳"이라고 하는 의미가 있다. 인터넷 등의 네트워크를 통해서 이용자의 요구(요청)에 따라, 그에 대응하는 데이터를 제공하는 컴퓨터를 “서버"라고 부른다.
서버는 웹페이지의 열람이나 메일, SNS, 넷쇼핑 등과 같은 인터넷에 관련된 모든 서비스로 이용되고 있다.
서버와 클라이언트
네트워크에서 데이터를 제공하는 측을 서버, 데이터를 이용하는 측을 클라이언트(client)라고 한다.
웹 사이트의 열람이나 메일을 송신할 때, 클라이언트로부터의 요구에 대해 서버로부터 동영상 파일이나 HTML 파일등의 데이터 파일이 반환된다.
클라이언트의 요청에 따라 가공된 파일을 보내거나 데이터를 저장하는 것이 서버의 주요 역할이다.
업로드 및 다운로드
클라이언트가 서버에 정보를 제공하는 것을 “업로드(Upload)” 라고 한다.
(예) 동영상 게시 사이트에 동영상을 게시, SNS에 사진을 올리기
한편, 클라이언트가 제공원인 서버로부터 파일을 받는 것을 “다운로드(Download)” 라고 한다.
(예) 인터넷에서 공개된 이미지와 동영상을 컴퓨터에 가져오기
서버와 네트워크의 작동 방식
서버의 역할을 이미지할 수 있도록 홈페이지를 작성한 후 방문자에게 열람될 때까지의 흐름을 예로 들어 보겠다.
홈페이지 데이터를 서버에 업로드한다.
단순히 자신의 PC에 홈페이지의 데이터가 있는 것만으로는, 인터넷 사용자에게 보여줄 수 없다.
홈페이지를 볼 수 있도록 하려면 해당 홈페이지의 데이터를 서버에 저장해야 한다.
사용자가 브라우저에 URL을 입력하면 서버에 요청이 도착한다.
인터넷 사용자가 홈페이지 URL을 Google 크롬과 같은 브라우저에 입력하고 Enter 키를 누르면 서버 측에 요청이 전송된다.
-
URL
- 웹 페이지의 위치를 나타내는 문자열로 주소라고도 불린다.
- 현재 사이트의 톱 페이지의 URL은 “https://www.devkuma.com"이다.
-
브라우저
- 인터넷을 통해 홈페이지(웹사이트)를 PC나 스마트폰으로 열람하기 위한 소프트웨어
- 구글 크롬, 사파리, 인터넷 익스플로러 등이 유명하다.
요청에 따라 서버는 사용자의 PC와 스마트폰에 데이터를 제공
서버는 URL에 따른 페이지의 데이터를 꺼내 HTML이나 이미지등의 파일을 유저의 PC나 스마트폰등의 단말에 제공한다.
추가로 Google이나 Naver 등의 검색 엔진을 통해 액세스할 수 있게 하려면, 서버에 홈페이지의 데이터를 업로드하는 것뿐만 아니라 색인(등록)이 필요하다.
단순히 홈페이지의 데이터를 서버에 업로드한 것만으로는 Google이나 Naver 등으로 아무리 검색해도 그 사이트는 검색되지 않는다.
브라우저에 URL을 직접 입력하는 대신 검색엔진을 통해 사이트에 액세스할 수 있도록 하려면 검색엔진의 데이터베이스에 홈페이지의 데이터를 색인 등록하는 것이 필수이다.
서버 유형
컴퓨터로서의 서버는 크게 나누어 “물리 서버"와 “가상 서버"의 2가지 종류가 있다.
물리적 서버
물리적으로 존재하는 1대의 서버로 “공용 서버"와 “전용 서버"의 2가지 종류로 나눌 수 있다.
전용 서버
1대의 서버를 전용으로 다른 사용자의 영향을 받지 않는 일이나 OS를 변경하는 등의 커스터마이즈가 가능하여, 사용법의 자유도가 높은 것이 이점있지만, 적절하게 커스터마이즈하여 운용하려면 어느 정도의 전문 지식이 필요하다.
공유 서버
말하자면 렌탈 서버에서 하나의 물리적 서버를 여러 사용자가 공유하고 사용하게 된다. 비용을 절감하여 이용할 수 있고, 유지 보수의 번거로움이 들지 않는다는 이점은 있지만, 복수의 사용자가 공유하여 사용하기에, 커스터마이즈하기 쉽지 않고, 다른 유저의 사용 상황에 의해 처리에 영향 서버가 고장 나면 많은 사용자에게 영향을 줄 수 있다.
가상 서버
1대의 물리 서버상에서 복수대의 OS를 동작하는 것으로 복수의 서버로 간주해 가동시키는 서버로, “VPS"와 “클라우드 서버"의 2가지 종류로 나눌 수 있다.
VPS 서버
VPS는 Virtual Private Server의 약자로 가상 전용 서버라고도 한다.
공유 서버와 마찬가지로 하나의 물리적 서버를 공유하지만 가상으로 개별적으로 환경 구축되어 있기 때문에 다른 사용자의 영향을 받기 어렵다는 이점이 있어 커스터마이즈성은 높다.
클라우드 서버
클라우드 환경에 만들어진 서버이다. VPS와 마찬가지로 가상 전용 서버를 구축하지만, 서버 용량이나 처리 성능 등의 리소스가 계획별로 고정되어 버리는 VPS보다 리소스가 고정되지 않는 클라우드 서버는 예기치 않게 액세스가 급증한 경우 하지만 신속하게 리소스를 늘릴 수 있는 등 유연성이 높다는 특징이 있다. 대표적으로 AWS, GCP가 있다.
서버 사용
앞에서 소개한 4가지 종류의 서버는 컴퓨터로서의 서버이다.
그에 대해 용도에 따라 다양한 기능의 제공을 실현하는 것이 소프트웨어로서의 서버이다.
웹 서버
클라이언트로부터의 요청에 따라 웹상의 데이터를 클라이언트에 되돌려 보내는 서버로, 웹 사이트(홈페이지)를 구성하는 HTML 파일, 페이지 내의 구성이나 디자인을 조정하는 CSS 파일, 이미지 파일등이 포함되어 있다. 저장된 웹 페이지의 정보를 클라이언트에게 요청하면 해당 데이터를 반환하여 보내준다.
메일 서버
메일을 송수신할 때 사용되는 서버이다.
송신용과 수신용으로 서버가 나누어져 있어 송신 서버는 SMTP 서버, 수신 서버는 IMAP나 POP3 서버가 사용되고 있다.
전원을 끄고 있는 사이에 메일이 보냈을 때에도, 다시 전원을 켜면 문제 없게 수신할 수 있는 것은 보내져 온 메일의 데이터가 메일 서버내에 보존되고 있기 때문이다.
POP3 서버와 IMAP 서버의 차이점
POP3 서버와 IMAP 서버 메일의 큰 차이점은 데이터를 서버에 계속 저장할지 여부이다.
POP3 서버의 경우, 일단 서버 내에 메일 데이터는 저장되지만 메일 소프트웨어로 수신했을 때 데이터는 PC나 스마트 폰 내에 다운로드되므로 서버 내에서 삭제된다. 네트워크에 연결되어 있지 않은 상태에서도 과거에 수신한 메일을 읽을 수 있는 이유는 메일 데이터가 단말기에 저장되어 있기 때문이다.
반면에 IMAP 서버는 데이터를 서버에 남겨 둔다. 따라서 PC나 스마트폰 등 여러 단말기에서 사용하는 경우 같은 메일을 읽을 수 있다. Gmail이나 Naver 메일에 있어서, 로그인하면 어느 단말에서도 같은 메일을 읽을 수 있는 것은 IMAP 서버를 이용하고 있기 때문이다.
DNS 서버
DNS(Domain Name System) 서버는 IP 주소와 도메인을 연결하는 데 사용되는 서버이다.
IP 주소는 네트워크에 연결된 기기에 할당된 고유 번호로 웹상의 주소와 같다. 그러나 숫자의 열에 사람에게는 기억하기 어렵기 때문에, 그 숫자의 열에 이름을 붙인 것이 도메인입니다.
도메인이나 DNS 서버에 대해서는 JPRS (주식회사 일본 레지스트리 서비스) 라고 하는 전국의 jp 도메인을 관리하고 있는 기업이 배포하고 있는 해설 만화를 알기 쉽습니다.
파일 서버
네트워크상에서 데이터를 공유 및 사용하는데 사용하는 서버이다.
파일 서버를 통해 여러 서버와 다양한 OS에서 데이터 공유를 원활하게 수행할 수 있다.
데이터베이스 서버
데이터베이스를 탑재하고 데이터베이스 관리 시스템이 작동하는 서버에서 클라이언트의 요청을 받아 데이터베이스 내에서 정리된 정보를 검색하고 처리 결과를 다시 보낸다.
FTP 서버
FTP (File Transfer Protocol) 서버는 “파일 전송 프로토콜"이라고도하며 웹 서버로 파일을 보내고받는 데 사용된다.
요청이 있을 때만 파일을 보내는 웹 서버와 달리 FTP 서버는 클라이언트에서 서버로 업로드하거나 서버에서 다운로드 할 수 있다.
웹 사이트 작성시에는 웹 서버에 새로운 파일을 업로드하기 위해 FTP 서버가 사용된다.
SSH 서버
SSH(Secure Shell) 서버는 클라이언트 정보를 암호화하는 서버이다.
초기에는 원격 통신 방법에서는 개인정보가 암호화되지 않고, 정보가 유출되어 버리는 경우가 있었는데, 패스워드나 비밀번호 등의 개인정보를 송신할 때에 SSH 서버에 의해 암호화하고 나서 안전하게 리모트 송신 할 수 있게 되었다.