스프링 MVC 1편 -벡엔드 웹 개발 핵심 기술 (1)

bin1225·2021년 9월 22일
0

Spring

목록 보기
1/15
post-thumbnail

웹 애플리케이션 이해


웹 서버, 웹 애플리케이션 서버

웹 서버

  • 정적 리소스 제공

웹 애플리케이션 서버(WAS)

  • 프로그램 코드 실행하여 애플리케이션 로직 수행
    - 동적 HTML,HTTP API
    - 서블릿,JPS,스프링 MVC
    EX)톰켓(Tomcat)

WAS 는 기본 웹서버의 기능도 수행할 수 있기 때문에 WAS와 DB만으로 시스템 구성이 가능하다.

하지만, WEB을 함께 구성하여 정적리소스를 웹 서버가 처리함으로써 더 효율적으로 시스템을 구성한다.

  1. WAS 장애시에도 오류 화면은 노출 가능
  2. WAS는 중요한 애플리케이션 로직 처리를 전담
    ( 비용절약 )
  3. 유동적인 서버 증설
    ex) 정적리소스가 많이 사용되면 Web 서버 증설

서블릿

서블릿

  • HTTP 요청, 응답 정보를 개발자가 편리하게 사용할 수 있도록 도와주는 도구

서블릿 컨테이너

  • 톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라고 한다.

  • 서블릿 객체를 싱글톤으로 관리한다.

  • 멀티 쓰레드 처리를 지원한다.

멀티 쓰레드

쓰레드

  • 애플리케이션 코드를 하나하나 순차적으로 실행하는 것은 쓰레드

쓰레드는 생성 비용이 비싸서, 요청 마다 쓰레드를 생성하게 되면 굉장히 비효율적일 수 있으며 요청이 많아지면 서버 과부화가 발생한다.
-> 따라서 쓰레드 풀을 생성하여 미리 쓰레드를 생성하여 보관하고 관리한다. 얼마나 생성할지는 적정 숫자를 고려하여 설정한다.

결론

WAS의 멀티 쓰레드 지원
핵심
• 멀티 쓰레드에 대한 부분은 WAS가 처리
• 개발자가 멀티 쓰레드 관련 코드를 신경쓰지 않아도 됨
• 개발자는 마치 싱글 쓰레드 프로그래밍을 하듯이 편리하게 소스 코드를 개발
• 멀티 쓰레드 환경이므로 싱글톤 객체(서블릿, 스프링 빈)는 주의해서 사용

다 알아서 해준다니 다행이다.

0개의 댓글