본문 바로가기

vscode34

Netty Pipeline 및 Codec 활용(4) 이전에 해봤던 LineBasedFrameDecoder 외에 자주 쓰이는 LengthFieldBasedFrameDecoder를 배워보자 Netty를 하면서 나에겐 가장 이해가 힘들었던 부분이기도 하다.( 내 실력 기준이다 ㅎㅎ) 우선 앞에서 해봤던 걸 티키타카 해보자 카페 오픈 ▶ 손님입장 ▶ 손님에게 인사하기 ▶ 손님응답하기 ▶ 주문받기 ▶ 금액말하기 우선 만들어보 보자 우선 서버코드는 간단하게 channelHandler에서 channelActive에서 환영인사, channelRead에서 액션을 보낸다 @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { logger.info("channelActive.."); .. 2022. 1. 10.
Netty Pipeline 및 Codec 활용(1) 편의점을 예로 들어 설명했었는데, 이번엔 카페로 한번 해보자. ( 명퇴나 은퇴하면 내 꿈이다.. ) 손님이 문을 열고 들어온뒤 손님을 대응하는 메뉴얼에 대한 절차라고 언급했던 내용을 다시 보자 CodecSample.java import org.slf4j.Logger; import org.slf4j.LoggerFactory; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.n.. 2022. 1. 10.
Netty Pipeline 및 Codec 활용(3) 손님이 와서 주문을 하는데 주문이 끝날때는 카드를 내밀어야 한다. 주문이 끝나기도 전에 카드를 내밀면 무조건 결제하고, 추가주문을 받는다는 원칙을 세웠다고 하자. 그럼 고객은 항상 주문이 완료되면 카드를 내밀것이다. 그걸 캐치해서 다음 단계로 진행시키고, 이후 다시 주문받고 하면 되겠다. ChannelHandler 중 Netty 샘플에서 가장많이 쓰는것이 아래 두개이다 LineBasedFrameDecoder : 라인단위로 가져와서 처리 LengthFieldBasedFrameDecoder : 앞에다가 내가 보낼 사이즈는 얼마야 라고 먼저 보내고 이야기를 하는것 그 중 LineBasedFrameDecoder 를 써보자 우선 설명을 보면 받은 ByteBuf를 \n, \r\n으로 나눈다고 한다 함수에 커서를 두.. 2022. 1. 10.
Netty Encoder with VSCode (1) 앞에서 봤던 Decoder에 이어서 Encoder에 대해 알아보자 Decoder는 InBound로, Encoder는 Outbound에 쓰인다. 2022.01.07 - [프로그래밍/Netty Encoder & Decoder] - Netty Decoder with VS Code (2) 앞의 예제를 보면 마지막 오류난 코드를 보자 MyChannelHandler의 readChannel에 보면 writeAndFlush에서 Integer를 그대로 보냈다. 그러다 보니 읽는 쪽에(channel.readOutbound)에서는 Integer로 읽어야 하는데 ByteBuf로 읽으니 오류가 난것이다. 그럼 보낼때 ByteBuf로 보내면 되니 그렇게 Encoder를 작성 해보자 public class ChannelTest {.. 2022. 1. 10.