반응형

Netty 기초 2

Netty ByteBuf - 바이트 버퍼

앞서 언급한 것처럼 네트워크 데이터의 기본 단위는 항상 바이트이다. 자바 NIO는 ByteBuffer라는 자체 바이트 컨테이너를 제공하지만 이 클래스는 사용법이 너무 복잡해 사용하기 부담스럽다. 네티에는 네트워크 개발자에게 더 나은 API를 제공하는 강력한 구현인 ByteBuf가 있다. 네티는 데이터 처리를 위한 API를 ByteBuf 추상 클래스와 ByteBufHolder 인터페이스라는 두 컴포넌트를 통해 노출한다. ByteBuf API의 장점은 다음과 같다. 사용자 정의 버퍼 형식으로 확장할 수 있음 내장 복합 버퍼 형식을 통해 투명한 제로 카피를 달성할 수 있음. 용량을 필요에 따라 확장할 수 있음(JDK의 StringBuilder와 비슷) ByteBuffer의 flip() 메서드 호출 없이도 리더..

IT 2020.12.29

Java Netty 에코 서버-클라이언트 구현하기

Echo 서버 만들기 모든 네티 서버에는 다음 항목이 필요하다. 하나 이상의 ChannelHandler : 이 컴포넌트는 클라이언트로부터 받은 데이터를 서버측에서 처리하는 비즈니스 논리를 구현한다. 부트스트랩 : 서버를 구성하는 시동 코드를 의미한다. 최소한 서버가 연결 요청을 수신하는 포트 서버와 바인딩하는 코드가 있어야 한다. ChannelHandler와 비즈니스 논리 Echo 서버는 들어오는 메시지에 반응해야 하므로 인바운드 이벤트에 반응하는 메서드가 정의된 ChannelInboundHandler 인터페이스를 구현해야 한다. 관심을 가질 메서드는 다음과 같다. channelRead() : 메시지가 들어올 때마다 호출된다. channelReadComplete() : channelRead()의 마지막 ..

IT 2020.12.09
반응형