웹 애플리케이션 이해

zookeeper·2022년 10월 10일
0

스프링MVC

목록 보기
1/1

웹 서버

  • HTTP 기반으로 동작
  • 정적 리소스 제공

WAS

  • HTTP 기반으로 동작
  • 웹 서버 기능 포함 + 프로그램 코드를 실행해서 애플리케이션 로직 수행

웹 시스템 구성 - 웹 서버, WAS, DB

  • 정적 리소스는 웹 서버가 처리
  • 동적인 처리는 WAS가 처리
  • 웹 서버와 WAS를 모두 사용함으로써 리소스를 효율적으로 관리할 수 있다.
  • WAS, DB장애시 WEB 서버가 오류 화면 제공 가능

서블릿

서블릿이 http 요청,응답과정에서 소켓 연결, HTTP요청메시지 파싱등을 지원함으로써 개발자는 HttpServletRequest, HttpServletResponse 객체를 사용하여 비즈니스 로직만을 개발할 수 있다.

서블릿 컨테이너

  • 서블릿 객체 생성, 초기화, 호출, 종료하는 생명주기 관리
  • 서블릿 객체는 싱글톤으로 관리
  • 동시 요청을 위한 멀티 쓰레드 처리 지원

멀티 쓰레드

특정 개수의 쓰레드를 미리 생성해놓은 쓰레드 풀 존재
WAS의 주요 튜닝 포인트는 최대 쓰레드 수이다.
쓰레드 풀의 적정 숫자는 애플리케이션 로직의 복잡도, CPU, 메모리, IO리소스 상황에 따라 모두 다름
최대한 실제 서비스와 유사하게 성능 테스트 필요 (아파치 ad, 제이미터 등 사용할 수 있음)
멀티 쓰레드에 대한 부분은 was가 처리해주므로 개발자가 신경쓰지 않아도 된다.

서버사이드 렌더링, 클라이언트 사이드 렌더링

  • 서버사이드 렌더링 : 서버에서 동적으로 html생성하여 최종결과를 웹브라우저에 응답
  • 클라이언트 사이드 렌더링 : 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해서 적용

기존 스프링 개발할 때는 서버에 was를 직접 설치하고 소스코드를 war파일로 만들어서 설치한 was에 배포
스프링 부트는 빌드결과(jar)에 was서버가 포함되어 빌드 배포 단순화

스프링웹플럭스

  • 비동기 넌 블러킹 처리
  • 최소 쓰레드로 최대 성능
  • 함수형 스타일로 개발
  • 서블릿 기술 사용x
  • RDB 지원 부족
  • 실무에서 아직 많이 사용하지 않음

0개의 댓글