Netty
🌐 Netty란?
정의
Netty는 비동기 이벤트 기반 네트워크 애플리케이션 프레임워크다.
Netty는 네트워크 입출력을 쉽게 다루도록 도와주며, 고성능 서버와 비동기 통신 구현에 자주 사용된다.
🧭 특징
- 비동기 처리 기반이다.
- 높은 성능을 제공한다.
- 네트워크 확장성에 유리하다.
- 이벤트 중심으로 동작한다.
- TCP, WebSocket 같은 통신 처리에 활용할 수 있다.
🧱 구조
- Application Layer
- Transport Layer
- Network Layer
🔄 Event Loop
정의
Event Loop는 이벤트를 순차적으로 처리하는 루프 구조다.
Netty는 이벤트를 스레드에 효율적으로 배분해서 처리한다.
🧰 주요 클래스
Bootstrap
- 클라이언트용 설정 클래스
ServerBootstrap
- 서버용 설정 클래스
EventLoopGroup
- EventLoop를 묶어서 관리한다.
ByteBuf
- Netty의 버퍼 클래스다.
Future
- 비동기 작업 결과를 나타낸다.
Channel
- 네트워크 입출력을 담당하는 통신 단위다.
ChannelPipeline
- ChannelHandler가 연결되는 경로다.
ChannelHandlerContext
- 핸들러와 채널 사이의 연결 정보를 제공한다.
🔁 pipeline process
- 메시지를
Channel로 전달한다. ChannelPipeline으로 흘려보낸다.- 각
Handler가 순차적으로 처리한다. EventExecutor가 처리 스레드를 관리한다.- 결과가 다시
Channel로 전달된다. - 실제 네트워크 전송은 NIO Channel을 통해 수행된다.
🔍 Netty가 잘 맞는 경우
- 고성능 서버 개발
- 비동기 네트워크 처리
- WebSocket 서버
- RPC 기반 서비스
📌 정리
- Netty는 이벤트 기반 네트워크 프레임워크다.
- 비동기 처리와 높은 성능이 강점이다.
- NIO 위에서 동작하며, WebSocket과 gRPC 같은 통신 구조와도 잘 맞는다.
댓글남기기