자바 nio - 14 14. ServerSocketChannel 클래스와 SocketChannel 클래스 이제 실전에 들어가기 전에 ServerSocketChannel 클래스와 SocketChannel 클래스에 대해 먼저 알아보자. 이들은 net패키지의 ServerSocket클래스와 Socket클래스를 채널로서 다루고자 할 때 쓰는 SelectableChannel이다. 이들 네트워크 관련 채널들은 독자적으로 .. 오래된글/Java 2018.04.09
자바 nio - 13 13. Selector 클래스와 SelectionKey 클래스 java.nio.channels.Selector 클래스는 SelectableChannel(채널)들을 관리하는 클래스로서 SelectionKey의 인스턴스로 관리한다. 이런 채널들을(엄밀히 말하면 SelectableChannel클래스) 관리하는 것이 바로 Selector 클래스의 역활이다. Selector가 관리하는 SelectableChannel들은 전.. 오래된글/Java 2018.04.09
자바 nio - 12 12. SelectableChannel 클래스 자, 이제 1.4버전에서 새롭게 추가된 네트워크를 입출력 부분을 보자. 우선 크게 본다면 다음 3가지의 클래스를 반드시 이해를 해야한다. SelectableChannel 클래스 : 채널로서 관리대상(예들들어 서버소켓, 소켓....) Selector 클래스 : 채널 관리자. SelectionKey 클래스 : 채널.. 오래된글/Java 2018.04.09
자바 nio - 11 11. FileChannels 클래스 FileChannels는 파일입출력을 위한 채널로 AbstractInterruptibleChannel 클래스를 상속해서 비동기적으로 중단될 수 있게 되어있다. 그리고 ByteChannel 인터페이스를 구현해서 읽기와 쓰기를 동시에 할 수 있다. 1. FileChannels 클래스 객체 생성 FileChannels 클래스는 스스로 인스턴스를.. 오래된글/Java 2018.04.09
자바 nio - 10 10. java.nio.channels 클래스 이제부터 채널 클래스들을 살펴본다. 이들 클래스들은 앞서 살펴본 인터페이스를 하나 혹은 둘 이상을 구현하고 있다. 따라서 상속관계와 인터페이스를 구현에 따른 기능들을 유심히 살펴본다. 우선 전체적인 계층도를 보자. 채널 클래스들의 최상위 클래스는 java.. 오래된글/Java 2018.04.09
자바 nio - 9 9. java.nio.channels 인터페이스 이번장에서는 java.nio.channels 패키지에 정의되어있는 7개의 인터페이스를 살펴보자. 이들 인터페이스는 채널관련 클래스들이 주로 사용하는 메서드를 정의, 채널 클래스류에게 제공해 준다. 따라서 인터페이스와 그에 따를 메서드를 반드시 알아두는 것이 좋다... 오래된글/Java 2018.04.09
자바 nio - 8 8. java.nio.channels 패키지 소개 nio 패키지는 기존의 io패키지와는 달리 nonblocking을 지원해 준다. 이런 입출력의 nonblocking은 서버와 클라이언트간의 스레드의 과부하를 덜어주고 높은 성능과 효율성을 가진다. 이런 기능에서 중요한 역활을 하는 것이 SelectableChannel과 Selector 클래스이다. 우선 ch.. 오래된글/Java 2018.04.09
자바 nio - 7 7. CharBuffer 클래스 CharBuffer는 char 데이터 유형을 대상하는 버퍼로 특징은 1.4부터 추가된 java.lang.CharSequence 인터페이스를 구현하고 있다는 점이다. 다음은 CharBuffer의 클래스 선언문이다. public abstract class CharBuffer extends Buffer implements Comparable , CharSequence CharSequence 인터페이스를 구현하기 때문.. 오래된글/Java 2018.04.09
자바 nio - 6 6. ByteBuffer 클래스 우선 api문서에 있는 ByteBuffer 클래스의 선언은 다음과 같다. public abstract class ByteBuffer extends Buffer implements Comparable 선언부분을 보면 ByteBuffer 클래스는 Buffer 클래스를 상속하고 Comparable 인터페이스를 구현하고 있다. Buffer 클래스를 상속는 누누히 말해 온 것이고 Comparable 인.. 오래된글/Java 2018.04.09
자바 nio - 5 5. Buffer의 하위 클래스 버퍼류 클래스에는 boolean형을 제외한 나머지 기본형 데이터형에 맞는 Buffer 클래스들이 있다. 이들 클래스들은 각각의 데이터형에 맞는 여러 기능의 메서드를 가지고 있다. 또한 이들 하위 클래스들의 특징은 모두들 abstract 클래스인데 그 이유는 Heap Buffer와 Direct Buff.. 오래된글/Java 2018.04.09
자바 nio - 4 4. Buffer 클래스(java.nio.Buffer) nio 패키지에서는 boolean형을 제외한 자바 기본 데이터형을 다룰 수 있는 Buffer류 클래스를 제공해 준다. Buffer 클래스는 버퍼로서의 기본적인 기능을 정의하며 이를 상속받는 기본형 데이터를 위한 Buffer 클래스들이 있다. 메모리 매핑 버퍼인 MappedByteBuffer 클래스.. 오래된글/Java 2018.04.09
자바 nio - 3 3. 버퍼 기본 동작 Buffer 클래스류들을 살펴 보기전에 버퍼의 일반적인 동작에 대해 알아보자. 1. 버퍼의 기본 구조 버퍼는 시작과 끝이 잇는 일직선 모양의 데이터 구조를 가진다. 버퍼는 객체 생성시 크기가 결정이 되며 한번 결정된 크기는 절대로 변하지 않는다. 따라서 크기를 늘이고자.. 오래된글/Java 2018.04.09
자바 nio - 2 2. nio의 Buffer 1. Buffer 계층도 nio패키지에는 각종 데이터를 담는 Buffer류 클래스들이 있다. 이들 클래스는 모두 Buffer클래스를 상속받는데 버퍼 클래스는 여러 종류가 있어서 각각 기본형 데이터에 맞는 클래스들이 존재한다. 이들은 다음과 같은 클래스 계층도를 가진다. 가장 기본이 되는 .. 오래된글/Java 2018.04.09
자바 nio - 1 1. nio 패키지 소개 New I/O는 JDK1.4에서 새로 추가된 패키지이다. JDK1.4의 정식 명칭은 Java 2 Standard Edition JDK1.4이다. 흔히 Meriln이라고 부르는데 이는 개발시 프로젝트의 이름이다. 참고로 Meriln은 중세시대 아더왕의 전설에 나오는 마법사의 이름이기도 하지만 쇠황조롱이라는 매의 일종인 새의.. 오래된글/Java 2018.04.09