서버, 클라이언트란 무엇인가? VPS란 무엇인가?

안녕하세요. 개발자 드리머즈입니다.


가상화폐 마스터노드 구축에 대한 자료를 보면 VPS라는 단어가 등장합니다. 이 VPS가 무엇인지 알아보겠습니다.

VPS는 Virtual Private Server의 약자로 한글로 번역하면 가상 사설 서버 정도가 됩니다.

그렇다면 가상 사설 서버는 무엇일까요? 가상 사설 서버에 대해 이야기하기 전에 서버가 뭔지 보겠습니다.


저는 어려서부터 온라인게임을 접했기에 여기에서 서버라는 단어를 접했습니다. 게임에 렉이 생겨서 버벅대거나 하면 서버 상태가 안좋다고 했습니다. 온라인게임에서 문제가 생기면 서버와 관련있는 것인지는 대충 알았지만 서버가 무엇인지는 몰랐습니다.

서버도 컴퓨터라는 것을 알게 된 것은 작은 회사에서 내부 업무용으로 쓰이는 서버 컴퓨터를 알게 되면서부터 입니다. 그 작은 회사에는 사람마다 컴퓨터가 있었고 그 컴퓨터에는 프로그램A가 설치되어 있었습니다. 이 프로그램A는 서버(서버 컴퓨터)의 DB에 있는 값을 읽어와서 화면에 보여주는 역할을 했습니다. 서버에서 값을 읽어와서 보여주므로, 어느컴퓨터에서 프로그램A를 실행시키더라도 동일한 값을 볼 수 있었습니다. 이처럼 여러 사람들이 각자의 컴퓨터에서 동일한 값을 볼 수 있어 문제없이 일을 할 수 있었습니다.

만약 이 DB가 서버 컴퓨터가 아닌 각 개인의 컴퓨터에 있었다면 여러 사람들이 동시에 보기가 불편했을 것입니다. a라는 사람이 이 DB에 접근하여 수정을 했고, b라는 사람이 이 수정된 DB의 값을 봐야 하는 상황을 생각해봅시다. b라는 사람이 이 수정된 DB를 보려면 어떻게든 수정된 DB를 a로부터 전달받아야 합니다. 사람이 많아질수록 문제는 심각해집니다. DB에 수정이 발생할 때마다 여러 사람들에게 다시 공유해야하기 때문입니다.


서버에 대한 개념 설명을 하기 위해서 실과 바늘처럼 서버와 밀접한 관련이 있는 클라이언트라는 개념을 알아야 합니다.

서버는 클라이언트에서 요청한 일을 수행합니다. 즉, 클라이언트는 무엇인가를 요청하는 역할을 하며 서버는 클라이언트로부터 온 요청을 처리하는 일을 합니다.

위의 예에서 서버는 각 개인의 컴퓨터에 설치된 프로그램A(클라이언트)가 (서버에 위치한) DB값 조회를 요청하면 그 값을 회신하는 역할을 합니다. 서버의 종류는 무궁무진하겠지만, 많은 서버가 DB조회를 하는 역할을 할 것입니다.

좀 더 친숙한 예를 들어볼까요? 우리가 매일매일 접하는 익스플로러나 크롬 같은 브라우저도 클라이언트 입니다. 브라우저가 클라이언트 역할을 하여 서버에게 웹 페이지를 요청합니다. 크롬에서 주소창에 www.daum.net를 입력하고 엔터를 치면 크롬은 www.daum.net을 담당하는 서버에게 웹 페이지를 요청하게 됩니다. 그러면 그 서버는 클라이언트가 요청한 웹페이지를 회신하게 되고 마침내 우리는 www.daum.net 홈페이지 화면을 보게 되는 것입니다.

온라인 게임 프로그램도 클라이언트입니다. 온라인 게임을 하게 되면 그 프로그램은 게임 서버를 이용하여 게임 진행과 관련된 DB에 접근하게 됩니다. Lv이나 캐릭터 이름, 캐릭터 직업, 캐릭터 위치 등등 여러 값들에 접근을 할 것입니다. 여러 게임 사용자들이 서버를 통해 동일한 DB에 접근하게 되므로 동일한 환경을 인식하게 됩니다. 여기서 동일한 환경이라는 것은 캐릭터1의 위치라든가, 땅에 떨어진 아이템의 위치 등과 같은 것들입니다.




간단하게 서버라는 것에 대해 알아봤고 이제 가상 사설 서버에 대해 보겠습니다.

위키피디아에 검색을 하며 아래와 같은 설명이 있습니다.(https://ko.wikipedia.org/wiki/%EA%B0%80%EC%83%81_%EC%82%AC%EC%84%A4_%EC%84%9C%EB%B2%84)


가상 사설 서버(Virtual private server) 혹은 가상 전용 서버는 하나의 물리적 서버를 나누어 여러 개의 가상 서버로 사용하는 가상화 방법의 한 형태이다. 


말이 조금 어려울 수도 있으나 간단하게 생각하면 됩니다. 예전에는 하나의 서버 컴퓨터에 하나의 서버만 존재했었다면, VPS(가상 사설 서버)를 적용하면 하나의 서버 컴퓨터에 여러 개의 서버를 돌릴 수 있다는 말입니다. 왜 이렇게 하냐면, 보통의 경우에 서버는 일이 없어 놀고 있는 경우가 많아서 하나의 서버 컴퓨터에 하나의 서버만 돌리는 것은 자원 낭비이기 때문입니다. 서버 컴퓨터는 더 일을 할 수 있으므로 자원측면에서 효율성을 생각해보면 서버 컴퓨터가 일을 더 하도록 해야 합니다. 그렇게 해야 cafe24나 Vultr.com 같은 서버를 빌려주는 회사가 하나의 서버 컴퓨터에 여러 서버를 돌릴 수 있어 임대료를 낮출 수 있고 가격 경쟁력이 생깁니다.

Virtual Private Server에 왜 private라는 단어를 사용했는지 궁금해서 찾아봤습니다.

private에는 (특정 개인・집단) 전용의  라는 뜻이 있습니다. 비슷한 영어 단어로 dedicated가 있습니다. 그러니까 VPS는 하나의 물리 컴퓨터를 혼자서 다 사용하는 진짜 전용(private,dedicated) 서버가 아닌 가짜(가상) 전용 서버라는 것입니다. 하나의 물리 컴퓨터에서 자원을 나눠서 여러 서버를 돌리기 때문입니다. 그래서 VPS라고 부르며 반대되는 개념은 dedicated physical server 입니다.

참고로 하나의 물리 서버 컴퓨터에서 여러 개의 서버를 돌리기 위해 가상화 기술을 사용합니다.(https://ko.wikipedia.org/wiki/%EA%B0%80%EC%83%81%ED%99%94)



작성자

Posted by 드리머즈

관련 글

댓글 영역