참고
Reactor Netty
NOTE
마이크로서비스 아키텍쳐에 적합한 리액터 네티는 HTTP(웹소켓 포함), TCP, UPD를 통한 네트워크 엔진을 제공한다.
•
순수 자바 코드로 소켓 프로그래밍을 작성하는 것보다 훨씬 편하게 코드 작성이 가능해짐!
◦
추상화
◦
안정적
◦
빠름
Netty 장점
•
TCP, SSL 지원
•
byte stream 데이터를 쉽게 읽어올 수 있도록 제공하는 ByteBuf클래스가 존재!
•
자바 NIO 사용을 쉽게 할 수 있도록 지원하여 한 번에 여러 기기와 통신 가능!
•
통신(Channel)내 Context유지 가능, (세션관리가 가능)
논블로킹 소켓의 동작방식
NOTE
언제든 읽기/쓰기 작업의 완료상태를 확인할 수 있어, 한 스레드로 동시에 연결을 처리해줌.
Netty는 소켓의 모드와 상관없이 개발할 수 있도록, 추상화된 API를 제공한다.
•
논블로킹 소켓에서의 read 메서드
◦
클라이언트가 아직 전송하지 않았거나, 데이터가 수신 버퍼까지 도달하지 않았다면, read메서드는 0을 리턴한다.
◦
비동기 호출이나 논블로킹 소켓을 사용하면 프로그램 복잡도가 증가한다.
(하지만 Netty는 이를 편하게 만들어줌!)