2018/12(18)
-
Languague/Java
2018.12.14
[Java] 자바 네트워크 프로토콜이란 무엇인가?
프로토콜란? 프로토콜이란 클라이언트와 서버간의 통신 규약입니다. 프로토콜의 분석방법 먼저 클라이언트가 보낸 메시지를 서버에서는 “##”를 구분자로 문자열을 토큰하여 문자를 분석하게 됩니다. 만약 이런 규약을 클라이언트가 위배하여 메시지의 순서를 바꾼다든지, 부적절 한 메시지를 보내게 되면 서버에서는 이를 파악하지 못하고 항상 동일한 처리를 하게 되기 때문에 다른 클라이언트에게 적절치 못한 메시지를 전송하게 됩니다. 프로토콜의 설계기법 프로토콜의 설계는 클라이언트와 서버간의 통신 규약을 만드는데 필요한 데이터가 무엇인지 를 설계하는 것입니다. 프로토콜의 설계 하기위해서는 클라이언트에서 필요한 기능이 무엇인지를 생각하고, 그 기능 에 대해 필요한 데이터가 어떤 것이 있는지를 분석할 수 있는 능력이 있어야 합..
-
Languague/Java
2018.12.13
2
[Java] 자바 네트워크 유니캐스팅과 멀티캐스팅
유니캐스팅과 멀티캐스팅 1. 클라이언트와 서버간의 지속적으로 일대 일로 통신하는 개념을 유니 캐스팅이라고 합니다. 2. 일대 다의 통신을 멀티 캐스팅이라고 합니다. 유니 캐스팅 유니 캐스팅을 구현하기 위해서는 필수 조건이 서버측에 스레드를 생성해서 TCP 소켓을 유지 해야 합니다. 멀티 캐스팅 유니 캐스트 모델은 실시간 프로그램에서 서버의 정보를 모든 클라이언트가 공유할 때 문제점이 있는데 이런 문제를 해결할 수 있는 방법이 일대 다 전송을 지원하는 멀티 캐스팅 방법입니다. 한명의 클라이언트가 서버의 정보를 변경했을 경우 모든 클라이언트에게 전송함으로써 서로가 변경된 정보를 공유할 수 있는 애플리케이션을 만들 때 적합합니다. 또한 멀티 캐스팅 프로그램을 작성하기 위해서는 유니캐스트에서 생성된 스레드를 저..
-
Languague/Java
2018.12.06
[Java] 자바 네트워크 UDP 통신 소켓프로그래밍
UDP(User Datagram Protocol 1. UDP는 비 연결 지향이고, IP 위에 매우 얇은 레이어로 구성되어 있습니다. 2. UDP를 사용하는 애플리케이션은 TCP 프로그램에 비해 제어를 할 수 있는 부분이 적습니다. 3. UDP는 데이터를 전송할 때에 데이터가 잘 도착했는지 알아낼 방법이 없으며, 데이터를 보낸 순서대로 도착한다는 보장도 할 수 없습니다. 4. UDP는 TCP에 비해 훨씬 빠르게 전달된다는 장점이 있습니다. DatagramPacket 클래스 1. UDP 데이터그램은 java.net.DatagramPacket 클래스로 추상화한 것입니다. 2. DatagramPacket 클래스는 애플리케이션에서 주고 받을 데이터와 관련된 클래스이고, DatagramSocket 클래스는 실제 데..
-
Languague/Java
2018.12.05
2
[Java] 자바 네트워크 TCP 통신 소켓프로그래밍
TCP 통신방식이란? 1. TCP란 소켓 프로그래밍 중의 하나로 스트림 통신 프로토콜이라고 부르며, 양쪽의 소켓이 연결된상태여야만 가능 하기 때문에 연결지향 프로토콜이라고도 합니다. 2. TCP 프로토콜은 신뢰성 있는 프로토콜이기 때문에, 송신한 쪽의 데이터가 수신 측에 차례대로, 중간에 유실되는 일 없이 도착 하는 것을 의미합니다. 그러려면 수신 측과 송신 측이 미리 연결을 맺고 연결된 순서대로 데이터를 교환해야 합니다. 3. 연결지향 방식은, 한번 연결되면 연결이 끊어질 때까지는 송신한 데이터가 차례대로 목적지의 소켓에 전달되는 신뢰성 있는 통신이 가능합니다. 4. 이렇게 신뢰성 있는 TCP 연결을 하기 위해서는 TCP 프로그래밍에서 사용하는 라이브러리의 사용 방법과 동작 순서를 정확하게 숙지, 이해..
-
Languague/Java
2018.12.04
[Java] 자바 네트워크 URL 클래스와 URLConnection 클래스
URL클래스 1. URL 클래스는 URL을 추상화 하여 만든 클래스입니다. 2. URL 클래스는 final 클래스로 되어 있기 때문에 상속하여 사용할 수 없습니다. 3. 모든 생성자는 MalformedURLException 예외를 발생하기 때문에 반드시 예외처리를 해야 합니다. URL클래스의 주요생성자 URL클래스의 주요 메서드 URLConnection 클래스 URLConnection 클래스는 원격 자원에 접근하는 데 필요한 정보를 가지고 있습니다. 필요한 정보란 원격 서버의 헤더 정보, 해당 자원의 길이와 타입 정보, 언어 등을 얻어 올 수 있습니다. URL 클래스는 원격 서버 자원의 결과만을 가져 오지만, URLConnection 클래스는 원격 서 버 자원의 결과와 원격 서버의 헤더 정보를 가져 올 ..
-
Languague/Java
2018.12.03
[Java] 자바 네트워크 InetAddress 클래스
InterAddress 클래스란? InetAddress 클래스는 IP 주소를 표현한 클래스입니다. 자바에서는 모든 IP 주소를 InetAddress 클래스를 사용합니다. InetAddress 클래스의 생성자 InetAddress 클래스의 생성자는 하나만 존재하지만, 특이하게 기본 생성자의 접근 제한자 default이기 때문에 new 연산자 객체를 생성할 수 없습니다. 따라서 InetAddress 클래스는 객체를 생성해 줄 수 있는 5개의 static 메서드를 제공하고 있습니다. InetAddress 객체를 생성하는 메서드 InterAddress 주요 메서드 InetAddress 클래스는 IP 주소를 객체화 했기 때문에 다양한 메서드를 제공하지 않습니다. 다만 호스트 이름과 호스트에 대응하는 IP 주소를 ..
-
Languague/Java
2018.12.02
[Java] 자바 네트워크에 대한 이해
네트워크란? 1. 네트워크란 다른 장치로 데이터를 이동시킬 수 있는 컴퓨터들과 주변 장치들의 집합입니다. 2. 네트워크의 연결된 모든 장치들을 노드라고 합니다. 3. 다른 노드에게 하나 이상의 서비스를 해주는 노드를 호스트라 부릅니다. 4. 하나의 컴퓨터에서 다른 컴퓨터로 데이터를 이동시킬 때 복잡한 계층을 통해 전송되는데, 이런 복잡한 레이어의 대표적인 모델이 OSI 계층 모델입니다. 5. OSI 계층 모델은 모두 7계층으로 이루어져 있습니다. 6. 데이터 통신을 이해하는데 OSI 계층 모델은 상당한 역할을 하지만, 인터넷 기반의 표준 모델로 사용하는 TCP/IP 계층 모델을 주로 사용하고 있습니다. 7. 자바에서 이야기하는 네트워크 프로그래밍은 TCP/IP모델을 사용하고 있습니다. IP주소 1. 모든..
-
Languague/Java
2018.12.01
2
[Java] 삼항연산자 사용법 & 예제
if문을 사용하여 코딩을 할 경우 코드 라인이 의미 없이 길어지는 경우들이 종종 생깁니다. if(){ }else if(){ } 이렇게만 해도 벌써 5라인이죠. 하지만 단순한 if문일 경우 라인수를 획기적으로 줄여주는 방식이 있습니다. 바로 삼항 연산자라는 것인데요. 이번 포스팅에서는 삼항 연산자의 사용법에 대해 알아보도록 하겠습니다. 삼항 연산자의 예를 가볍게 들어보겠습니다. 위와 같은 경우 괄호 안의 조건문이 참일 경우 int a에 50이 담기게 되고 거짓일 경우에는 40이 담기게 되는 코드입니다. 삼항 연산자는 (조건문) : ? 참 : 거짓이라는 문법을 가지게 됩니다. //if else int a; if(5 사용법 & 예제
-
Languague/Java 2018.12.14[Java] 자바 네트워크 프로토콜이란 무엇인가? 프로토콜란? 프로토콜이란 클라이언트와 서버간의 통신 규약입니다. 프로토콜의 분석방법 먼저 클라이언트가 보낸 메시지를 서버에서는 “##”를 구분자로 문자열을 토큰하여 문자를 분석하게 됩니다. 만약 이런 규약을 클라이언트가 위배하여 메시지의 순서를 바꾼다든지, 부적절 한 메시지를 보내게 되면 서버에서는 이를 파악하지 못하고 항상 동일한 처리를 하게 되기 때문에 다른 클라이언트에게 적절치 못한 메시지를 전송하게 됩니다. 프로토콜의 설계기법 프로토콜의 설계는 클라이언트와 서버간의 통신 규약을 만드는데 필요한 데이터가 무엇인지 를 설계하는 것입니다. 프로토콜의 설계 하기위해서는 클라이언트에서 필요한 기능이 무엇인지를 생각하고, 그 기능 에 대해 필요한 데이터가 어떤 것이 있는지를 분석할 수 있는 능력이 있어야 합..
-
Languague/Java 2018.12.13 2[Java] 자바 네트워크 유니캐스팅과 멀티캐스팅 유니캐스팅과 멀티캐스팅 1. 클라이언트와 서버간의 지속적으로 일대 일로 통신하는 개념을 유니 캐스팅이라고 합니다. 2. 일대 다의 통신을 멀티 캐스팅이라고 합니다. 유니 캐스팅 유니 캐스팅을 구현하기 위해서는 필수 조건이 서버측에 스레드를 생성해서 TCP 소켓을 유지 해야 합니다. 멀티 캐스팅 유니 캐스트 모델은 실시간 프로그램에서 서버의 정보를 모든 클라이언트가 공유할 때 문제점이 있는데 이런 문제를 해결할 수 있는 방법이 일대 다 전송을 지원하는 멀티 캐스팅 방법입니다. 한명의 클라이언트가 서버의 정보를 변경했을 경우 모든 클라이언트에게 전송함으로써 서로가 변경된 정보를 공유할 수 있는 애플리케이션을 만들 때 적합합니다. 또한 멀티 캐스팅 프로그램을 작성하기 위해서는 유니캐스트에서 생성된 스레드를 저..
-
Languague/Java 2018.12.06[Java] 자바 네트워크 UDP 통신 소켓프로그래밍 UDP(User Datagram Protocol 1. UDP는 비 연결 지향이고, IP 위에 매우 얇은 레이어로 구성되어 있습니다. 2. UDP를 사용하는 애플리케이션은 TCP 프로그램에 비해 제어를 할 수 있는 부분이 적습니다. 3. UDP는 데이터를 전송할 때에 데이터가 잘 도착했는지 알아낼 방법이 없으며, 데이터를 보낸 순서대로 도착한다는 보장도 할 수 없습니다. 4. UDP는 TCP에 비해 훨씬 빠르게 전달된다는 장점이 있습니다. DatagramPacket 클래스 1. UDP 데이터그램은 java.net.DatagramPacket 클래스로 추상화한 것입니다. 2. DatagramPacket 클래스는 애플리케이션에서 주고 받을 데이터와 관련된 클래스이고, DatagramSocket 클래스는 실제 데..
-
Languague/Java 2018.12.05 2[Java] 자바 네트워크 TCP 통신 소켓프로그래밍 TCP 통신방식이란? 1. TCP란 소켓 프로그래밍 중의 하나로 스트림 통신 프로토콜이라고 부르며, 양쪽의 소켓이 연결된상태여야만 가능 하기 때문에 연결지향 프로토콜이라고도 합니다. 2. TCP 프로토콜은 신뢰성 있는 프로토콜이기 때문에, 송신한 쪽의 데이터가 수신 측에 차례대로, 중간에 유실되는 일 없이 도착 하는 것을 의미합니다. 그러려면 수신 측과 송신 측이 미리 연결을 맺고 연결된 순서대로 데이터를 교환해야 합니다. 3. 연결지향 방식은, 한번 연결되면 연결이 끊어질 때까지는 송신한 데이터가 차례대로 목적지의 소켓에 전달되는 신뢰성 있는 통신이 가능합니다. 4. 이렇게 신뢰성 있는 TCP 연결을 하기 위해서는 TCP 프로그래밍에서 사용하는 라이브러리의 사용 방법과 동작 순서를 정확하게 숙지, 이해..
-
Languague/Java 2018.12.04[Java] 자바 네트워크 URL 클래스와 URLConnection 클래스 URL클래스 1. URL 클래스는 URL을 추상화 하여 만든 클래스입니다. 2. URL 클래스는 final 클래스로 되어 있기 때문에 상속하여 사용할 수 없습니다. 3. 모든 생성자는 MalformedURLException 예외를 발생하기 때문에 반드시 예외처리를 해야 합니다. URL클래스의 주요생성자 URL클래스의 주요 메서드 URLConnection 클래스 URLConnection 클래스는 원격 자원에 접근하는 데 필요한 정보를 가지고 있습니다. 필요한 정보란 원격 서버의 헤더 정보, 해당 자원의 길이와 타입 정보, 언어 등을 얻어 올 수 있습니다. URL 클래스는 원격 서버 자원의 결과만을 가져 오지만, URLConnection 클래스는 원격 서 버 자원의 결과와 원격 서버의 헤더 정보를 가져 올 ..
-
Languague/Java 2018.12.03[Java] 자바 네트워크 InetAddress 클래스 InterAddress 클래스란? InetAddress 클래스는 IP 주소를 표현한 클래스입니다. 자바에서는 모든 IP 주소를 InetAddress 클래스를 사용합니다. InetAddress 클래스의 생성자 InetAddress 클래스의 생성자는 하나만 존재하지만, 특이하게 기본 생성자의 접근 제한자 default이기 때문에 new 연산자 객체를 생성할 수 없습니다. 따라서 InetAddress 클래스는 객체를 생성해 줄 수 있는 5개의 static 메서드를 제공하고 있습니다. InetAddress 객체를 생성하는 메서드 InterAddress 주요 메서드 InetAddress 클래스는 IP 주소를 객체화 했기 때문에 다양한 메서드를 제공하지 않습니다. 다만 호스트 이름과 호스트에 대응하는 IP 주소를 ..
-
Languague/Java 2018.12.02[Java] 자바 네트워크에 대한 이해 네트워크란? 1. 네트워크란 다른 장치로 데이터를 이동시킬 수 있는 컴퓨터들과 주변 장치들의 집합입니다. 2. 네트워크의 연결된 모든 장치들을 노드라고 합니다. 3. 다른 노드에게 하나 이상의 서비스를 해주는 노드를 호스트라 부릅니다. 4. 하나의 컴퓨터에서 다른 컴퓨터로 데이터를 이동시킬 때 복잡한 계층을 통해 전송되는데, 이런 복잡한 레이어의 대표적인 모델이 OSI 계층 모델입니다. 5. OSI 계층 모델은 모두 7계층으로 이루어져 있습니다. 6. 데이터 통신을 이해하는데 OSI 계층 모델은 상당한 역할을 하지만, 인터넷 기반의 표준 모델로 사용하는 TCP/IP 계층 모델을 주로 사용하고 있습니다. 7. 자바에서 이야기하는 네트워크 프로그래밍은 TCP/IP모델을 사용하고 있습니다. IP주소 1. 모든..
-
Languague/Java 2018.12.01 2[Java] 삼항연산자 사용법 & 예제 if문을 사용하여 코딩을 할 경우 코드 라인이 의미 없이 길어지는 경우들이 종종 생깁니다. if(){ }else if(){ } 이렇게만 해도 벌써 5라인이죠. 하지만 단순한 if문일 경우 라인수를 획기적으로 줄여주는 방식이 있습니다. 바로 삼항 연산자라는 것인데요. 이번 포스팅에서는 삼항 연산자의 사용법에 대해 알아보도록 하겠습니다. 삼항 연산자의 예를 가볍게 들어보겠습니다. 위와 같은 경우 괄호 안의 조건문이 참일 경우 int a에 50이 담기게 되고 거짓일 경우에는 40이 담기게 되는 코드입니다. 삼항 연산자는 (조건문) : ? 참 : 거짓이라는 문법을 가지게 됩니다. //if else int a; if(5 사용법 & 예제