우주지상국 서브시스템들과 1:1 통신을 위한 Spring, Netty기반 TCP 클라이언트 공통 모듈을 개발하였습니다. Netty 프레임워크는 기존의 Socket 라이브러리를 사용하는 것과 비교해 다음과 같은 훌륭한 가치를 제공한다고 판단하여 선택하게 되었습니다.
Netty ByteBuf 는 immutable 하지 않습니다. 이 사실을 주의하여 코드를 작성하지 못해 문제를 만났고 간단한 리팩토링을 수행한 과정을 정리해 보았습니다.
Netty 프레임워크를 사용하여 TCP 클라이언트 프로그램을 개발하며 쉽게 이해되지 않는 문제를 만났습니다. 문제 해결을 위해 프레임워크 내부 코드를 살펴보았고 문제에 대해 분명하게 이해하고 또 문제를 해결할 수 있었습니다.
Netty 프레임워크를 활용해 TCP 서버, 클라이언트를 구성하고 간단한 메시지를 교환하는 테스트 코드를 작성합니다.
Netty 프레임워크에서 Blocking 발생하는 Handler 영향을 확인하고 Executor(EventLoop) 분리를 통해 문제를 해결합니다.
Netty를 사용해 네트워크 프로그래밍을 하며 메시지 전송과 관련된 문제를 만났습니다. 문제 해결을 위해 Netty 코드를 뒤지며 메시지 처리 구조를 분석한 결과를 정리해 봅니다.
AWS EC2 인스턴스 (1G 메모리) 에 올린 통신 서버(Netty 기반)에서 java.lang.OutOfMemoryError 예외가 발생합니다.
Netty | TCP Connection Timeout 값에 Integer.MAX_VALUE 를 사용하면 무한히 재연결 시도하는지 실험해 보았습니다.
Netty 기반 TCP 네트워크 프로그래밍 시 'TCP 연결 지속' 서비스를 제공합니다.