JAVA
-
JSON 데이터 형식JAVA 2023. 3. 20. 23:30
JSON(Javascript Object Notation) : 자바스크립트에서의 객체 표현 방식으로 초기에 자바스크립에서 사용하는 데이터 형식이었으나 여러가지 장점이 많아서 널리 쓰이게 됨. 네트워크 통신에서 가장 많이 사용되는 데이터 형식 네트워크로 전달하는 데이터가 복잡할수 구조화된 형식이 필요하며, 이때 JSON 및 XML 표현 방을 사용한다. 객체(Entity) 표기 배열 표기 { "속성명": 속성값 "속성명": 속성값 } [항목, 항목, ...] 속성명: 반드시 "로 감싸야 함 속성값으로 가능한 것 "문자열", 숫자, true/false 객체 { ... } 배열[ ...] 항목으로 가능한 것 "문자열", 숫자, true/false 객체 {...} 배열 [ ... ] JSON 라이브러리 추가 - ..
-
UDP 네트워킹JAVA 2023. 3. 20. 15:34
UDP(User Datagram Protocol) : 발신자가 일방적으로 수신자에게 데이터를 보내는 방식 장점 TCP와 달리 연결 요청 및 연결 수략 과정이 없기 때문에 상대적으로 데이터 전송 속도가 빠르다. 단점 데이터 전송 회선이 고정되지 않기 때문에 데이터 손실되거나 데이터의 순서가 섞일 수 있다. 데이터 전달의 신뢰성보다 속도가 중요한 통신에서 사용 - 실시간 영상 송출 등 자바에서 DatagramSocket과 DatagramPacket 클래스(java.net)를 통해 UDP 네트워킹을 지원한다. DatagramSocket - 발신점과 수신점을 담당 DatagramPacket - 데이터 송수신에 관여 UDP 서버 서버는 항상 클라이언트가 보낼 DatagramPacket을 받을 준비를 해야 한다. ..
-
TCP 네트워킹JAVA 2023. 3. 20. 11:57
네트워킹(networking) : 네트워크 상에서 데이터를 주고 받는 것 전송용 프로토콜(protocol) : 데이터를 주고 받기 위해 정의된 규칙 TCP(Transmission Control Protocol) - 상대방이 연결이 되면 데이터 전송하는 방식 UDP(User Datagram Protocol) - 상대방과의 연결 여부와 상관없이 데이터를 전송하는 방식 TCP는 상대방 연결이 확인된 통신 회선을 고정하여 송수신한다. - 데이터 손실이 적다. - 보낸 데이터가 순서대로 전달된다. 자바에서 TCP 네트워킹을 하기위해 ServerSocket과 Socket 클래스(java.net)를 제공한다. ServerSocket - 클라이언트의 연결을 수락하는 서버 측 클래스 - IP 주소와 객체를 생성할 때 바..
-
네트워크 입출력JAVA 2023. 3. 20. 11:56
데이터 입출력을 네트워크 영역으로 확장한 개녕 네트워크(network) : 여러 컴퓨터(단말기) 들을통신 회선으로 연결한 것 LAN(Local Area Network) : 가정, 회사, 건물 등 특정 영역 내에 위치한 컴퓨터를 연결한 것 WAN(World Area Network) : 라우터(Router)로 LAN과 LAN을 연결한 것(= 인터넷) 서버와 클라이언트 서버(Server) : 서비스를 제공하는 프로그램 - 클라이언트가 언제 서비스를 요청할지 알 수 없으므로 보통 24시간 항상 가동 - 클라이언트의 요청에 대해 처리하고 응답 클라이언트(Client) : 서버에서 제공하는 서버스를 요청하는 프로그램 - 사용자에 의해 수시로 시작되고 종료됨 IP 주소(Internet Protocol) 'ipconf..
-
보조 스트림JAVA 2023. 3. 17. 16:21
어플리케이션에서 데이터 입출력을 좀 더 편리하게 하기 위해서 사용 - 어플리케이션에서 처리하는 데이터의 형식과 실제로 입출력하는 데이터의 형식이 다른 경우 데이터의 입출력 성능을 향상시키기 위해 사용 보조 스트림은 단독으로 사용할 수 없다. - 주 스트림에 결합하여 사용 보조 스트림에도 다른 보조 스트림을 연결할 수 있다.(스트림 체인) 보조스트림 변수 = new 보조스트림(일출력스트림); //파일로부터 직접 InputStream 얻기 InputStream is = new FileInputStream("..."); //문자 변환 보조 스트림을 InputStrem에 결합 InputStreamReader reader = new InputStreamReader(is); //BufferedReader 보조 스트..
-
데이터 입출력JAVA 2023. 3. 17. 12:00
입출력 스트림 파일에 데이터를 저장하고, 파일의 데이터를 읽는 방법 스트림에서 데이터는 단방향으로 흐른다. - 실제로 데이터는 바이트 단위로 흘러간다. 입력 스트림 프로그램을 기준으로 데이터가 들어오는 스트림 키보드, 파일, 프로그램 등 출력 스트림 프로그램을 기준으로 데이터가 나가는 스트림 모니터, 파일, 프로그램 등 바이트 스트림 그림, 멀티미디어, 문자 등 모든 종류의 데이터를 입출력할 때 사용 프로그램을 기준으로 데이터를 바이트 단위로 주고 받는 스트림 문자 스트림 프로그램을 기준으로 문자 데이터를 주고 받는 스트림 - 실제 주고받는 데이터는 바이트 형식이다. - 프로그램 기준으로 편의 상 문자/바이트로 구분하여 클래스로 구현되어 있음. 문자만 입출력할 떄 사용 입출력 스트림의 종류 구분 바이트 ..
-
스트림 요소 처리JAVA 2023. 3. 16. 16:07
요소 걸러내기(필터링) 오리지널 스트림 요소 중 최종 처리 대상에 해당되는 요소만 추출하기 위한 중간 처리 기능 필터링 메소드 메소드 설명 Stream IntStream LongStream DoubleStream distinct() 중복 제거 filter(Predicate) 조건 필터링 매개변수의 타입은 요소 타입에 따른 함수형 인터페이스이므로 람다식 작성 가능 filter(IntPredicate) filter(LongPredicate) filter(DoublePredicate) fliter() 메소드는 false 인 요소를 제외하고, true인 요소로만 이루어진 스트림을 새로 생성한다. Predicate(함수형 인터페이스)의 추상 메소드 인터페이스 추상 메소드 설명 Predicate boolean te..
-
스트림(Stream)JAVA 2023. 3. 16. 13:23
물이 흐르듯이 객체를 연속척으로 처리하는 기능 요소들이 하나씩 흘러가면서 처리된다는 의미 람다식을 이용 스트림의 특징 처리 속도가 빠르고, 병렬 처리에 효율적(= 내부 반복자의 특징) 람다식으로 다양한 요소 처리 정의 가능 중간 처리와 최종 처리를 수행하도록 파이프 라인 형성 가능 내부 반복자 내부 반복자 : 요소 처리 방식을 컬렉션 내부로 주입시켜 내부에서 요소를 반복 처리 외부 반복자 : 컬렉션의 요소를 컬렉션에서 반복적으로 꺼내와서 처리 스트림을 이용하면 병령 처리가 가능하며, 이로 인해 CPU 처리 효율성 증대를 꾀할 수 있다. - 처리하는 요소가 적을 때는 멀티 스레드보다 싱글 스레드가 더 효율적이다. - 멀티 스레드 등의 병렬 처리는 처리하는 요소가 많을 경우에 더 효율적이다. 중간 처리와 최..