클라이언트/서버 컴퓨팅 환경(Client/Server Computing System)-(2)

서영호2020.07.10
조회147

 

 

 

 

클라이언트/서버 컴퓨팅 환경은 LAN을 중심으로 중앙에 호스트 컴퓨터를 서버로 설정을 하고, 각 직원들의 테이블 위에 놓인 컴퓨터들을 클라이언트로 설정을 해서 데이타를 주고 받는다. 

 

이런 인터넷 환경을 인트라넷(Intranet)이라고 한다. 인트라넷은 인터넷 기술을 이용하여 기업내부의 네트워크를 구축한다는 의미로 intra(내부의)와 net(네트워크)를 합성하여 만든 단어다.

 

이것이 가능하려면, 사전에 네트워크 운영체제를 설치를 해서 네트워크 프로그램으로 애플리케이션을 작성해야 한다.

 

대기업을 예로 든다면, 1 층의 경리부 직원이 20층에 있는 영업부로 이 메일이나 업무지시를 보낼 수 없다. 같은 건물내에 있는데, 왜 업부지시를 보내거나 받을 수 없는가?. 이 문제는 제가 설명을 드리는 것 보다는 대기업에 근무하시는 직원에게 문의한다면 훨씬 더 확실한 답변을 받으실 수 있을 것입니다.

 

이 클라이언트/서버 컴퓨팅 환경에서 분산 시스템이 출현했습니다. 대표적인 예가 바로 은행의 온라인 시스템입니다.

 

은행은 본점이 대부분 서울에 있고, 수십개의 지점들이 서울에 흝어져 있으며, 전국 각 지방에 수 많은 지점들을 운영하고 있습니다.

 

서울 본점에 호스트 컴퓨터인 서버가 있어서 산하

지점들의 데이타들이 모두 이곳에 모이게 됩니다.이런 형태를 분산 시스템이라고 합니다.

 

각 지점의 컴퓨터는 서버가 되기도 하고 클라이언트가 되기도 합니다. 고객이 예금을 하면 서버로서의 역할을 하고, 서울 본점에서 자료를 요청을 하면 클라이언트가 되기도 합니다.

 

그런데 같은 건물내에서도 데이타를 주고 받을 수 없는데, 어떻게 수 백리 떨어진 컴퓨터로 부터 자료를 송부받을 수가 있는가?.

 

바로 이 부분이 핵심사항입니다. 지금까지 이 문제에 대한 질문이나 답변이 확실하지 않았기 때문에 서버가 해외에 존재한다는 논리를 전개했던 것입니다.

 

애플리게이션이 서울 컴퓨터의 하드 다스크에 저장되어 있는데 서버가 충청도나 전라도에 있으면, 그 컴퓨터가 작동하겠습니까?. 이런 주장을 펴는 사람은 데이타 통신이 무엇인지를 모르기 때문입니다.

 

은행들 뿐만이 아니라 한 단체를 운영을 하려면 자신만의 애플리케이션을 만들어서 운영해야 합니다. 이 애플리케이션을 각 은행지점에 있는 컴퓨터에 깔아야 고객의 입출금 정보를 기록할 수가 있는 것입니다.

 

만약에 각 지점이 저마다의 애플리케이션을 작성하여 운영한다면, 서울 본점에서 각 지점의 금융상태를 파악할 수가 없는 것입니다.

 

제가 이 문제를 자주 거론하는 이유는 클라이언트/서버 컴퓨팅 환경에 대한 개념을 확실히 이해를 해야 최근에 한 단계 업그래이드 된 IT 기술에 대한 이해도를 높일 수가 있기 때문입니다.

 

제가 네티즌 여러분들에게 IT 교육을 시키려는 것이 아닌가 하고 의심하는 분이 계실 줄 모르므로 사전에 이런 오해를 없애고, 미래에 AI가 가져 올 세상에서 정체성을 잃지 말고 앞으로 용감하게 대처하시라는 뜻에서 IT관련 문제를 자주 거론하는 것입니다.

 

 

O. 웹 소켓(WebSocket)

 

분산 프로그래밍을 가능하게 하는 프로토콜 중 하나가 웹 소켓입니다. 웹 소켓은 양방향이며, TCP 소켓상에서 완전한 양방향 통신체넬을 구현한다.

 

웹 서버도 이와 동일한 소켓을 사용할 수 있다. 이와같은 양방향 지원기능을 통해 서버와 클라이언트는 서로 동시에 메시지를 주고 받을 수 있다.

 

이는 http 만으로는 구현하기 어려웠던 수 많은 웹 애플리케이션을 개발할 수 있는 문을 열어 준다.

 

최신 웹 브라우저은 대부분 웹 소켓을 지원한다. 클라이언트를 웹 소켓서버로 연결하려면 서버를 엔드 포인트(end point)로 지정해 WebSocket 객체를 생성해야 된다. 이때 http 대신 "ws 프로토콜"을 사용한다는 점에 주의 하시기 바랍니다.

 

예 :

web socket=new WebSocket 'ws://local host:

8080/'

 

과거에 운영체제에서 소켓을 전원을 연결하는 정도로 소개를 했지만, 새로 나온 책들은 운영체제가 소켓 프로토콜을 만들어서 함수를 작성할 수 있도록 만들어 놓았습니다.

 

 

O. 소켓(Socket)탄생의 배경

 

소켓은 가장 많이 사용되는 I/O 인터페이스(interface)로서 네트워크 프로그래밍의 기본적 부분을 담당합니다.

 

흔히 소켓이라는 것은 버클리 소켓의 구현(Berkley-derived IPv4 socket implementation)을 말하는데, 이는 소켓이 버클리대의 BSD 유닉스로부터 만들어졌기 때문에 붙여진 이름이다.

 

BSD 소켓의 영향은 실로 막강해서 현재 유닉스뿐만 아니라 대부분 운영체제가 BSD 소켓의 인터페이스를 따르고 있다. 심지어 윈도우즈00 계열도 BSD 스타일의 소켓 인터페이스를 지원하고 있다.

 

개념적으로 소켓에 대해서 어렵게 생각할 필요는 없다. 그냥, 외부와 통신가능한 장치에 입출력할 수 있는 파일을 꽂는(그래서 소켓이라 부름) 것으로 생각하면 된다.

 

<참 고>

 

이런 이유로 소켓을 B S D(Berkeley Software Distribution) 유닉스로 명명되다.