Netty

자바 네트워크 소녀 Netty" 공부하면서 정리한 내용입니다. Netty로 개발을 하다가 단위테스트를 어떻게 작성해야 할지 감이 잡히지 않았다. "자바 네트워크 소녀 Netty"를 보며 단위 테스트를 작성하는 방법을 알게 되었다. 먼저 Netty로 작성한 TelnetServer 코드를 보자. 1. Java 코드 Spring + netty로 작성한 Server 애플리케이션 코드이다. 더보기 NettyServerConfig @ComponentScan("org.example") @PropertySource("config/application.properties") @Configuration public class NettyServerConfig { @Value("${tcp.port}") private int ..
자바 네트워크 소녀 Netty" 공부하면서 정리한 내용입니다. 버퍼는 데이터를 저장하는 저장소로써 자바에서는 Buffer라는 추상클래스와 그 하위클래스를 제공하여, 저장된 데이터를 다양한 형식으로 읽고 쓰도록 메서드를 제공해준다. Netty에서는 자체적으로 바이트버퍼를 제공한다. 1. 자바의 바이트 버퍼 바이트 버퍼는 배열 상태를 관리하기 위해 3가지 속성을 가진다. 1. capacity: 버퍼에 저장할 수 있는 데이터로 한번 정하면 변경 불가능. 2. position: 읽기 또는 쓰기 작업 중인 위치(index) 3. limit : 읽고 쓸 수 있는 버퍼 공간의 최대치(capacity보다 크게 설정할 수 없음) 자바의 바이트버퍼는 읽기와 쓰기를 분리하여 생각해야 한다.(읽기 전용 인덱스, 쓰기 전용 인..
자바 네트워크 소녀 Netty" 공부하면서 정리한 내용입니다. 1. 이벤트 루프 a. 이벤트 처리 방식 애플리케이션이 이벤트를 처리하는 방법은 크게 2가지로 구분된다. 1. 이벤트 리스너 + 이벤트 처리 스레드 일반적으로 UI 프레임워크에서 사용하는 방식 이벤트 메서드를 이벤트 리스너에 등록하고, 이벤트가 발생했을 때 이벤트 처리 스레드(싱글 스레드)에서 등록된 메서드 수행 2. 이벤트 큐 + 이벤트 루프 1번 방식보다 프레임워크 구현이 복잡하지만 프레임워크 사용자는 간단하게 사용할 수 있음. 이벤트 큐에 이벤트 등록하고, 이벤트 루프가 이벤트 큐에 접근하여 처리 이벤트 큐는 다중 스레드(이벤트 루프)에서 공유 이벤트 결과를 돌려주는 방식으로는 콜백패턴과 퓨쳐패턴이 있다. b. 싱글스레드와 멀티스레드 이..
"자바 네트워크 소녀 Netty" 공부하면서 정리한 내용입니다. 1. 채널 파이프라인 a. 채널 파이프라인 구조 채널파이프라인은 채널과 이벤트 핸들러 사이에서 연결 통로 역할은 한다. b. 채널 파이프라인 구성 EventLoopGroup bossEventLoopGroup = new NioEventLoopGroup(1); EventLoopGroup workerEventLoopGroup = new NioEventLoopGroup(); try { ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(bossEventLoopGroup, workerEventLoopGroup) .channel(NioServerSocketChannel.class) ...
"자바 네트워크 소녀 Netty" 공부하면서 정리한 내용입니다. 1. 부트스트랩이란? 부트스트랩은 네티로 작성한 네트워크 애플리케이션의 동작 방식과 환경을 설정하는 도우미 클래스이다. 부트스트랩의 구조 및 네티 환경 설정은 다음과 같다 전송 계층(소켓 모드 및 I/O 종류) 이벤트 루프(단일 스레드, 다중 스레드) 채널 파이프라인 설정 소켓 주소와 포트 소켓 옵션 부트스트랩은 빌더 패턴을 사용하여 구현되어 있기 때문에 다양한 설정을 쉽게 할 수 있다. 부트스트랩은 ServerBootstrap / Bootstrap 클래스로 나뉘며, 둘다 AbstractBootstrap 추상클래스를 상속받는다. 2. ServerBootstrap 서버 애플리케이션을 구현할 때 사용. a. ServerBootstrap 설정 예..
이번 업무에서는 하나의 게이트웨이(클라이언트)로 다수의 장비에 tcp 소켓으로 접속하여 장비와 통신하는 업무를 맡게 되었다. 여기서 사용하게 된 네트워크 프레임워크로는 Netty를 사용하게 되었다. Netty에 대해 공부한 내용을 정리해 보겠다. 참고 도서는 "자바 네트워크 소녀 Netty" 이다. 1. Netty를 선택하게 된 이유? 기존 HTTP 클라이언트와 같은 범용 프로토콜은 확장성이 좋지 않다. 이는 특별한 목적을 위한 프로토콜을 구현할 때 많은 제약이 있다. Netty는 이러한 문제점을 해결하기 위해 나왔다. 장비와 통신하기 위해 TL1이라는 프로토콜을 사용하는 Netty를 사용하게 되면 특정 목적의 프로토콜을 구현할 때 편리할 것이라고 생각한다. 그럼 Netty에 대해서 알아보자. 2. Ne..
kmindev
'Netty' 태그의 글 목록