프로그래밍/Netty Encoder & Decoder5 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. 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. Netty Decoder with VSCode (2) 나만의 Decoder를 만들어 보자 VS Code 프로젝트 생성 VS Code에서 cmd+shift+p 누르고 Java Project 생성 입력창에 java라고 입력하면 Create Java Project 선택 나중에 gradle이나 maven을 해야겠지만 셋팅 귀찮음. 걍 빌드툴없이 프로젝트 생성하자. ( 필요한 파일들은 한땀한땀 옮겨야 한다.) 저장할 폴더를 선택하고 프로젝트명을 생성한 뒤 필요한 파일을 옮기자 JUnit, Log4J2 with Slf4j(설정파일포함-간단한거 가져옴), Netty를 가져오자 어떤걸 만들어볼까? 예제샘플에 많이 나오는 숫자를 보내면 절대값으로 바꿔주는걸 만들어보자. 첫번째. LoggingHandler를 달고, 두번째. Decoder내에서 ByteBuf를 받아서 Inte.. 2022. 1. 7. Netty Encoder with VSCode 2022.01.06 - [프로그래밍/Netty Encoder & Decoder] - Netty Decoder with VS Code 전 장에서 말했던 Decoder는 받아서 처리하는 것이고, Encoder는 받은 처리결과를 되돌려 주는것이라고 보면 된다. 여기에 보면 Encoder는 두개가 있다 MessageToByteEncoder 내가 만든 메시지를 Byte로 변환한다. Integer로 메시지 받아서 ByteBuf로 되돌려 준다. public class IntegerEncoder extends MessageToByteEncoder { @Override public void encode(ChannelHandlerContext ctx, Integer msg, ByteBuf out) throws Excep.. 2022. 1. 6. 이전 1 2 다음