2025-11-01

오늘 배운 것

✅ Tomcat: 전통적인 자바 웹 서버

Servlet 기반의 HTTP 요청/응답 처리

스프링 부트의 기본 내장 WAS (Web Application Server)

주요 특징

  • Servlet + JSP 표준 지원
  • 블로킹 IO (Thread-per-request) 방식
  • Java EE 호환성 우수
  • Spring MVC와 찰떡궁합

⚙️ Netty: 비동기 이벤트 기반 네트워크 프레임워크

고성능 네트워크 애플리케이션을 위한 비동기 프레임워크

주요 특징

  • TCP/UDP 등 저수준 네트워크 처리 가능
  • 논블로킹 + 이벤트 드리븐 구조
  • Spring WebFlux, gRPC, GateWay 등에서 사용
  • HTTP 외 다양한 프로토콜 지원

🔁 구조/기술 비교

항목 Tomcat Netty
기술 스택 Servlet 기반 Java NIO 기반
IO 모델 블로킹 IO 논블로킹 IO (NIO)
요청 처리 스레드당 요청 1개 이벤트 루프 기반 처리
표준 준수 Java EE / Servlet 지원 비표준, 직접 구현
사용 예 Spring MVC, JSP WebFlux, gRPC, Netty 서버 직접 구현
성능 단순 구조에선 안정적 고성능 실시간 처리에 적합
학습 난이도 낮음 (Spring 기본 내장) 높음 (커스터마이징 용도 많음)

📦 Spring과의 관계

스프링 구조 기본 서버
Spring MVC Tomcat (블로킹)
Spring WebFlux Netty (논블로킹)

Spring WebFlux는 Servlet 스펙 없이 Netty 기반 비동기 처리 가능


🎯 언제 어떤 걸 선택할까?

상황 추천 서버
기존 웹 MVC, JSP 기반 시스템 ✅ Tomcat
REST API + 고성능 실시간 처리 ✅ Netty
많은 요청, 낮은 지연 시간 ✅ Netty (e.g. 게임 서버, 채팅 서버)
Spring 기본 설정 사용 ✅ Tomcat (내장 WAS)

results matching ""

    No results matching ""