본문 바로가기

Reactive Java3

3. Reactive - Netty Netty 1. 비동기 이벤트 기반의 네트워크 어플리케이션 프레임워크 2. Http 등 다양한 프로토콜 지원 3. Java IO, NIO, selector 기반의 저 리소스 고 성능 보장 4. 불필요한 메모리 copy를 최소한으로, 유연하며 확장 가능한 이벤트 모델 기반이다. 5. 서버 및 클라이언트 모두 지원된다. NIOEventLoop - EventExecutor, TaskQueue, Selector를 포함한다 - EventExecutor : task를 실행하는 쓰레드풀 - TaskQueue : task를 저장하는 queue eventExecutor가 즉시 task를 수행하지 않고 taskQueue에 넣은 후, 나중에 꺼내서 처리 가능 - Selector : I/O Multiplexing을 지원 NI.. 2024. 4. 4.
2. Reactive - CompletableFuture CompletableFuture는 Java 8에서 비동기 프로그래밍을 지원코자 도입되었다. Lambda, Method Reference 등 Java 8의 새로운 기능을 지원한다. 1. Method Reference "::" 연산자를 통해 함수에 대한 참조를 간결하게 표현한다. 1) Method Reference 객체 메소드에 참조 2) Static Method Reference 스태틱 메소드에 참조 3) Instance Method Reference 클래스가 가지고 있는 인스턴스에 대한 참조 4) Constructor Method Reference 생성자 메소드의 참조 즉 메소드의 레퍼런스는 보통 참조의 표현보다 조금 더 간결하게 표현할 수 있는 표현식이다. 2. CompletableFuture Clas.. 2024. 4. 4.
1. Reactive - 함수형 인터페이스 / 블로킹 & 논블로킹 함수형 인터페이스는 1개의 추상 메소드를 가지고 있는 인터페이스이다. (Function, Consumer, Supplier, Runnable) 함수형 인터페이스는 1급 객체로 사용할 수 있어 1) 함수형 인터페이스에 변수를 할당 2) 함수형 인터페이스로 인자를 전달 3) 함수형 인터페이스를 반환값으로 사용 4) 함수형 인터페이스를 구현한 익명 클래스를 람다식으로 변경할 수 있다. 이 함수형 인터페이스는 호출한 Thread에서 실행된다. 이는 Bloking과 Nonbloking과 관련이 있다. 함수 호출의 관점에서 A -> B를 call 할 때, A -> B에서 B의 응답과정이 동기와 비동기로 나뉘는 요점이 된다. 즉 A -> B call 시에 A는 B가 어떤 결과를 반환하기까지 기다려야 하는 상황이면 블.. 2024. 4. 4.