본문 바로가기

프로그래밍/EmbeddedChannel 이란?3

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.