일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- nestjs공부
- 코테준비
- DDD
- Flutter
- 자료구조공부
- 스프링 공부
- Axon framework
- 기술면접공부
- JPA 공부
- JPA
- JPA예제
- 스프링
- querydsl
- 스프링부트
- Kafka
- 코테공부
- nestjs스터디
- 알고리즘공부
- 프로그래머스
- 스프링부트공부
- 자바공부
- 기술공부
- JPA스터디
- 스프링공부
- K8S
- 플러터 공부
- 카프카
- JPA공부
- nestjs
- 플러터 개발
- Today
- Total
DevBoi
스프링의 Webflux 란? 본문
최근에 많이 나온 지식중에 하나인 , webflux가 있다.
이게 뭘까...? 언뜻보기에는 프론트엔드 사용기술같기도하다...
스프링의 주요기능,
IOC : 제어의 역전, 개발자가 프로그램 코드를 제어하고, 객체 생성 부터 생명주기를 관리했다면,
스필은 컨테이너가 이걸 제어한다.
DI : 객체 내부가 아닌, 외부에서 값을 set해서 세팅해주는 것이다.
그러면 webflux 는? 이건 스프링 5에서 쓰는 것이다.
Spring framework 5에서는 다음과 같은 특징들을 가진다.
-JDK 8부터 지원
-Kotlin 지원
-호환 라이브러리 변경,
-Reactive Progamming
Reactive Programming??이건 뭥미?
프론트 리액트랑관련이 있는건가??
=> 응 전혀 아니얌
1. Webflux 는 적은 수의 스레드로 , 동시성을 처리한다.
2. Non-blocking
3. Functional Programming
우선 스프링의 동작 구성 및 스레드 수여 방식은 다음과 같다.
클라이언트 요청 -> 쓰레드 받음, -> 끝나면 쓰레드 회수 및 새로운 클라이언트에게 쓰레드 부여
근데, 쓰레드수가 부족하면, 클라이언트는 대기 큐에 쌓이게 되고, 이 대기큐에 있는 녀석에게 쓰레드를 차례대로 준다.
Webflux는 사용자가 많아지면서 쓰레드가 많아지면, Latency에 대해서발생할수 있는 것에 대해서
방어를 해준다.
Spring 이 스레드를 늘려서 동시성을 처리한다면, Webflux 는 적은 수의 쓰레드로 최대의 효율을 준다.
이말은 즉슨 가성비가 좋은거지 , 빠른건 아니다.
Functional Programming
-> 함수자체가, 파라미터나 return 값이 될수 있다.
추가로 JPA를 사용하면, 해당 Webflux 를 사용불가하다.
현재 상황에서는 잘 안쓸것같긴한데...
다음에 추가 분석을 해보자
'Develop > [WebFlux]' 카테고리의 다른 글
[WebFlux] Webflux 관련 머리속 정리 (0) | 2023.08.07 |
---|---|
[Spring WebFlux] 프로젝트 시작 및 리액티브 프로그래밍 기초 (0) | 2022.02.16 |
[Spring boot WebFlux] 프로젝트 시작하기 (0) | 2022.02.15 |
[리액티브 프로그래밍] 리액티브 프로그래밍이란? (0) | 2022.02.11 |