logo

Spring Webflux란 무엇인가?! - 1. Netty 이해하기!

language-logoNetty
language-logoSpring

• Spring Webflux는 비동기와 리액티브 프로그래밍을 기반으로 하며, Event-Driven 방식으로 요청을 처리하고, 작업이 완료될 때까지 다른 일을 하다가 처리가 완료되면 Callback 메서드를 통해 응답을 반환한다. 이를 통해 CPU, 쓰레드, 메모리 자원을 최대한 효율적으로 사용하여 고성능 애플리케이션 개발에 활용한다.
• Spring Webflux는 기본적으로 Netty를 내장 서버로 사용한다. Netty는 비동기 이벤트 기반 네트워킹을 지원하며, 자원이 항상 스레드를 점유하고 블록을 유지하지 않아 처리량이 대폭 증가한다. 또한, 스레드 수가 적고, 컨텍스트 스위칭 오버헤드를 줄일 수 있다.
• Netty의 EventLoop는 한 개의 쓰레드에서 동작하며, 들어간 순서가 보장되는 반면, EventLoopGroup은 여러 개의 EventLoop를 포함하고 있으며, 다른 EventLoop 간 쓰레드가 동일함을 보장하지 않아 순서를 보장하지 않는다.
• Netty는 Java NIO의 Channel과 유사한 자체적인 Channel을 만들어 사용하며, 이는 Pipeline이나 Future와 같은 추가 기능을 제공하고, ChannelFuture는 Channel I/O 작업이 완료되면 isDone이 ture가 되는 Future, FutureListener를 등록/삭제하여 Write이 완료되었을 때 비동기 처리 가능 등의 역할을 수행한다.

thumbnail
북마크
공유하기
신고하기
12분 분량
조회수 86
profile-imageVioletbeach
일 년 전
Copyright © 2025. Codenary All Rights Reserved.