Socket4 EmbeddedChannel with JUnit - 2 JUnit이라고 단위테스트용으로 쓰이는 모듈이 있다. 단위테스트 용 모듈 만들어놓고, 프로젝트 빌드 시 함수들 테스트 잘(?) 정의해놓고 함수에 대한 테스트를 자동으로 수행함으로 혹시 있을지 모를 버그들을 사전에 체크할 수가 있지. 그래봐짜~ 잘 짜여진 테스트 코드를 만드는것도 쉽지도 않구.. 어려운 문제다 JUnit을 써보자 ( with Visual Studio Code ) 우선 vscode 사이트에 가보면 JUnit4, JUnit5, TestNG가 있는데 JUnit4를 써보자 아직 빌드툴을 통해 프로젝트를 생성 안했으니 Unmanaged Folder 부분을 보고 필요한 Jar를 찾자 https://code.visualstudio.com/docs/java/java-testing#_junit-4 아래 폴.. 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. 01. Pipeline 테스트 간단히 하기(feat. EmbeddedChannel) - 1 Pipeline Netty에서 pipeline에는 channel Handler의 흐름을 기록하고 있다. 아래 코드를 보면 카페를 차리고 (Serverbootstrap), 문을 만들고, 카운터를 배치시키고 ( serverbootstrap.group(bossGroup, workGroup) ) 어떤말로 할지 결정하고 ( serverbootstrap.channel(NioServerSocketChannel.class) ) 그 다음에 손님이 왔을때 어떤 순서로 응대할지 정한 메뉴얼이 pipeline이다 LoggingHandler ▶ StringDecoder ▶ SampleClientHandler ▶ StringEncoder ▶ LoggingHandler 의 순서로 흐른다. serverbootstrap.handler.. 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 다음