VS Code3 Netty Encoder & Decoder 네트워크로 데이터는 row byte로 흘러 다니는데 그걸 수신하고 자기가 원하는 포멧으로 바꾸거나 (Decoder) 다시 네트워크로 보낼때 row byte로 바꿔주는 역활을 하는 것이라고 보면 된다. EchoServer를 다시 보면 들어오는것은 byte ▶ loggingHandler로 로그찍고(byte) ▶ StringDecoder (String) ▶ EchoServerHandler ( String) 으로 도착하게 된다. 그리고 나갈때는 EchoServerHandler ( String) ▶ StringEncoder ( byte ) ▶ LoggingHandler (byte) 로 흘러간다. channel.pipeline().addLast(new LoggingHandler(LogLevel.INFO)); // .. 2022. 1. 10. EmbeddedChannel 활용 (LineBasedFrameDecoder 테스트) LineBasedFrameDecoder 살펴보자 받은 bytebuf 데이터를 line endings , "\n","\r\n" 을 분리해준다고 한다. 밑에는 주루룩 읽어보면 될듯~ 자 그럼 앞에 있었던 코드를 바꿔보자 아래 내용으로 바꾸면 기대하는 건 channelRead 시에 안녕반가워 -> 두번째 반가워 -> 세번째 반가워 가 순서대로 도착할것같다 ByteBuf buf = Unpooled.buffer(); buf.writeBytes("안녕 반가워\n\n".getBytes()); // 변경 전 buf.writeBytes("안녕 반가워\n두번째 반가워\n세번째 반가워\n".getBytes()); // 변경 후 LoggingHandler에 byte형태로 수신된 첫번째 단락으로 보면 "\n" 은 0a 로 표시.. 2022. 1. 10. Netty Decoder with VS Code (1) Netty에는 다양한 Codec이 있다. 그걸 사용하면 왠만한 모든것들을 다 처리할수가 있을정도로 잘 되어 있다. 그중 Decoder에 대해 살펴보자 Decoder들은 아래 3개를 상속받아서 구현되어 있고, 자기만의 Decoder, Encoder를 만들수도 있다. ByteToMessageDecoder 여기에서 기본적으로 지원하는 디코더를 볼수 있다. ByteBuf를 내가 원하는 메시지 형태로 변경할 수 있다. 대부분 처음 수신될때 ByteBuf로 수신되기 때문에 pipeline 제일 앞쪽에 배치가 된다. 카페를 예를들면 우리나라 말로 한다고 한들 팔도 사투리가 다 들어올 것이다. 그럼 팔도 사투리들을 ByteBuf로 생각하고 종업원은 경상도 사람인데 (channelHandler로 보고) 미리 경상도로 바.. 2022. 1. 6. 이전 1 다음