🌐 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 같은 통신 구조와도 잘 맞는다.

연결문서

댓글남기기