🌐 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

  1. 메시지를 Channel로 전달한다.
  2. ChannelPipeline으로 흘려보낸다.
  3. 각 Handler가 순차적으로 처리한다.
  4. EventExecutor가 처리 스레드를 관리한다.
  5. 결과가 다시 Channel로 전달된다.
  6. 실제 네트워크 전송은 NIO Channel을 통해 수행된다.

🔍 Netty가 잘 맞는 경우

  • 고성능 서버 개발
  • 비동기 네트워크 처리
  • WebSocket 서버
  • RPC 기반 서비스

📌 정리

  • Netty는 이벤트 기반 네트워크 프레임워크다.
  • 비동기 처리와 높은 성능이 강점이다.
  • NIO 위에서 동작하며, WebSocket과 gRPC 같은 통신 구조와도 잘 맞는다.

연결문서

댓글남기기