Java12 [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. [Java] 파일 ZIP압축 필수 클래스 FileOutputStream : 파일을 바이트 단위로 출력하기 위해 사용 FileInputStream : 파일을 바이트단위로 데이터를 읽어와 FileOutputStream을 통해 출력하기 위해 사용 ZipOutputStream : zip파일을 생성하기 위해 출력 스트림 사용 ZipEntry : Zip파일은 여러개의 파일을 압축할 때 사용 public void CompressZIP(HttpServletRequest request, HttpServletResponse response, Object handler) { String[] files = { "file1.pdf", "file2.jpg", "file3.txt" }; ZipOutputStream zout = null; String zipN.. 2023. 12. 6. 이전 1 2 3 다음