프로그래밍/JAVA

[ JAVA ] 네트워킹 (Networking)

리신 2023. 4. 25. 23:55
반응형

네트워킹

네트워킹이란 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것을 말한다.

네트워킹의 개념은 컴퓨터들을 서로 연결하여 데이터를 손쉽게 주고받거나 또는 자원프린터와 같은 주변기기를 함께 공유하고자 하는 노력에서 시작되었다.

 

자바에서 제공하는 java.net패키지를 사용해 네트워크 어플리케이션의 데이터 통신 부분을 쉽게 작성할 수 있으며,

간단한 네트워크 어플리케이션은 단 몇 줄의 자바코드 만으로도 작성이 가능하다.

 


클라이언트/서버

클라이언트/서버는 컴퓨터간의 관계를 역할로 구분하는 개념이다.

  • 서버 :  서비스를 제공하는 컴퓨터
  • 클라이언트 : 서비스를 사용하는 컴퓨터

서비스는 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것을 뜻한다.

서버가 제공하는 서비스의 종류에 따라 파일서버, 메일서버, 어플리케이션 서버 등이 있다.

예를 들어, 파일서버는 클라이언트가 요청한 파일을 제공하는 서비스를 수행한다.

 

서버에 접속하는 클라이언트의 수에 따라 하나의 서버가 여러 가지 서비스를 제공하기도 하고

하나의 서비스를 여러 대의 서버로 제공하기도한다.

 

서버가 서비스를제공하기위해서는서버프로그램이있어야하고클라이언트가서비스를 제공받기ㅔ 위해서는 서버프로그램과 연결할 수 있는 클라이언트 프로그램이 있어야 한다.

 

예를들면, 웹서버에 접속하여 정보를 얻기 위해서는 웹브라우저가 있어야 하고, FTP서버에 접속해서 파일을 전송받기

위해서는 알FTP와 같은 FTP클라이언트 프로그램이 필요하다.

 

네트워크를 구성할 때 전용서버를 두는 것을 서버기반모델(server-based model)이라 하고 별도의 전용서버없이 각 클라이언트가 서버열할을 동시에 수행하는 것을 P2P모텔(peer-to-peer)이라 한다.

 

서버기반모델(server-based model) P2P모텔(peer-to-peer)
- 안정적인 서비스의 제공이 가능하다.
- 공유 데이터의 관리와 보안이 용이하다
- 서버구축비용과 관리비용이 든다.
- 서버구축 및 운용비용을 절감할 수 있다.
- 자원의 활용을 극대화 할 수 있다.
-  자원의 관리가 어렵다.
- 보안이 취약하다.

 


IP 주소 (IP address)

IP주소는 컴퓨터(호스트, host)를 구별하는데 상뇽되는 고유한 값으로 인터넷에 연결된 모든 컴퓨터는 IP주소를 갖는다.

 

IP주소는 네트워크 주소와 호스트 주소로 나눌 수 있는데, 32bit(4byte)의 IP주소 중에서 네트워크주소와 호스트주소가 각각 몇  bit를 차지하는 지는 네트워크를 어떻게 구성하였는지에 따라 달라진다.

 

그리고 서로 다른 두 호스트의 IP주소의 네트워크 주소가 같다는 것은 두 호스트가 같은 네트워크에 포한되어 있다는 것을 의미한다.


InetAddress

자바에서는 IP주소를 다루기 위한 클래스로 InetAddress를 제공한다.

아래 링크에서 메소드들을 확인 할 수 있다.

 

https://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html

 

InetAddress (Java Platform SE 7 )

Gets the fully qualified domain name for this IP address. Best effort method, meaning we may not be able to return the FQDN depending on the underlying system configuration. If there is a security manager, this method first calls its checkConnect method wi

docs.oracle.com

 


URL

인터넷에 존재하는 여러 서버들이 제공하는 자원에 접근할 수 있는 주소를 표현하기 위한 것이다.

'프로토콜://호스트명:포트번호/경로명/파일명?쿼리스트링#참조' 의 형태로 이루어져 있다.

http://www.codechobo.com:80/sample/hello.html?referer=codechobo#index1

프로토콜 자원에 접근하기 위해 서버와 통신하는데 사용되는 통신규약 (http)
호스트명 자원을 제공하는 서버의 이름 (www.javachobo.com)
포트번호 통신에 사용되는 서버의 포트번호 (80)
경로명 접근하려는 자원이 저장된 서버상의 위치 (/sample)
파일명 접근하려는 자원의 이름 (hello.html)
쿼리(query) URL에서'?' 이후의 부분 (referer=javachobo)
참조(anchor) URL에서 '#' 이후의 부분 (index1)

URLConnection

어플리케이션과 URL간의 통신연결을 나타내는 클래스의 최상위 클래스, 추상클래스이다.

URLConnection을 상속받아 구현한 클래스로는 HttpURLConnection과 JarURLConnection이 있으며,

URL의 프로토콜이 http프로토콜이라면 openConnection()은 Http URLConnection을 반환한다.

 

 

참고자료 : 자바의 정석

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[ JAVA ] 직렬화란  (0) 2023.04.25
[ JAVA ] 입출력  (0) 2023.04.05
[ JAVA ] 쓰레드란?  (0) 2023.02.21
[JAVA] Properties 란?  (0) 2023.01.31
[JAVA] TreeMap 이란  (0) 2023.01.29