프로그래밍 (59) 썸네일형 리스트형 네트워크 통신(2) 네트워크 통신(2) 날짜: 2021년 6월 15일 학습목표 지난 포스팅에서 자바를 통한 네트워크 통신 중 TCP통신 방식에 대해 알아보았다. 이번 포스팅에서는 UDP 통신에 대해서 직접 구현해보자. UDP 프로그래밍 UDP 통신을 위해 알아야 하는 Datagram 클래스 이번 포스팅에서는 UDP 통신을 하는 법을 알아보자. UDP는 TCP와 달리 데이터가 제대로 전달되었음을 보장하지 않는다. 따라서 유실되어도 무관한 데이터들에 한해서만 사용하는게 좋겠다. UDP통신을 하려면 TCP와 마찬가지로 데이터를 주고 받기 위한 클래스가 필요하다. 여기서 TCP와는 다르게 클래스 하나에서 주고 받는 역할을 모두 수행할 수있다. 바로 Datagram 클래스이다. TCP에서는 스트림을 사용해 데이터를 주고 받았으나, .. 네트워크 통신(1) 네트워크 통신(1) 날짜: 2021년 6월 15일 학습목표 자바를 통한 네트워크 통신에 대해서 알아보자. 자바의 신 교재를 통해서, 간략하게 네트워크 프로그래밍에 대해 알아보고, 코드로 실습해보자. 네트워크 프로그래밍이란? Socket프로그래밍 UDP 프로그래밍 네트워크 프로그래밍 이란? 사용자들이 바로 옆의 장비와 데이터를 주고 받는 작업을 네트워킹(networking) 이라 한다. 네트워크 계층 이런 네트워크는 총 7가지 계층으로 이루어져 있으나, 이 포스팅에서는 간단하게 알아보고, 추후에 7가지 계층에 대해서 자세히 알아보자. 위 그림의 애플리케이션 레이어 중 대표적인 HTTP, ftp, telnet들은 모두 TCP(Transmission Control Protocol) 통신을 한다 만약 자바로 T.. Buffer Buffer 날짜: 2021년 6월 14일 학습목표 통산 Buffer에 데이터를 쌓아두었다가 한번에 저장하는것이, 데이터를 받자마자 저장하는 방식보다 더 효율이 좋다고 한다. 왜일까? 기존에 알고있던 지식으로는 데이터를 일일이 받을때마다, 디스크까지 저장하는 방식이 느리기 때문에, 속도가 빠른 버퍼메모리에 데이터를 쌓아뒀다가, 한번에 저장하는것이 더 효율적이다. 라고 알고있었다. 지난 멘토링에서 '블록' 개념에 대해서 알고있어야 한다고 들었다. 버퍼와 블록, 이 둘을 연관지어 왜 버퍼를 사용하는것이 더 효율적인지 알아보자. 버퍼를 쓰면 더 빠른이유 버퍼와 블록 버퍼를 쓰면 더 빠른이유 기존에 알고있던 지식 데이터를 저장할때마다 속도가 느린 디스크에 저장하는것보다, 일정량의 데이터를 모았다가.. NIO(3) NIO(3) 날짜: 2021년 6월 14일 학습목표 NIO를 이해하기 위해 Non-Block VS Block의 방식에 대한 개념을 공부했고, 그와 유사한 개념인 Sync VS Async 까지 공부했다. 그럼 배웠던 개념들을 토대로 왜?? NIO가 IO보다 빠른지, 또 NIO의 특징인 Buffer클래스는 어떤 특징이 있는지 알아보자. NIO는 왜 IO보다 빠른가? NIO의 버퍼란? NIO는 왜 IO보다 더 빠를까? 먼저 기존 자바의 I/O는 왜 느린지 알아보자. 기존 Java I/O가 느렸던 이유 ! http://eincs.com/2009/08/java-nio-bytebuffer-channel-file/ http://eincs.com/2009/08/java-nio-bytebuffer-channel-file.. NIO(2) NIO(2) 날짜: 2021년 6월 14일 학습목표 NIO는 IO와 달리 Non-blocking 방식의 입출력이라고 한다. 그때문에 IO보다 훨씬 빠르다고 하는데, Nonblocking 과 blocking의 개념과, 그리고 그와 비슷하지만서도 다른, sync async에 대해서 먼저 알아보자. Synchronous VS Asynchronous Non-Block VS Block 4가지 개념 정리 Synchronous VS Asynchronous 동기와 비동기는 결과에 대한 처리를 누가 담당하느냐에 따라 나뉘는 방식이다. Synchronous : 특정 프로세스를 호출한 프로세스가 그에대한 결과까지 처리한다. 때문에 두개 이상의 대상(함수 or 애플리케이션)의 시작,종료시간이 일치하게 된 Java 코드의 기본.. NIO(1) NIO(1) 날짜: 2021년 6월 14일 학습목표 자바의신 교재를 통해 NIO에 대해서 간략하게 알아보자. NIO란? NIO 문법 및 실습 NIO의 Buffer 클래스 NIO란? JDK1.4 부터 NIO(New IO)가 추가되었다. NIO가 생긴 이유는 단 하나다. 바로 속도때문이다. NIO는 스트림을 사용하지 않고, 채널(Channel)과 버퍼(Buffer)를 사용한다. NIO는 왜 쓰나? : IO보다 빠르다. NIO와 IO의 차이점 : IO는 스트림을 쓰지만, NIO는 채널과 버퍼를 사용한다. NIO를 직접 사용해보자! NIO를 예제코드를 통해서 직접 사용해보고, 이해해보자. package nio; import java.io.FileInputStream; import java.io.FileNotFo.. Serializable(3) Serializable(3) 날짜: 2021년 6월 13일 학습목표 저번 포스팅까지 자바의신 교재를 통한 직렬화에 대한 공부는 끝마쳤다. 언제나 그랬듯이, 이게 뭔가?.. 그냥 문법을 익히는 정도로만 끝난 것 같다. 이번 포스팅에서는 자바 직렬화에 대해서 아래의 항목들을 좀더 자세히 공부해보자. 자바 직렬화는 왜 쓰는가? 직렬화의 종류 자바 직렬화는 어디에 쓰이는가? 자바 직렬화의 장단점 DMP Serializable 사례 분석 자바 직렬화는 왜 쓰이는가? 직렬화가 왜? 쓰이는지 알아보기 이전에 먼저 직렬화의 종류들에 대해서 알아보자. 문자열 형태의 직렬화 직접 데이터를 문자열 형태로 확인 가능한 직렬화다. 범용적인 API나 데이터를 변환해 추출할 때 많이 사용된다. 표형태의 다량의 데이터를 직렬화 시 .. Serializable(2) Serializable(2) 날짜: 2021년 6월 13일 학습목표 저번 포스팅에서 간단하게 Serializable의 정의와 용도에 대해서 알아봤다. 그럼 실제로 이런 직렬화는 어떻게 쓸수있는지 코드로 실습해보고, 또 어떤 특징들이 있는지 파악해보자. 객체를 파일에 쓰고 읽는법 DMP Serializable 사례 분석 객체를 저장해보자. 자바에서는 ObjectOutputStream클래스를 사용하면 객체를 저장할 수 있다. 또 반대로 ObjectInputStream클래스를 사용하면 객체를 읽어드릴수 있다. 먼저 객체를 저장하는 법을 알아보자. 먼저 예제 코드에 사용될(저장되고 읽힐) DTO클래스 코드이다. package serializable; public class SerialDTO { private S.. 이전 1 2 3 4 5 6 ··· 8 다음