🔹 JDK 17 이전에도 이미 Reactive Streams가 존재했음

JDK 9(2017년)에 java.util.concurrent.Flow 패키지가 추가되면서 Reactive Streams 표준 API가 도입됨.

즉, Reactive 기능 자체는 JDK 9부터 이미 지원하고 있었음.


✅ 그럼 왜 JDK 17이 C10k 문제 해결과 관련 있다고 하는 걸까?

 

JDK 17에서 새롭게 추가된 Reactive 기능이 직접적으로 C10k 문제 해결을 위한 것은 아님.

하지만 JDK 17이 Reactive 기반 서버 구현에서 중요한 역할을 한 몇 가지 변화가 있었음.

 

🛠 JDK 17과 관련된 Reactive 및 성능 최적화 변화

1. JEP 356: Enhanced Pseudo-Random Number Generators

병렬성 향상을 위한 난수 생성기 개선 (이벤트 기반 아키텍처에서 더 나은 성능 제공)

2. JEP 382: New macOS Rendering Pipeline

GUI 성능 개선이지만, 전반적인 애플리케이션의 비동기 처리 최적화

3. JEP 403: Strongly Encapsulate JDK Internals

내부 API가 캡슐화됨 → 기존의 일부 Reactive 라이브러리가 영향을 받을 수 있음

4. JEP 409: Sealed Classes

다형성을 활용한 확장성을 개선 (비동기 스트림과 연관된 디자인 패턴 활용)

5. JEP 411: Deprecate Security Manager for Removal

보안 관리자를 제거하는 과정에서 일부 네트워크 관련 성능 향상


✅ JDK 17이 C10k 대응에 간접적으로 기여한 부분

 

JDK 17은 Java의 장기 지원 버전(LTS)이면서, 최신 버전에서 더 나은 성능을 제공하는 역할을 했음.

특히, Spring WebFlux, Project Reactor, Akka Streams 같은 Reactive 기술이 JDK 17을 활용하면서 성능 최적화를 이루었음.