함수형 인터페이스
기본 함수형 인터페이스 Function 입력 O, 반환 O 데이터 변화, 필드 추출 등 @FunctionalInterface public interface Function<T, R> { R apply(T t); ... } Consumer 입력 O, 반환 X 로그 출력, DB 저장 등 @Functi...
기본 함수형 인터페이스 Function 입력 O, 반환 O 데이터 변화, 필드 추출 등 @FunctionalInterface public interface Function<T, R> { R apply(T t); ... } Consumer 입력 O, 반환 X 로그 출력, DB 저장 등 @Functi...
정의 함수형 프로그래밍을 지원하기 위한 핵심 기능 익명 함수 람다의 특징 람다를 사용하면 익명 클래스 사용의 보일러플레이트 코드를 크게 줄이고, 간결한 코드로 생산성과 가독성을 높일 수 있음 대부분 익명 클래스는 람다로 대체할 수 있음 람다를 사용할 때 new 키워드를 사용하지 않지만, 람다도 익명 클래스처럼 인스턴스가 생...
값 매개변수화(Value Parameterization) 문자값, 숫자값 처럼 구체적인 값을 매개변수를 통해 외부에서 전달 받고록 해서, 메서드의 동작을 달리하고 재사용성을 높이는 방법 public class Ex0Main { public static void helloJava() { System.out.println("프로그램...
필요 이유 예를 들어, 메서드 이름으로 URL경로를 매칭한다고 할 경우 add-user 같은 경로는 메서드 명 만으로는 매핑할 수가 없습니다. 이럴 때, 부가적인 정보를 사용할 수 있게 해주는 것이 어노테이션 입니다. 정의 @interface 키워드로 정의 인터페이스와 비슷하게 정의 @Retention(RetentionPolicy...
리플렉션이란? reflec에서 유래된 것으로, “반사하다” 또는 “되돌아 보다” 라는 의미를 가지고 있습니다. 클래스가 재공하는 다양한 정보를 동적을 분석하고 사용하는 기능을 의미합니다. 리플렉션으로 할 수 있는 것 클래스의 메타데이터 클래스 이름 접근 제어자 부모 클래스 구현된 인터페이...
요구 사항 입장: /join|{name} 처음 채팅 서버에 접속 할 때 사용자의 이름을 입력해야 한다. 메시지: /message|{내용} 모든 사용자에게 메시지를 전달한다. 이름 변경: /change|{name} 사용자의 이름을 변경한다. ...
클라이언트 → 서버 간 데이터 통신 단일 데이터 통신 public class ClientV1 { private static final int PORT = 12345; public static void main(String[] args) throws IOException { log("클라이언트 시작"); Socket sock...
스트림 출력 스트림: 자바 프로세스가 가지고 있는 데이터를 밖으로 내보내는 것 입력 스트림: 외부 데이터를 자바 프로세스 안으로 가져오는 것 byte 다루기 InputStream/OutputStream 일관성: 모든 종류의 입출력 작업에 대해 동일한 인터페이스를 사용할 수 있어 코드의 일관성 유지 유연성: 실제 데이터 소...
컴퓨터와 데이터 컴퓨터의 메모리는 트랜지스터라고 불리는 작은 전자 스위치가 모인 반도체로 만들어져 있습니다. 트랜지스터는 전기가 흐르지 않는 것과 흐르는 것을 0과 1로 표현합니다. 1bit: 2가지 표현 0 1 2bit: 4가지 표현 00, 01 10, 11 ...
스레드를 직접 사용할 때 문제점 스레드 생성 비용으로 인한 성능 문제 메모리 할당: 스레드를 생성할 때는 호출 스택을 위한 메모리를 할당 운영체제 자원 사용 스레드를 생성하는 작업은 운영체제 커널 수준에서 이루어짐 시스템 콜(system call)을 통해 처리 ...