[JAVA] 네트워킹(Networking)
·
Java
네트워킹(Networking) 네트워킹(Networking)이란 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크(Network)를 구성하는 것을 말한다. 자바에서 제공하는 java.net패키지를 사용하면 이러한 네트워크 어플리케이션의 데이터 통신 부분을 쉽게 작성할 수 있다. 클라이언트/서버(client/server) 클라이언트와 서버는 컴퓨터간의 관계를 역할(role)로 구분하는 개념이다. 서비스를 제공하는 쪽이 서버, 제공받는 쪽이 클라이언트가 된다. 서버(server) 서비스를 제공하는 컴퓨터(service provider) 클라이언트(client) 서비스를 사용하는 컴퓨터(service user) 서비스는 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것을 뜻하며 서버가 제..
[JAVA] 스트림(Stream) API(4, Collectors, 그룹화와 분할)
·
Java
collect()와 Collector, Collectors collect()는 Collector(인터페이스)를 매개변수로 하는 스트림의 최종연산이다. Object collect(Collector collector) // Collector를 구현한 클래스의 객체를 매개변수로 Object collect(Supplier supplier, BiConsumer accumulator, BiConsumer combiner) // 잘 안쓰임 reduce()와 collect()은 reduce()이 스트림 요소 전체에 대한 리듀싱을 한다고 하면 collect()는 그룹별 리듀싱이 가능하다는 차이가 있다. 이처럼 스트림을 나눠놓고 작업을 할수 있다는 것이 collect()의 장점이다. Collector 인터페이스는 수집(c..
[JAVA] 표준 입출력과 File 클래스, 직렬화(Serialization)
·
Java
표준 입출력 자바에서 콘솔과 같은 표준 입출력 장치를 위해 운영체제 시스템과 관련된 기능을 제공하는 클래스 System을 정의해 놓았다. 모든 멤버가 static이기 때문에 별도의 인스턴스를 생성할 필요가 없으며 표준 입출력 관리와, 환경 변수 접근, 시스템 속성, 현재 ms / ns시간 확인, 객체 복사 등에 사용된다. 표준 입출력은 시스템에서 설정을 따르겠다는 뜻으로 일반적으로 표준 입력 장치는 키보드, 표준 출력 장치는 콘솔(console, 화면)을 의미하며 환경에 따라 다른 입출력 소스가 될 수도 있다. System클래스는 표준 입출력을 위해 in, out.error와 같은 클래스 변수를 제공한다. 자료형 멤버 변수 설명 static PrintStream out 표준 출력 스트림 static In..
[JAVA] 버퍼 스트림
·
Java
버퍼(Buffer) 버퍼란 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역을 말한다. 버퍼링 (buffering) 버퍼를 활용하는 방법 또는 버퍼를 채우는 과정을 말한다. 동시에 버퍼는 입력받은 값은 버퍼에 저장해두었다가 버퍼가 가득차거나 개행 문자가 나타나면 버퍼의 내용을 한 번에 전송하게 된다 그렇다면 버퍼를 왜 사용하는 걸까? 입출력을 수행하는데에 있어서 속도차이를 극복하기 위해 사용하는 임시 저장 공간인 버퍼를 사용한다. 예를 들어 입력 장치는 1초당 100개의 데이터를 전송할 수 있고, 출력 장치는 1초당 10개의 데이터를 전송받을 수 있을 때 버퍼가 없다면 입역 장치의 속도를 출력 장치의 속도에 맞춰 입력 장치의 효율이 크게 떨어진다. - 입력 ..
[JAVA] 쓰레드의 동기화(synchronization)
·
Java
쓰레드의 동기화(synchronization) 쓰레드의 동기화(synchronization)란 한 쓰레드가 진행중인 작업을 다른 쓰레드가 간섭하지 못하게 막는 것을 말한다. 싱글 쓰레드 프로세스라면 공유 데이터에 단 하나의 쓰레드 만이 접근하므로 문제가 되지 않는다. 하지만 멀티 쓰레드 프로세스의 경우 두 개 이상의 여러 쓰레드가 자원을 공유하기 때문에 데이터에 동시에 접근하게 된다면 다른 쓰레드에 영향을 미칠 수 있기 때문에 동기화가 필요하다. 동기화를 하지 않을 경우 class Main { public static void main(String args[]) { Runnable r = new RunnableEx13(); // RunnableEx13의 객체 r 생성 new Thread(r,"쓰레드1")..
[JAVA] 내부 클래스(Inner Class)
·
Java
내부 클래스(Inner Class) 내부 클래스란 클래스 내부에 선언된 또 다른 클래스를 말한다. 보통 클래스 선언시 메인 클래스 외부에 선언하거나 따로 독립적인 클래스 파일을 생성해 선언한다. class Main { } class B { } 내부 클래스는 클래스 내에 선언 된다는 점을 제외하고는 일반적인 클래스와 크게 다르지 않다. 클래스 내부에 클래스를 선언하는 이유는 두 클래스가 서로 긴밀한 관계가 있거나 하나의 클래스 또는 메서드 에서만 사용되는 클래스이기 때문이다. 내부 클래스로 선언 하면 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에서는 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점을 얻을 수 있다. class Main {// 외부 클래스 class B..
PP_D
'자바의 정석' 태그의 글 목록