DevTales
close
프로필 배경
프로필 로고

DevTales

  • 분류 전체보기 (83)
    • Lang (49)
      • Java (21)
      • Kotlin (3)
      • C (12)
      • Go (9)
      • Python (4)
    • Spring (13)
      • Data (2)
      • Kafka (2)
      • Security (0)
      • Webflux (9)
    • Infra (9)
      • Database (3)
      • Middleware (0)
      • Container (1)
      • OS (5)
    • Build (0)
    • CS (3)
      • Network (1)
      • Security (1)
      • Architecture (1)
    • Leaner's High (5)
    • 기타 (4)
  • 홈
  • 방명록
Netty - ByteBuf

Netty - ByteBuf

ByteBuf Netty로 서버나 클라이언트 코드를 작성하다 보면 거의 반드시 마주치는 객체가 있습니다. 바로 ByteBuf입니다.ChannelHandler에서 channelRead()를 구현할 때도, Encoder, Decoder를 만들 때도, 실제로 오가는 데이터는 모두 ByteBuf 형태로 전달됩니다. 처음 보면 Java NIO의 ByteBuffer와 비슷해 보이지만, 막상 다뤄보면 구조도 다르고 사용 방식도 크게 다르다는 걸 느끼게 됩니다. 특히 readerIndex, writerIndex, zero-copy 지원, 메모리 풀링 같은 개념은 ByteBuffer에는 없는 것들입니다. 그래서 이 글에서는 Netty ByteBuf가 무엇이고, 왜 굳이 ByteBuffer 대신 이런 별도의 타입을 제공하..

  • format_list_bulleted Spring/Webflux
  • · 2025. 12. 3.
  • textsms
Netty Server

Netty Server

Netty Server 이번 글에서는 앞서 Netty - EventLoop와 Channel 에서 살펴본 Netty로 간단한 echo server를 만들어보고, Codec과 Bootstrap에 대해 살펴보겠습니다. Netty - EventLoop와 ChannelNetty 고성능 네트워크 서버를 설계할 때 가장 먼저 맞닥뜨리는 한계는 스레드 기반 동시성 모델의 비효율성입니다. 요청마다 스레드를 생성하거나, 블로킹 I/O로 인해 스레드가 대기 상태에 머무freshdev.tistory.com BaseEchoServer @Slf4jpublic class BaseEchoServer { public static void main(String[] args) { EventLoopGroup parentG..

  • format_list_bulleted Spring/Webflux
  • · 2025. 12. 3.
  • textsms
Netty - EventLoop와 Channel

Netty - EventLoop와 Channel

Netty 고성능 네트워크 서버를 설계할 때 가장 먼저 맞닥뜨리는 한계는 스레드 기반 동시성 모델의 비효율성입니다. 요청마다 스레드를 생성하거나, 블로킹 I/O로 인해 스레드가 대기 상태에 머무르는 순간 시스템의 리소스는 급격히 소모되고, 예측 가능한 처리량을 유지하기 어려워집니다. 이 문제를 근본적으로 해결해 온 대표적인 프레임워크가 바로 Netty입니다. Netty는 단순히 “비동기 네트워크 라이브러리”가 아니라, 논블로킹 I/O 기반의 이벤트 드리븐 아키텍처를 정교하게 구현한 네트워크 애플리케이션 프레임워크입니다. 많은 고성능 서버, 분산 시스템, 심지어 Spring WebFlux의 Reactor Netty조차도 Netty의 스레딩 모델과 이벤트 처리 방식을 기반으로 동작합니다. Netty의 성능과..

  • format_list_bulleted Spring/Webflux
  • · 2025. 12. 2.
  • textsms
[Java] Multiplexer

[Java] Multiplexer

I/O Multiplexing 이란? I/O Multiplexing이라는 기술은 여러 개의 입출력 작업을 동시에 처리하는 기법을 의미합니다. 일반적으로 하나의 프로세스(혹은 싱글 스레드)가 여러 개의 I/O 요청을 처리해야 할 때 사용됩니다. 대표적인 예로는 Netty와 Redis와 같은 고성능 네트워크 애플리케이션이 있습니다. 그렇다면 Java에서는 I/O Multiplexing을 어떻게 구현할 수 있을까요? Java에서는 I/O Multiplexing을 구현하기 위한 핵심 컴포넌트로 Java NIO의 Selector를 사용합니다. 또한 운영체제에 따라 Selector의 여러 가지 구현체를 제공합니다. 이 Selector를 사용하면 Java에서도 I/O Multiplexing이 가능한 EventLoop..

  • format_list_bulleted Lang/Java
  • · 2025. 11. 25.
  • textsms
  • navigate_before
  • 1
  • navigate_next
전체 카테고리
  • 분류 전체보기 (83)
    • Lang (49)
      • Java (21)
      • Kotlin (3)
      • C (12)
      • Go (9)
      • Python (4)
    • Spring (13)
      • Data (2)
      • Kafka (2)
      • Security (0)
      • Webflux (9)
    • Infra (9)
      • Database (3)
      • Middleware (0)
      • Container (1)
      • OS (5)
    • Build (0)
    • CS (3)
      • Network (1)
      • Security (1)
      • Architecture (1)
    • Leaner's High (5)
    • 기타 (4)
최근 글
인기 글
최근 댓글
태그
  • #R2DBC
  • #Kotlin In Action
  • #점프 투 파이썬
  • #tucker의 go언어 프로그래밍
  • #비동기
  • #혼자 공부하는 C언어
  • #WebFlux
  • #Java의 정석
  • #java
  • #Netty
전체 방문자
오늘
어제
전체
Copyright © Kakao Corp. All rights reserved.
Designed by 티스토리

티스토리툴바