본문 바로가기
728x90
반응형
SMALL

전체 글581

Netty(3) - Byte array 로 받기 - ByteArrayDecoder is not a @Sharable handler 진행해야 하는 프로젝트 중에 TCP 로 전문을 받아 정해진 프로토콜에 의해 전문을 Parsing 하고 전문에 포함된 File 을 저장하여 분석해야 하는 작업이 필요했다. ​ 이전까지는 Spring integration 을 이용하거나 간단한 경우 직접 native 한 code 를 작성해서 통신작업을 개발했다. ​ netty를 이용하면 multithread 등 고민해야 할 부분들이 아주 많이 사라지고 실제로 처리해야 하는 business logic 에만 집중할 수 있기 때문에 적용해 보았다. ​ childHandler 를 만들고 등록할 때 이 channel을 초기화 해 줘야 한다. 그리고 초기화 시 필요에 따라 encoder(outbound), decoder(inbound) 를 pipeline에 등록한다. .. 2021. 2. 5.
Netty(2) - Bootstrap Bootstrap 이란 Application의 동작 및 설정을 지정해주는 helper class 이다. 사전적 의미를 찾아보면 "그 자체의 동작에 의해서 어떤 소정의 상태로 이행하도록 설정되어 있는 방법" 이다. 같은 맥락이라고 이해하면 된다. ​ Bootstrap을 통해 Netty의 Socket mode 나 thread 등을 쉽게 설정할 수 있다. 그리고 EventHandler 또한 Bootstrap을통해 설정해야 한다. ​ Bootstrap은 ServerBootstrap 과 그냥 Bootstrap으로 나뉜다. ServerBootstrap은 Server용, 그냥 Bootstrap은 Client 용이라고 이해하면 된다. ​ Bootstrap 을 사용하는 예제 코드 @RequiredArgsConstruct.. 2021. 2. 4.
Netty 란 Netty 란? Netty는 TCP, UDP 소켓 서버 개발과 같은 네트워크 프로그래밍을 매우 간단하고 능률적으로 만들어주는 비동기 이벤트 드리븐 자바 네트워크 프레임워크다. ​ ​ 왜 사용할까? 성능이 좋다. - Non-blocking Asynchronous 가 기본 - 적은 thread로 많은 요청 처리 - GC부하를 최소화하는 Zero-copy ByteBuf 지원 ​ 유연하고 쓰기 쉽다 - 각종 network protocol 기본 지원 - 필요한 부분을 쉽게 조립해 쓸 수 있는 구조 - multithread 처리 없이도 사용 가능 ChannelHandler의 메소드는 동시에 불리지 않는다. Channel은 한 스레드에 할당되며 그 스레드에서만 호출 등록된 ChannelFutureListner도 그 .. 2021. 2. 2.
fibers.node` is missing node.js 버전을 하향조정 해 보자. ​ node.js 14.15.0 으로 설치 해서 build 시 fibers 를 찾지 못하는 오류가 발생한다면 ​ node.js 를 12.19.0 으로 설치하고 git 도 설치한 다음 ​ npm clean-install npm install npm run build ​ 하고 다시 webpack 해보자. ​ 잘 될 것 이 다.. ​ ​ 2021. 1. 14.
728x90
반응형
LIST