카테고리 없음

Spring MVC - Section 1 : Understanding Web Application

고고잉93 2024. 3. 27. 18:17
728x90

◈ Section 1 : Understanding Web Application

      □ Web Server & Web Application Server(WAS)

        ○ Web Server: 정적 리소스(파일)

        ○ WAS : 애플리케이션 로직 → 애플리케이션 코드를 실행하는데 더 특화.

웹 시스템 구성

        ○ 정적 리소스와 애플리케이션 리소스의 사용량 증가시 각각 별도로 Web Server와 WAS를 증설시켜 효율적으로

           리소스를 관리할 수 있다.

 

      □ Servlet

         : TCP/IP통신 및 HTTP요청을 처리하고 응답을 자동으로 수행하는 기능을 제공

 

        ○ Servlet Container

          : Servlet을 지원하는 WAS

             - Servlet 객체는 싱글톤으로 관리.

             - 멀티 쓰레드 처리 지원

             - JSP도 Servlet으로 변환 되어서 사용

 

      □ Thread

       : 애플리케이션 코드를 하나하나 순차적으로 실행하는 것을 Thread

(자바 메인메서드 실행시 main이라는 이름의 Thread가 실행. 쓰레드가 없을시 실행 불가.)

Thread는 한번에 하나의 코드Line만 수행하며, 동시 처리 필요시 쓰레드 추가 생성.

 

        ○ 단일 Thread 사용

단일 쓰레드 사용시 다중요청에 대한 오류 발생

 

        ○ 요청 발생마다 쓰레드를 생성할 수 있지만

          → 생성 비용이 비싸고 응답속도가 늦어진다.

          → 스위칭 비용이 발생한다.

          → Thread는 생성 제한이 없어 요청이 너무 많을시에 서버가 다운될수도 있다.

 

        ○ Thread Pool

요청시 쓰레드 풀에 쓰레드를 요청하여 사용

       

               - Thread가 미리 생성되어 있어 응답시간이 빠르며 Thread생성 종료 비용(CPU)가 절약된다.

               - Thread의 최대치가 정해져 있어, 요청이 많이 들어와도 기존 요청에 대해 안전하게 처리가 가능하다.

                  (개발자는 Thread pool의 최대치만 요건 및 상황에 맞게 설정하면 WAS가 나머지는 잘 해결해준다.)

 

      □ SSR & CSR

        ○ SSR (Server-Side Rendering)

             - HMTL 최종 결과를 서버에서 만들어서 웹 브라우저에 전달.

             - 주로 정적인 화면에 사용

             - JSP, Thymeleaf → 백엔드 개발자

 

        ○ CSR (Client-Side Rendering)

             - HMTL 결과를 자바스크립트를 이용하여 웹 브라우저에서 동적으로 생성해서 적용.

             - 주로 동적인 화면에 사용

             - React, Vue.js → 프론트엔드 개발자

728x90