netty4 [Java][Netty] Codec Codec - 이벤트 핸들러를 상속받아서 구현한 구현체들 - 자주 사용하는 이벤트 핸들러들을 미리 구현해둔 코덱 묶음은 io.netty.handler.codec패키지에 있다. - 대표적인 코덱으로는 HTTP 코덱이 있다. Netty에서 인코더는 전송할 데이터를 전송 프로토콜에 맞춰 변환 작업 수행하는 것, 디코더는 반대 작업 수행 Codec의 구조 - 수신 : 인바운드, ChannelInboundHandler -> 디코더 - 송신 : 아웃바운드, ChannelOutboundHandler -> 인코더 인코딩/디코딩은 어플리케이션 내부의 데이터를 각 프로토콜에 맞는 데이터로 변환하는 작업 ex) Netty가 제공하는 Base64Encoder를 채널 파이프라인에 등록되어 있다면, 채널에 데이터를 기록하면 .. 2024. 1. 19. [Java][Netty] Bootstrap Bootstrap - '부트스트랩'은 네티로 작성한 네트워크 프로그램이 시작할 때 가장 먼저 수행됨 역할 1. 어플리케이션이 수행할 동작을 지정 2. 프로그램에 대한 각종 설정을 지정 설정항목 1. 이벤트 루프 - 소켓 채널에서 발생한 이벤트를 처리하는 스레드모델에 대한 구현이 담겨 있다. 2. 채널 전송모드 - 블로킹/ 논블로킹/ epoll 3. 채널 파이프라인 - 소캣 채널로 수신된 데이터를 처리할 핸들러들을 지정한다 부트스트랩의 구조 1. 전송계층(소켓 모드 및 I/O 종류) 2. 이벤트 루프(단일, 다중 스레드) 3. 채널 파이프라인 설정 4. 소켓주소와 포트 5. 소켓 옵션 6. 프로토콜 - 프로토콜은 채널파이프라인에 등록된 인코더/디코더에서 처리 ServerBootstrap(서버.. 2023. 12. 18. [Java][Netty] ChannelPipeline ChannelPipeline - 채널에서 발생한 이벤트가 이동하는 통로 - 이벤트 핸들러는 채널 파이프라인에 등록 - 채널 파이프라인은 자신에게 등록된 이벤트 핸들러들의 (순서가 있는) 묶음 채널에서 발생한 이벤트는 채널 파이프라인을 따라 흐른다. 흐르는 이벤트들을 수신하고 처리하는 기능은 이벤트 핸들러가 수행한다. 하나의 채널 파이프라인에 여러 이벤트 핸들러를 등록할 수 있다. Netty는 이벤트 처리를 위한 추상화 모델로서 채널 파이프라인을 사용한다. 소켓채널에서 발생한 이벤트가 이를 통로로 하여 이동한다. public class EchoServer { public static void main(String[] args) throws Exception { EventLoopGroup bossGrou.. 2023. 12. 15. [Java][Netty] Netty란? Netty란? 1. Netty는 Java로 구현된 이벤트 기반, 네트워크 어플리케이션 프레임워크 2. Netty는 서버와 클라이언트 애플리케이션 개발에 사용되며, 네트워크 프로토콜, 채널, 소켓같은 네이퉈크 관련 기능을 제공 3. Netty는 네트워크 입출력을 처리하는데 사용되며, 비동기I/O, NIO(Non-Blocking I/O)를 기반으로 한다. 주요 특징 1. 비동기I/O : Netty는 네트워크 입출력을 처리할 때 비동기 I/O를 사용하기 때문에 네트워크 입출력을 처리하는데 소용되는 시간을 최소화 할 수 있다. 2. 이벤트기반 : Netty는 이벤트 기반으로 구성되어 있어 네트워크 입출력 처리 시 이벤트를 처리하는 핸들러를 구현할 수 있다. 3. 다양한 프로토콜지원 : Netty는 TCP, .. 2023. 12. 14. 이전 1 다음