● 결론부터
>> 제일 빠른 서비스(스레드 방법 상위) & 대규모 접속 최적화 & 트래픽 최적화 & 서버 적은 메모리 사용
>> 무조건 대세가 될 수 밖에 없음
>> 수요가 많이질 수 밖에 없기 때문에 미리 배워두기
1. 고수준의 동시성 처리
- 제한된 자원으로 많은 요청 처리: 적은 수의 스레드로 수천 개의 동시 연결 처리 가능
- Event loop 모델: Netty와 같은 비동기 서버를 활용하여 효율적인 스레드 관리
2. 마이크로서비스 아키텍처 최적화
- 경량 통신: 서비스 간 효율적인 비동기 통신 지원
- 리소스 효율성: 적은 메모리 사용으로 클라우드 환경에서 비용 효율적
3. 실시간 애플리케이션 개발
- 스트리밍 데이터 처리: 실시간 이벤트와 데이터 스트림 처리에 적합
- 서버-센트 이벤트(SSE): 클라이언트에 지속적인 데이터 스트림 제공 용이
4. I/O 집약적 작업 성능 향상
- 비동기 논블로킹 I/O: 데이터베이스, API 호출 등의 외부 시스템과 통신 시 대기 없음
- 연쇄적 API 호출: 여러 외부 서비스에 순차적 또는 병렬 호출 시 성능 이점
5. 함수형 프로그래밍 패러다임 활용
- 선언적 코드 스타일: 간결하고 가독성 높은 코드 작성
- 불변성과 부수효과 제어: 예측 가능한 애플리케이션 동작
6. 특정 업계 사용 사례
- 금융 서비스: 높은 처리량이 필요한 트랜잭션 처리
- 게임 서버: 많은 동시 사용자 연결 처리
- IoT 플랫폼: 수많은 장치로부터 데이터 수집 및 처리
- 실시간 분석: 지속적인 데이터 스트림 처리 및 분석
7. 기술적 한계 극복
- C10K 문제 해결: 전통적인 스레드 기반 모델의 한계 초과
- 시스템 리소스 최적화: CPU와 메모리 사용률 개선
WebFlux는 모든 상황에 적합한 솔루션은 아닙니다. 단순한 CRUD 애플리케이션이나 개발팀이 리액티브 프로그래밍에 익숙하지 않은 경우, 전통적인 Spring MVC가 더 적합할 수 있습니다. 프로젝트의 구체적인 요구사항과 팀의 전문성을 고려하여 선택하는 것이 중요
'SERVER SIDE > JAVA' 카테고리의 다른 글
JAVA - 지메일 534-5.7.9 오류 (1) | 2025.04.18 |
---|---|
JAVA - WebFlux 이용 RESTful API 샘플 코드 (1) | 2025.04.16 |
JAVA - 지메일 SMTP 이용 메일 보내기 TLS 오류 (1) | 2025.04.08 |
JAVA - 기본 메일 보내기 골격 (2) | 2025.04.07 |
보일러플레이트 코드(Boilerplate Code) (0) | 2025.02.10 |