네트워킹(Networking) (1) - InetAddress
·
자바/네트워킹
1. 네트워킹의 개념 - 네트워킹이란 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것을 말한다. - 자바에서 제공하는 java.net 패키지를 사용하면 이러한 네트워크 어플리케이션의 데이터 통신 부분을 단 몇 줄의 자바 코드만으로도 쉽게 작성할 수 있다. - 아래 2번부터는 간단한 네트워크 기본 개념을 다룰 것이므로, 가볍게 읽고 넘어가자. 2. 클라이언트/서버 - 클라이언트는 서비스를 사용하는 컴퓨터(Service User)이다. - 서버는 서비스를 제공하는 컴퓨터(Service Provider)이다. - 서버가 서비스를 제공하기 위해서는 서버 프로그램이 있어야 하고, 클라언트가 서비를 제공받기 위해서 서버 프로그램과 연결할 수 있는 클라이언트 프로그램이 있어야 한다. - 클라이언트는 ..
직렬화가 가능한 클래스 만들기 - Serializable, transient (2)
·
자바/입출력 IO
참고) 아래의 예제에서 사용될 UserInfo 클래스는 아래와 같다. package Serialization; public class UserInfo implements java.io.Serializable { String name; String password; int age; public UserInfo() { this("Unknown", "1111", 0); } public UserInfo(String name, String password, int age) { this.name = name; this.password = password; this.age = age; } public String toString() { return "("+ name + "," + password + "," + age..
직렬화가 가능한 클래스 만들기 - Serializable, transient (1)
·
자바/입출력 IO
1. 직렬화가 가능한 클래스를 만드는 방법 - 직렬화하고자 하는 클래스가 java.io.Serializable 인터페이스를 구현하도록 하면 된다. - 그저 아래 코드처럼 따로 구현할 필요없이 implements만 해주면 된다. public class UserInfo implements java.io.Serializable{ } - 또한 아래의 코드처럼 조상이 implements를 통해 직렬화하였다면, 자손도 직렬화가 가능하다. public class SuperInfo implements java.io.Serializable{ } public class UserInfo extends SuperInfo{ } - 그러나, 아래의 코드처럼 조상님의 인스턴스 변수(name, password)는 직렬화 대상에서 제..
직렬화(Serializtion): Object 입출력 스트림
·
자바/입출력 IO
1. 직렬화 - 직렬화(Serializtion)란? 객체를 데이터 스트림으로 만드는 것을 말한다. - 즉, 객체에 저장된 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것이다. - 반대로 스트림으로부터 데이터를 읽어서 객체를 만드는 것을 역직렬화(deserialization) 라고 한다. 2. ObjectInputStream과 ObjectOutputStream - 직렬화는 ObjectOutputStream을, 역직렬화는 ObjectInputStream을 사용한다. - ObjectInputStream과 ObjectOutputStream은 InputStream과 OutputStream을 직접 상속받지만, 기반 스트림을 필요로 하는 보조 스트림이다. - 그래서 객체를 생성할 때, 기반(주) 스트림을 ..