자바 - 네트워킹(Networking), 클라이언트와 서버(Client & Server)에 대해서 알아보자.
네트워킹(Networking)
네트워킹이란 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크(network)를 구성하는 것을 말한다. 네트워킹의 개념은 컴퓨터들을 서로 연결하여 손 쉽게 주고받거나 또는 자원(프린터와 같은 주변기기)을 함께 공유하고자 하는 노력에서 시작 되었다. 지금은 셀 수도 없는 많은 수의 컴퓨터가 인터넷이라는 하나의 거대한 네트워크를 구성하고 있으며, 인터넷을 통해 다양하고 방대한 양의 데이터를 공유하는 것이 가능해졌다. 자바에서 제공하는 java.net패키지를 사용하면 네트워크 어플리케이션 작성이 가능하다.
클라이언트와 서버(Client & Server)
클라이언트&서버는 컴퓨터간의 관계를 역할로 구분하는 개념이다. 서버는 서비스를 제공하는 컴퓨터(Service Provider)이고, 클라이언트(Client)는 서비스를 사용하는 컴퓨터(Service User)가 된다.
일반적으로 서버는 다수의 클라이언트에게 서비스를 제공하기 때문에 고사양의 하드웨어를 갖춘 컴퓨터이지만, 하드웨어의 사양에 관계없이 서비스를 제공하는 소프트웨어가 실행되는 컴퓨터를 서버라고 한다.
서비스는 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것으로 서버가 제공하는 서비스의 종류에 따라 파일 서버(File Server), 메일 서버(Mail Server), 어플리케이션 서버(Application server)등이 있다. 파일 서버는 클라이언트가 요청한 파일을 제공하는 서비스를 수행한다. 서버에 접속하는 클라이언트의 수에 따라서 하나의 서버가 여러가지 서비스를 제공하기도 하고 여러개의 서버가 하나의 서비스를 제공하기도 한다.
서버가 서비스를 제공하기 위해서는 서버 프로그램이 있어야 하고, 클라이언트가 서비스를 제공받기 위해서는 서버 프로그램과 연결할 수 있는 클라이언트 프로그램이 있어야 한다.
예를들어, 웹서버에 접속하여 정보를 얻기 위해서는 웹브라우저(클라이언트 프로그램)가 있어야 하고, FTP서버에 접속해서 파일을 전송받기 위해서는 알FTP와 같은 FTP클라이언트 프로그램이 필요하다.
일반 PC의 경우 주로 서버에 접속하는 클라이언트 역할을 수행하지만, FTP서버프로그램이나 Tomcat과 같은 웹서버 프로그램을 설치하면 서버역할도 수행할 수 있다. 파일공유 프로그램인 토랜트 같은 프로그램은 클라이언트 프로그램과 서버 프로그램을 하나로 합친 것으로 이를 설치한 컴퓨터는 클라이언트인 동시에 서버가 되어 다른 컴퓨터로부터 파일을 가져오는 동시에 또 다른 컴퓨터에게 파일을 제공할 수 있다.
네트워크를 구성할 때 전용서버를 두는 것을 서버기반모델(Server-Based Model)이라고 하고 별도의 전용서버 없이 각 클라이언트가 서버역할을 동시에 수행하는 것을 P2P모델(Peer-To-Peer)이라 한다.
서버기반모델(Server-Based Model) | P2P모델(Peer-To-Peer) |
- 안정적인 서비스의 제공이 가능하다. - 공유 데이터의 관리와 보안이 용이하다. - 서버구축비용과 관리비용이 든다. |
- 서버구축 및 운용비용을 절감할 수 있다. - 자원의 활용을 극대화 할 수 있다. - 자원의 관리가 어렵다. - 보안이 취약하다. |
'언어공부 > Java' 카테고리의 다른 글
자바 - InetAddress 클래스와 URL(Uniform Resource Locator) (0) | 2021.06.30 |
---|---|
자바 - IP주소(IP Address), 네트워크 주소, 호스트 주소 (0) | 2021.06.29 |
자바 - 스트림을 이용해 파일 복사(카피)하기 (0) | 2021.06.06 |
자바 - 직렬화(serialization), ObjectInputStream&ObjectOutputStream (0) | 2021.06.06 |
자바 - InputStreamReader&OutputStreamWriter , BufferedReader&BufferedWriter, FileReader&FileWriter (0) | 2021.06.05 |