Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

서론

액터 모델과 자바 생태계의 변화

제가 액터 모델을 처음 접한 시점은 C++ IOCPSOCK을 활용해 고성능 서버를 개발하고, 북미 기준 동일 카테고리 TOP3 트래픽을 처리하던 때였습니다. (Java 7 시점 기준)

웹과 모바일 중심으로 생태계가 전환되던 시기에 Java로 전환이 필요했지만, 당시 Java 7은 현재 널리 사용되는 Netty 기반 고성능 IO와 같은 기능을 대부분의 웹 프레임워크에서 제대로 지원하지 못했습니다.
스프링 시리즈도 성능 한계가 커 실서비스에는 적합하지 않았습니다.
그 결과 선택한 것이 바로 PlaFrame(+Akka) 기반의 프레임워크였습니다.

...

자바의 발전: WebFlux와 가상 스레드

최근 자바는 WebFlux 및 **가상 스레드(Virtual Thread)**를 포함하여, 스레드 의존도가 낮고 더 적은 리소스로도 높은 효율을 내는 고성능 동시성 IO가 크게 발전했습니다.

이는 과거와 달리 자바가 단순히 전통적인 스레드 풀 기반의 병렬 처리 모델에 머물지 않고, 언어 차원에서 반응형(reactive) 아키텍처와 동시성 개선을 지원하도록 진화한 결과입니다.

...

넷플릭스와 Reactive Stream의 태동

여담이지만, 넷플릭스 또한 비슷한 문제를 겪으면서 .NET의 Rx 인터페이스를 자바로 이식하여 Reactive Stream과 WebFlux의 기반을 마련했습니다.
이 과정에서 (구)Lightbend, Akka와 함께 Reactive Streams 연합이 결성되었고, 자바 진영 전반에 고성능 IO 처리 방식이 확산되는 계기가 되었습니다.

  • Java 11 무렵 → WebFlux가 완성 단계에 이르러 주목받음
  • Java 21 이후 → Reactive Stream 없이도 고성능 구현 가능
  • Java 23 선언 → 언어 자체 기능만으로도 충분한 성능 확보

...

Akka의 변화와 나비효과

이러한 변화는 단순히 기술의 진화만이 아니라 생태계의 구조적 변화와도 맞닿아 있습니다.
Reactive Streams는 본래 Akka 진영이 주도했고, 자바의 강력한 기업들이 오픈소스 아키텍처 지원을 통해 발전시켜왔습니다. 그러나 최근 Akka가 오픈소스 탈퇴와 유료화 선언을 하면서, 그동안의 협력적 발전 모델이 약화되었습니다.

결국 이는 Reactive Stream의 위상이 약화되고, 자바가 자체적인 고성능 동시성 IO 모델을 언어 차원에서 흡수·발전시키는 방향으로 이어진, 일종의 나비효과라 할 수 있습니다.

...

정리

  • Java 7 시절: 고성능 IO 부재 → PlaFrame(+Akka) 채택
  • Java 11: WebFlux 완성 → Reactive Streams와 함께 주목
  • Java 21~23: Reactive Streams 없이도 고성능 IO 가능
  • Akka 유료화 → 자바 생태계의 주도권 변화

...