Spring Webflux 시작 (3/31)

세젤게으름뱅이·2025년 3월 30일

Spring Webflux

목록 보기
1/16

평소 Spring 생태계에 대해 얼추 알기는 했지만, Web 관련 개발과 거리가 멀었다.

  • 퇴사 전에는 '정산 업무를 해보고 싶다' 라는 생각 전까지는 Web관련 업무가 없었기도 했다.
  • 언젠가 할 기회가 생기겠지라는 생각은 있었지만, 사용 기술 스택을 들으니 업무를 받게 된다면 그때 가서 공부해도 내 의지를 믿기에 늦지 않았을 것이라고 여겼다.
  • 그러다보니 오히려 서버구성이나 인프라 쪽으로 관심을 돌리게 되어 더더욱 안 하게 되었다.
  • 이직준비를 하면서 느낀건, 기본이 Java + Spring / Kotlin + Spring 이 아니면 안 되는 시장의 분위기를 느꼈다.
  • 공부하자

Why Spring Webflux?

장점

  1. 효율적인 리소스 사용
    1-1. 초기세팅이 잘 구성된다면, 트래픽이 증가하는 환경이여도 오래 유지 가능
  2. 요청이 순간적으로 늘어나도 유연하게 커버
    2.1 '유연하게'가 포인트
  3. Concurruncy를 극한으로 이용해서 응답속도 단축
    3-1. Concurruncy를 극한으로 이용하기에, 리소스를 효율적으로 관리
  4. Reactor, Coroutine으로 가독성 유지
    4-1. 실제 작동은 non-blocking

단점

  1. 비동기 로직 처리에 대한 고민
  2. 팀원들 모두 러닝 커브가 필요
  3. 디버깅, 에러 핸들링의 어려움
  4. 충반하지만 완벽하지 않은 생태계

1,4번은 이미 Vert.x Framework를 경험하며 이미 많이 부딪혔기에 그나마 마인드셋 자체가 훨씬 수월하다고 느껴진다.
뭘 하던지 Vert.x 보다는 Reference도 많을 것이기 때문에 . . .

Why Reactive Microservice?

Reactive

  • reacting to events or situations rather than acting first to change or prevent something
  • (무언가를 바꾸거나 예방하기 위해서) 먼저 행동하기 보다는 사건이나 상황에 반응하는

Reactive System

  • 회복이 가능하고
  • 유연하며
  • 메시지 기반의 상호작용을 통해 높은 응답성 + 안정성을 유지하는 시스템 설계

Microservice Architecture

  • 독립적이고 작은 서비스들이 유기적으로 협력하여 서비스를 구축하는 시스템 설계

Reactive Microservice

Reactive Microservice는 결국 '안정성'과 '확장성'이다.

서론일 뿐, 구체적인 이론은 아니다.
당장 Spring Webflux부터 들어가지 않고 차근차근 쫓아갈 것이다.

  • Reactive Programming (Reactive Programming과 개발 패러다임)
  • Spring Webflux (Spring reactive 스택과 여러 통신 기법)
  • Spring Data Reactive (Database에 reactive 적용)
  • Kotlin Coroutine (Coroutine으로 가독성과 성능 높이기)
  • Spring Test Reactive (Reactive 환경에서 테스트 구성)
  • Reactive Microservice (Reactive Microservice와 Spring Cloud)
profile
🤦🏻‍♂️

0개의 댓글