Netty21 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. 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 4 5 6 다음