네트워크
1. 개념
여러 컴퓨터들을 통신 회선으로 연결한 것
- 서버 : 서비스를 제공하는 프로그램
- 클라이언트 : 서비스를 요청하는 프로그램
IP
1. 개념
- 컴퓨터의 고유한 주소
- IP 주소는 네트워크 어댑터마다 할당
- IP 주소를 모르면 서로 통신할 수 없다
- 그래서 DNS(Domain Name System)를 이용해서 컴퓨터의 IP 주소를 검색할 수 있다
2. 형식
- IP 주소 : xxx.xxx.xxx.xxx
- 숫자 : 0~255사이의 정수값
3. 예제
InetAdressMain.java | InetAddress 클래스를 사용하여 도메인 이름 또는 IP 주소에 대한 IP 주소를 조회 |
DNS(Domain Name System)
1. 개념
- 도메인 이름으로 IP를 등록하는 저장소
웹 브라우저: 웹 서버와 통신하는 클라이언트
사용자가 입력한 도메인으로 DNS에서 IP 주소를 검색해 찾은 다음 웹 서버와 연결해서 웹 페이지를 받는다
2. 예제
URLMain .java | URL 클래스를 사용하여 특정 웹 페이지의 내용을 가져오고, URL에 대한 다양한 정보 출력 |
Port
1, 개념
- 운영체제가 관리하는 서버 프로그램의 연결번호
- 한 대의 컴퓨터에는 다양한 서버 프로그램들을 실행할 수 있다
- IP는 컴퓨터의 네트워크 어댑터까지만 갈 수 있는 정보이기 때문에 컴퓨터 내부에서 실행하는 서버를 선택하기 위해서는 추가적인 Port 번호가 필요하다
http | 80 |
https | 443 |
oracle | 1521 |
ftp | 21 |
프로토콜
1. 개념
- IP 주소로 프로그램들이 통신하기 위한 약속된 데이터 전송 규약
- 인터넷에서 전송용 프로토콜 : TCP / UDP
TCP
- 연결형 프로토콜
- 클라이언트가 연결 요청을 하고 서버가 수락하면 통신 회선이 고정된다
- 고정된 회선을 통해 데이터가 전달된다
- 보낸 데이터가 순서대로 전달되고, 손실이 발생하지 않는다
- TCP는 IP와 함께 사용하기 때문에 TCP/IP라고도 한다
- TCP는 웹 브라우저가 웹 서버에 연결할 때 사용된다. - 이메일, 파일 전송, DB 연동
- ServerSocket
- 클라이언트의 연결을 수락하는 서버쪽 클래스에서 작성
- 생성 시 바인딩할 Port 번호를 지정해야 한다
- accept() 메소드로 연결을 수락하고 Socket를 생성한다
- Socket
- 클라이언트에서 연결 요청할 때 사용
- 클라이언트와 서버에서 데이터를 주고받을 때 사용
UDP
- 발신자가 일방적으로 수신자에게 데이터를 보내는 방식
- TCP처럼 연결 요청, 수락 과정이 없다
- TCP처럼 고정회선이 아니라 여러 회선을 통해서 데이터가 전송된다
- 회선의 속도에 따라 데이터가 순서대로 전달되지 않거나 잘못된 회선으로 데이턴 손실이 발생할 수 있다
- 실시간 영상 스트리밍에서 한 컷의 영상이 손실되더라도 영상은 계속 수신되므로 문제가 되지는 않는다
- 데이터 전달의 신뢰성보다 속도가 중요하다면 UDP를 사용하고, 데이터 전달의 신뢰성이 중요하다면 TCP를 사용해야 한다
- DatagramSocket
- 발신점과 수신점에 해당
- 객체 생성 시 Port 번호를 주어야 한다
- DatagramPacket
- 주고 받는 데이터에 해당
2. 예제
Protocol.java ProtocolClient.java ProtocolServer.java |
간단한 클라이언트-서버 애플리케이션 구현 클라이언트가 서버에 접속하여 메시지를 주고받고, 특정 명령(입장, 퇴장, 메시지 전송)을 수행 Protocol 클래스를 사용하여 명령어를 정의하고, 클라이언트와 서버에서 이를 해석 |
JSON 데이터 형식
1. 개념
- 데이터를 교환하기 위해 널리 사용되는 경량 데이터 형식
- 텍스트 형식
- JavaScript에서 객체를 표현하기 위해 사용
- *.jar 필요
json-20231013.jar
- 네트워크로 전달하는 데이터가 복잡할수록 구조화된 형식이 필요하다.
네트워크 통신에서 가장 많이 사용되는 데이터 형식은 JSON(JavaScript Object Notation)이다.
2. 형식
- JSON 객체
{
"속성명" : 값,
"속성명" : 값
}
- JSON 배열
[
"문자열" or
{ ......} or
[ ......]
]
3. 예제
ChatServer.java ChatClient.java ChatHandler.java |
네터워크 사용해 채팅 프로그램 구현 JSON 형식을 사용하여 클라이언트와 서버 간의 메시지를 주고받으며, 채팅 참여자의 입장과 퇴장을 관리 |
'Language > Java' 카테고리의 다른 글
Java - JDBC (0) | 2024.08.07 |
---|---|
문법 - Library (0) | 2024.08.07 |
문법 - OOP(Object Oriented Programming) (1) | 2024.07.11 |
문법 - 배열 (0) | 2024.07.10 |
문법 - 반복문 (0) | 2024.07.10 |