EmbeddedChannel5 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. 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. 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. 이전 1 2 다음