기초9 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. 04. ChannelHandler 란 ChannelHandler는 편의점에 손님이 들어왔을때 어떻게 응대할까?를 정의하는 것이라고 생각하면 쉬울 듯 하다. 즉, 어린 친구가 편의점에 왔을 때 눈높이를 낮추고 조곤조곤 이야기하고, 진상 손님이 오면 대응하는게 달라지 듯이 나름대로의 메뉴얼을 머릿속으로 가지고 있듯 여기서 나름대로의 메뉴얼을 만들 수 있을것 같다 ChannelHandler의 종류 ChannelHandler는 들어온 이벤트를 처리하는 ChannelInboundHandler와 나가는 이벤트를 처리하는 ChannelOutboundHandler가 있고, ChannelDuplexHandler는 나가는것과 들어오는것 이벤트를 두개다 처리하는 핸들러가 있다. ChannelHandler를 정의하자 하단 코드에서 p.addLast(new Dis.. 2022. 1. 6. 01. Netty EchoServer 만들기 여기서는 데이터를 수신 받아서 어떻게 핸들링 하는지 보면 될것 같다. 1. Visual Studio Code로 java project 하나 만들고 2. Reference Library 에 3개 추가 하자 3. EchoServer.java 특별한건 없다. 이름만 바뀌었을 뿐.. 그거외에 logger를 사용하기위한 설정외엔 특별한게 없다. logger를 각 단계별로 넣어서 어떤 이벤트가 발생하는지 볼수있게 했다. import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.config... 2022. 1. 6. 05. channeInboundAdapter 이벤트 순서 상당히 많은 이벤트 들이 있지만 실제 코딩상 주로 사용하는걸 보면 channelActive ▶ channelRead ▶ channelInactive 이렇게만 구현을 보통 많이 한다. 나머지는 필요 할(?) 경우도 있으니 아 이런게 있구나 이정도만 알아도 될듯 하다.. 실제 주요 흐름은 아래와 같다 더보기 channelRegistered, channelActive ▼ channelRead ▼ channelReadCompleted ▼ channelInactive, channelUnregistered 각각 살펴보자 1. void channelRegistered(ChannelHandlerContext ctx) The Channel of the ChannelHandlerContext was registered w.. 2022. 1. 6. 이전 1 2 3 다음