본문 바로가기

프로그래밍/Java

(66)
Java_BeanUtils.copyProperties() BeanUtils.copyProperties() : 두 개의 Java Bean 사이에 속성 값(데이터)을 복사하는데 사용 소스 객체의 속성 값(데이터)을 대상 객체로 복사할 수 있음 public static void copyProperties(Object dest, Object source) throws IllegalAccessException, InvocationTargetException dest : 복사의 대상이 되는 객체 source : 객체로부터 속성 값(데이터)을 복사하는 객체 예제 @Data @NoArgsConstructor @AllArgsConstructor public class SourceBean { private String name; private int age; } @Data @N..
Java_옵저버 패턴 옵저버 패턴 : '이벤트'를 감시하여 이벤트가 발생할 때마다 미리 정의해둔 동작을 수행하게 해주는 프로그래밍 패턴을 옵저버 패턴이라고 한다. ex) eventListener와 같이 키보드를 눌렀을 때, 버튼을 눌렀을 때 이벤트가 발생했다 할 수 있다. 옵저버 패턴을 구현하기 위해서는 1. 인터페이스가 필요하다. 2. 인터페이스를 포함관계로 선언한다. 3. 인터페이스를 구현한 클래스를 받을 setter 메서드를 만든다. 옵저버 패턴 예제 IButtonListener 인터페이스 HTML 삽입 미리보기할 수 없는 소스 Button.java HTML 삽입 미리보기할 수 없는 소스 MainTest.java HTML 삽입 미리보기할 수 없는 소스 콘솔 화면
Java_스트림(Stream) java.util.Stream java.io 패키지에 있는 stream이 아님! java.util.stream : 컬렉션과 배열에서 데이터를 처리하는 기능을 제공한다. 스트림이란 ? : 배열이나 자료구조에서 쓸 수 있는 기능이다. - 자료의 대상과 관계없이 동일한 연산을 수행. 배열, 컬렉션을 대상으로 연산을 수행함. 일관성 있는 연산으로 자료의 처리를 쉽고 간단하게 함. - 한 번 생성하고 사용한 스트림은 재사용할 수 없음. 자료에 대한 스트림을 생성하여 연산을 수행하면 스트림은 소모됨. 다른 연산을 수행하기 위해서는 스트림을 다시 생성해야 함. - 스트림 연산은 기존 자료를 변경하지 않음. 자료에 대한 스트림을 생성하면 스트림이 사용하는 메모리 공간은 별도로 생성되므로 연산이 수행되도 기존 자료에 대..
Java_어댑터 패턴 어댑터 패턴 : 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다. 어댑터 패턴 예제 MyHouse 클래스 HTML 삽입 미리보기할 수 없는 소스 Airconditional 클래스 HTML 삽입 미리보기할 수 없는 소스 Cleaner 클래스 HTML 삽입 미리보기할 수 없는 소스 WashingMachine 클래스 HTML 삽입 미리보기할 수 없는 소스 IElectronic220v 인터페이스 HTML 삽입 미리보기할 수 없는 소스 IElectronic110v 인터페이스 HTML 삽입 미리보기할 수 없는 소스 HairDryer 클래스 (110v 연결) HTML 삽입 미리보기할 수 없는 소스 TencoAdapter 클래스 HTML 삽입 미리보기할 수 없는 소스 ..
Java_템플릿 메서드 패턴, 싱글톤 패턴, 빌더 패턴 템플릿 메서드 패턴 : 추상 클래스와 추상 메서드를 이용해 코드 중복을 줄이고 재사용성을 높일 수 있다. Teacher 클래스 HTML 삽입 미리보기할 수 없는 소스 MainTest HTML 삽입 미리보기할 수 없는 소스 싱글톤 패턴 : 객체를 생성할 때마다 메모리 영역을 할당받아야 하는데 new를 통해 객체를 한 번만 생성해서 메모리 낭비를 방지한다. HTML 삽입 미리보기할 수 없는 소스 빌더 패턴 : 생성자 오버로딩을 할 때 새롭게 추가되는 변수 때문에 모든 코드를 수정하지 않아도 된다. 또한, 매개변수가 많아도 호출하여 값을 넣을 수 있으니 코드의 가독성이 높아진다. HTML 삽입 미리보기할 수 없는 소스
Java_람다식(Lambda Expression) 람다식 (Lamda Expression) - 함수형 프로그래밍 방식 : 자바 8부터 함수형 프로그래밍 방식을 지원하고 이를 람다식이라고 한다. () -> {System.out.println("람다식");}; (x) -> {System.out.println(x + " {return x + y;}; System.out.println(iAdd.cal(10, 10)); System.out.println("--------------"); //람다식 정의 IPrint iPrint = (str, token) -> { System.out.println( str + ":" + token);}; //람다식 활용 iPrint.myPrint("람", "다"); System.out.println("--------------")..
Java_소켓(Socket) 통신 소켓(Socket) 통신 : 소켓통신이란 양 끝단에 포트 번호를 달아서 byte stream으로 통신을 통해서 데이터를 주고 받는 것을 뜻한다. (달아서 데이터를 주고 받음.) 소켓 통신을 하기 위해선 서버와 클라이언트가 필요하다. → 포트(port) 란 ? : 항구라는 뜻으로 한 컴퓨터에 여러가지 통신을 하고 싶다면 포트 번호가 필요하다. → 서버와 클라이언트 서버 : 서비스 제공자 / 클라이언트 : 고객 서버측 : ServerSocket → 연결만 받는다. / Socket → 실제로 데이터를 주고 받는다. 클라이언트측 : Socket → 어느 주소에 어느 포트로 연결해야 할지 먼저 알아야 한다. / ip 주소 : 포트번호가 필요하다. System 클래스의 표준 입출력 멤버 System.out : 표준..
Java_Input/Output 스트림(Stream) 자바의 입출력을 위한 스트림 : 자바는 다양한 입출력 장치에 독립적으로 일관성 있는 입출력을 입출력 스트림을 통해 제공한다. 자바 I/O란 데이터를 읽고 쓰는 작업을 말한다. 입출력 스트림 구분 대상 기준 입력 스트림 / 출력 스트림 자료의 종류 바이트 스트림 / 문자 스트림 기능 기반 스트림 / 보조 스트림 입력 스트림과 출력 스트림 입력 스트림 : 대상으로부터 자료를 읽어들이는 스트림 출력 스트림 : 대상으로 자료를 출력하는 스트림 스트림의 종류 종류 예시 입력 스트림 FileInputStream, FileReader, BufferedInputStream, BufferedReader 등 출력 스트림 FileOutputStream, FileWriter, BufferedOutputStream, Buffe..