본문 바로가기

프로그래밍44

Netty Pipeline 및 Codec 활용(4) 이전에 해봤던 LineBasedFrameDecoder 외에 자주 쓰이는 LengthFieldBasedFrameDecoder를 배워보자 Netty를 하면서 나에겐 가장 이해가 힘들었던 부분이기도 하다.( 내 실력 기준이다 ㅎㅎ) 우선 앞에서 해봤던 걸 티키타카 해보자 카페 오픈 ▶ 손님입장 ▶ 손님에게 인사하기 ▶ 손님응답하기 ▶ 주문받기 ▶ 금액말하기 우선 만들어보 보자 우선 서버코드는 간단하게 channelHandler에서 channelActive에서 환영인사, channelRead에서 액션을 보낸다 @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { logger.info("channelActive.."); .. 2022. 1. 10.
Netty Pipeline 및 Codec 활용(1) 편의점을 예로 들어 설명했었는데, 이번엔 카페로 한번 해보자. ( 명퇴나 은퇴하면 내 꿈이다.. ) 손님이 문을 열고 들어온뒤 손님을 대응하는 메뉴얼에 대한 절차라고 언급했던 내용을 다시 보자 CodecSample.java import org.slf4j.Logger; import org.slf4j.LoggerFactory; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.n.. 2022. 1. 10.
Netty Pipeline 및 Codec 활용(3) 손님이 와서 주문을 하는데 주문이 끝날때는 카드를 내밀어야 한다. 주문이 끝나기도 전에 카드를 내밀면 무조건 결제하고, 추가주문을 받는다는 원칙을 세웠다고 하자. 그럼 고객은 항상 주문이 완료되면 카드를 내밀것이다. 그걸 캐치해서 다음 단계로 진행시키고, 이후 다시 주문받고 하면 되겠다. ChannelHandler 중 Netty 샘플에서 가장많이 쓰는것이 아래 두개이다 LineBasedFrameDecoder : 라인단위로 가져와서 처리 LengthFieldBasedFrameDecoder : 앞에다가 내가 보낼 사이즈는 얼마야 라고 먼저 보내고 이야기를 하는것 그 중 LineBasedFrameDecoder 를 써보자 우선 설명을 보면 받은 ByteBuf를 \n, \r\n으로 나눈다고 한다 함수에 커서를 두.. 2022. 1. 10.
slf4j 와 logback연동 java에서 다양한 log framework이 있다. 요즘은 maven이나 gradle등으로 설정하면 다 되는데 생각보다 standalone으로 셋팅한는 법이 없어 정리해보려 한다. 그중에 logback 과 slf4j 연동을 한번 해보려 한다 slf4j 다운로드 https://www.slf4j.org/download.html 에서 보면 Maven central 에서 다운로드 받게 되어 있다 slf4j-api-{latest version}.jar 를 다운받는다 logback 다운로드 https://www.slf4j.org/manual.html 에서 보면 필요한 Library 등이 있다. 지원되는 다른 logger 들도 많다 설명에 보면 logback-classic-${logback.version}.jar .. 2022. 1. 10.