JSON(JavaScript Object Notation)이란 데이터 오브젝트를 네트워크를 통해 전달하기 위해 사람이 읽을 수 있는 텍스트를 사용하는 표준 포맷이다. 출처 : https://ko.wikipedia.org/wiki/JSON JSON의 표기 방식 객체 { "속성명" : 속성값, "속성명" : 속성값, ... } 속성명 : 반드시 큰 따옴표로 감싸야 한다. 속성값으로는 문자열, 숫자, boolean, 객체{...}, 배열[...]을 사용 가능하다. 배열 [항목, 항목, 항목, ...] 항목으로는 문자열, 숫자, boolean, 객체{...}, 배열[...]을 사용 가능하다. 자바 프로젝트에서 JSON 사용하기 GitHub - stleary/JSON-java: A reference impleme..
1. UDP란 User Datagram Protocol 발신자가 일방적으로 수신자에게 데이터를 보내는 방식 TCP보다 데이터 전송속도가 빠르다.(연결 요청 및 수락하는 과정이 없기 때문에) TCP처럼 고정회선이 아니라 여러 회선을 통해 데이터가 전송된다. ➡️ 데이터가 순서대로 전송되지 않거나, 잘못된 회선으로 인한 데이터 손실이 발생할 수 있다. 데이터 전달의 신뢰성이 중요한 경우 TCP를 사용해야 할 것 2. DatagramSocket, DatagramPacket UDP네트워킹을 위해서 자바에서는 java.net패키지에 DatagramSocket, DatagramPacket클래스를 제공한다. DatagramSocket : 데이터의 수신, 발신점 DatagramPacket : 주고 받는 데이터 3. 서..
1. TCP란 전송용 프로토콜 중 하나로 연결형 프로토콜이다. 상대방이 연결된 상태에서 데이터를 주고 받는 형식이다. 연결이 된 상태로 데이터를 주고 받기 때문에 보낸 순서대로 전달이 되며, 손실이 발생하지 않는다. IP와 함께 사용하기 때문에 TCP/IP 라고 흔히 부른다. 2. TCP통신 흐름 클라이언트가 연결을 요청한다. 서버 쪽에서 연결을 수락한다. (통신 회선이 고정된다.) 데이터를 전달한다. 3. 서버 1) SeverSocket 객체 생성 // #1 ServerSocket serverSocket = new ServerSocket(50001); // #2 ServerSocket serverSocket = new ServerSocket(); serverSocket.bind(new InetSocke..
java.io, java.nio.file 패키지는 파일과 디렉토리 정보를 가지고 있는 File, Files 클래스를 제공한다. Files는 File을 개선하여 더 많은 기능을 가지고 있다. 1. File 1) 객체 생성 방법 File file = new File("파일의 경로"); 2) 파일 존재 여부 확인하기 boolean isExist = file.exist(); 3) 파일이 존재하지 않는다면 메서드 설명 boolean createNewFile() 새로운 파일을 생성한다. boolean mkdir() 새로운 디렉토리를 생성한다. boolean mkdirs() 경로상 없는 모든 디렉토리를 생성한다. 4) 파일이 존재한다면 메서드 설명 boolean delete() 파일 또는 디렉토리 삭제 boolea..
1. 직렬화란 객체를 출력하기 위해서 필드 값들을 일렬로 늘어선 바이트로 변경하는 것을 말한다. 그렇다면 역직렬화(Deserialization)이란 직렬화된 바이트를 객체의 필드 값들로 다시 복구 시키는 것을 말한다. 2. Serializable 인터페이스 아무런 메서드와 필드가 없다 ➡️ 객체를 직렬화할 수 있다고 알려주는 역할만 한다. 자바는 Serializable을 구현한 클래스만 직렬화 할 수 있도록 제한하고 있다. 클래스의 인스턴스 필드 값들은 직렬화의 대상이다. 하지만, static 필드 값과 transient로 선언된 필드값은 직렬화에서 제외된다. 3. serialVersionUID 위에서 말했듯이 직렬화, 역직렬화를 하는데 있어서 기본 전제조건은 동일한 클래스여야 한다는 것이다. 하지만 동..
[Java] 데이터 입출력(1) 데이터 입출력이란 키보드, 파일 또는 프로그램으로부터 입력되거나, 모니터, 콘솔, 파일에 저장 및 출력되는 것들을 데이터 입출력이라 한다. 1. 입출력 스트림 1) 입출력 스트림이란 위의 정의 hyunbenny.tistory.com 1. 보조 스트림 다른 스트림과 연결되어서 여러가지 기능을 제공해주는 스트림 보조 스트림 단독으로는 입/출력 기능을 수행할 수 없다. ➡️ 직접 입/출력 스트림에 연결해서 사용해야 한다. 보조 스트림은 여러개를 연결하여 스트림 체인으로 구성할 수 있다. 1) 보조 스트림 연결 방법 보조 스트림을 생성할 때 생성자의 매개변수로 입/출력 스트림을 넣어준다. InputStream is = new FileInputStream(""); InputStre..
데이터 입출력이란 키보드, 파일 또는 프로그램으로부터 입력되거나, 모니터, 콘솔, 파일에 저장 및 출력되는 것들을 데이터 입출력이라 한다. 1. 입출력 스트림 1) 입출력 스트림이란 위의 정의와 같이 데이터를 입/출력 하기 위해서 자바는 스트림(입/출력 스트림)이란 것을 이용한다. 스트림이란 : 데이터가 한 방향으로 흐르는 것을 말한다. java.io 패키지에서 데이터의 입출력과 관련된 라이브러리를 제공한다. 2) 종류 a. 바이트 스트림 사진, 영상, 문자 등 모든 종류의 데이터를 입/출력할 때 사용한다. b. 문자 스트림 문자만 입/출력할 때 사용한다. 자바에서 스트림은 크게 위와 같이 2가지로 나눌 수 있고 아래에서 자세하게 알아보자. 2. 바이트 입/출력 스트림 1) 바이트 출력 스트림 a. 바이..
1. 동시성과 병렬성 1) 동시성이란 하나의 코어(CPU)에서 여러 쓰레드가 번갈아 가며 작업을 실행하는 것을 말한다. 한 시점에 하나의 작업만 실행한다. 하지만 처리속도나 번갈아 작업하는 것이 워낙 빠르기 때문에 동시에 처리되는 것처럼 보이는 것이다. 2) 병렬성이란 멀티 코어를 각각 이용하여 병렬로 작업을 실행하는 것을 말한다. 한 시점에 여러개의 작업을 동시에 실행하기 때문에 동시성보다는 작업효율이 좋다. a. 데이터 병렬성 전체 데이터를 분할하여 서브 데이터로 만들고, 이 서브 데이터를 병렬로 처리하는 것을 말한다.(자바 스트림이 데이터 병렬성을 구현한 것) b. 작업 병렬성 서로 다른 작업을 병렬 처리하는 것을 말한다.(클라이언트의 요청을 각각 다른 쓰레드에서 별도로 처리하는 서버 프로그램) 2..