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

netty6

Netty(6) - TCP Server with SSL Netty를 이용하여 TCP Server를 개발하고 있다. ​ 정해진 프로토콜에 맞게 통신하고 데이터 일부는 파일로 저장하고 저장된 파일을 분석하는 모듈이다. ​ 프로토타입의 개발이 완료되는 시점에 암호화 통신이 필요하다는 요구사항이 추가 되었다. ​ Netty는 아주 쉽게 이를 처리할 수 있다. ​ Netty의 구조를 잘 생각해 보면 pipeline 에 ssl 통신처리 handler 를 넣어주면 되지 않을까? 생각이 든다. ​ 일단 인증서를 만들어 보자. ​ java 의 keytool 을 이용해 만들수 있고 sign 알고리즘은 SHA256withRSA 를 이용하도록 했다. keytool -genkey -v -keystore server.jks -alias server_private -keyalg RSA.. 2021. 2. 19.
Netty(5) - TCP/IP 파일 송수신 web 을 주로 하다보면 network 프로그래밍을 할 경우가 많지 않다. spring 을 사용하다 보니 필요 시 spring integration 을 이용하거나 아주 간단할 경우 Socket을 직접 만들어 레거시한 코드를 작성하곤 한다. Netty는 네트워크 프로그래밍을 쉽고 간편하게 그리고 유연하게 할 수 있도록 도와주는 Framework 이다. 강력한 비동기 이벤트 드리븐 기반으로 동작하기 때문에 개발자는 Business Logic 에만 집중할 수 있다. ​ Netty 에 대한 기초공부와 Handler, Encoder, Decoder 등을 간단하게 살펴보고 File 을 주고받는 application을 개발해봤다. ​ 간단히 파일만 주고 받는 것이 아니라 전문통신을 통해 파일과 더불어 사용자 정보 등.. 2021. 2. 9.
Netty(4) - encoder/decoder 기본 지난 포스팅에서 ByteArrayDecoder를 이용하여 전문통신 하는 방법에 대해서 정리 해 봤다. ​ StringDecoder, ByteArrayDecoder... 등 encoder, decoder 가 무엇인지 netty 에서 codec 이란 무엇인지 정리해 보자. ​ Message 란? 우선 네트워크 프로그램에서 message 라는 용어는 application에서 의미 있는 byte 시퀀스 구조를 말한다. 보통 프로토콜에 맞는 전문이라고 표현하기도 한다. encoder 는 이 message를 전송할 때 적합한 형식으로 변환하고, decoder는 network stream을 다시 program의 message 포맷으로 변환하는 것을 말한다. ​ Codec 이란? 일반적으로 동영상 압축 알고리즘을 co.. 2021. 2. 9.
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.
728x90
반응형
LIST