인터넷은 이제 누구나 쓰고 있다.
인터넷이 어떻게 돌아가고 어떻게 지원 되고 있는지 알고 있는 사람들은 별로 없다.
서버가 뭐지 클라이언트가 뭐지? 웹 브라우저는?
뭐, 이런 지식을 가지고 있지 않아도 인터넷을 사용하는데에는 큰 무리가 따르지 않는다.
클라이언트는 우리가 일반적으로 사용하고 있는 컴퓨터를 말한다. 이런 클라이언트 컴퓨터들을 www에 접속하고 FTP를 사용하고 IRC, 메일등을 사용한다. 그런데 이런 서비스들은 우리가 사용하고 있는 클라이언트 컴퓨터에 어떻게 나올 수 있는가? 우리는 그저 웹브라우저에 주소를 치고, IRC에 연결하는 명령어를 치고, 메일을 작성해서 발송 할 뿐인데? 설마 내 컴퓨터 안에서 이런 모든 서비스들이 진행 될 수 있는 것인가?
물론 아니다. 우리가 www에 접속을 하고 메일을 보내고 irc에 접속하는 과정에서 유저들의 요구를 담고 있는 리퀘스트가 발생한다. 이런 리퀘스트들을 처리해 주는 곳이 바로 서버(server)이다.
서버의 역활을 간단하다 우리가 위에서와 같이 메일을 사용하고, 검색을 하고, 게임에 접속하는 등 유저들의 요구를 담은 리퀘스트들을 처리해서 다시 유저들에게 보내주는 일을하고 있는 것이다. 물론 이런 과정속에서는 다양한 규약(protocol)들이 필요하다.
http(Hypertext Transfer Protocol), tcp(Transmission Control Protocol)/ip(Internet Protocol), FTP(File Transfer Protocol) 등등 사용자들의 클라이언트와 서버와에 연결되는 규약들은 더 다양하다.
규약은 서버와 사용자들간의 약속이다 요청을 할때 이런식으로 해라라고 정해져 있으면 서버는 그런식의 요청만 받아 들인다.
간단한 예를 들자면, 나이트나, 훼밀리 레스토랑를 찾아 가본적은 누구나 있을 것이다. 손님의 입장으로 가게에 들어가서 어느 테이블에 앉았다. 그럼 한명의 정해진 웨이터나, 종업원들이 자신의 테이블을 맞게 된다. 무슨 무슨 메뉴를 시키고, 술을 얼마나 시키고, 물이 필요하면 물을 더 가져다 달라고 하는 등 여러가지 손님의 요청에 맞는 일들은 모두 정해진 웨이터나, 종업원들에 의해서 이루어진다. 물을 가져다 주고, 요청한 메뉴가 나왔으면 그 메뉴를 가져다주는 등의 일 말이다.
이런 관계와 유사하다 우리가 쓰고 있는 컴퓨터는 손님이다. 보고싶은 것이 있거나, 원하는 게임을 하고싶고, 메일을 쓴다거나 하는 여러가지 서버에게 보낸다. 그럼 웨이터와 같이 서버는 술을 구해오고, 요리를 시작한다. 자신이 직접만들어 오는것이 아니라, 다른 서버와의 연계로서 찾아 온다. 다른점 이라고 하면 언제나 인터넷의 서버는 켜져있고 어디서에 있는 손님에게나 서비스를 제공할 수 있다는 점이다.
이런 서버에도 여러가지 종류가 있다. 검색을 하기 위한 서버, 메일을 관리하는 서버, 컨텐츠를 관리하는 서버등 여러가지서버가 있으며, 서버와 서버간에도 서로 연결되어 있다. 어떠한 요청에 맞는 서비스를 위해서 하나의 서버만이 처리하는 것이 아니라, 검색 서버도, 컨텐츠 서버도, 메일 서버도 각기 손님의 요청에 맞는 부분을 제공하여 최종적으로 다시 손님에게 돌려준다.
이것이 지금 우리가 사용하고 있는 컴퓨터에서 우리들 모르게 이루어지고 있는 서버와 클라이언트의 관계이다. 여러분의 클릭 하나하나, 키보드의 커서하나하나에 서버들은 모두 반응하고 서비스를 제공한다
이렇게 고생하고 있는 서버들에게 박수와 함께 이글을 마치도록 하겠다. 짝짝짝