지난 몇 년 동안 네티 프레임워크를 사용하여 우주 지상국 소프트웨어를 개발했습니다. 개발을 진행하면서 저와 동료들이 네티의 특징을 제대로 이해하지 못해 실수 했던 몇몇 경험들이 있는데 그 경험들을 바탕으로 네티의 중요한 구조적 특징들에 대해 나누어 정리해 보려고 합니다
특정 하드웨어 시스템을 제어하기 위해 Netty 기반 메시징 서버를 개발중입니다. 시험 중 특정 조건이 되면 타겟 시스템에서 일부 메시지를 처리하지 못하는 문제가 발생했는데요. 문제를 해결하기 위해 메시징 서버의 구조를 개선한 사례를 소개합니다.문제가 발생한 서버 시스
Java, Netty 기반 서비스에서 발생한 쓰레드 누수 이슈를 밑바닥에 있는 로그에서 시작해서 진짜 원인을 찾아서 해결한 귀납적 과정을 기록하며 객관화해 보았습니다.
좋은 기회였던 것 같습니다. 특정 도메인에서 다양한 외부 API 서버와 통신하는 컴포넌트를 연이어 개발할 수 있었습니다. 1년 동안 7개 정도의 통신 컴포넌트를 개발했네요. 통신 프로토콜은 모두 달랐지만 처리하는 구조는 유사했기 때문에 점진적으로 통신 컴포넌트를 개선해
Netty 기반 TCP 네트워크 프로그래밍 시 'TCP 연결 지속' 서비스를 제공합니다.
Netty | TCP Connection Timeout 값에 Integer.MAX_VALUE 를 사용하면 무한히 재연결 시도하는지 실험해 보았습니다.
AWS EC2 인스턴스 (1G 메모리) 에 올린 통신 서버(Netty 기반)에서 java.lang.OutOfMemoryError 예외가 발생합니다.
I had to use Telnet to control the sub-equipment while developing the space ground station software.
Netty를 사용해 네트워크 프로그래밍을 하며 메시지 전송과 관련된 문제를 만났습니다. 문제 해결을 위해 Netty 코드를 뒤지며 메시지 처리 구조를 분석한 결과를 정리해 봅니다.
Netty 프레임워크에서 Blocking 발생하는 Handler 영향을 확인하고 Executor(EventLoop) 분리를 통해 문제를 해결합니다.
Netty 프레임워크를 활용해 TCP 서버, 클라이언트를 구성하고 간단한 메시지를 교환하는 테스트 코드를 작성합니다.
Netty 프레임워크를 사용하여 TCP 클라이언트 프로그램을 개발하며 쉽게 이해되지 않는 문제를 만났습니다. 문제 해결을 위해 프레임워크 내부 코드를 살펴보았고 문제에 대해 분명하게 이해하고 또 문제를 해결할 수 있었습니다.
Netty ByteBuf 는 immutable 하지 않습니다. 이 사실을 주의하여 코드를 작성하지 못해 문제를 만났고 간단한 리팩토링을 수행한 과정을 정리해 보았습니다.
우리가 우주지상국 구축 프로젝트에 Netty 프레임워크를 선택한 이유 5가지 🔍