NETWORK

Web Application

도원좀비 2025. 3. 17. 21:38

1️⃣  Web Server

  • 정적 리소스(HTML, CSS, JS, 이미지 등) 제공
  • 대표적 서버: NGINX, Apache

📌 Web Application Server (WAS)

  • Web Server 기능 + 동적 콘텐츠 처리
  • 대표적 WAS: Tomcat, Jetty, Undertow

📌 Web Server vs WAS

구분 Web Server WAS
기능 정적 리소스 제공 동적 콘텐츠 처리
예시 NGINX, Apache Tomcat, Jetty

📌 WAS만 사용 시 문제점

  • 서버 과부하 ↑
  • 오류 발생 시 화면 제공 불가

📌 Web Server + WAS 사용 장점

  • 리소스 효율적 관리
  • 오류 페이지 제공 가능

2️⃣  Servlet

  • HTTP 요청/응답 처리 Java 클래스
  • 예제 코드:
@WebServlet(name="ExampleServlet", urlPatterns = "/example") 
public class ExampleServlet extends HttpServlet { 
 		protected void service(HttpServletRequest request, HttpServletResponse response) 
		 }

📌 Servlet 동작 과정

  1. WAS가 HTTP 요청을 받음
  2. Request, Response 객체 생성
  3. Servlet 호출 → 비즈니스 로직 처리
  4. 응답 반환

📌 Servlet Container 역할

  • Servlet 생명주기 관리
  • 싱글톤 패턴 적용 (객체 1개 유지)
  • Multi Thread 지원

3️⃣  Multi Thread

📌 Single Thread 문제점

  • 하나의 요청이 지연되면 다른 요청도 지연
  • 동시 요청 처리 불가능

📌 Multi Thread 해결 방법

  1. 요청마다 새로운 Thread 생성
    • 동시 요청 가능하지만, 비용↑
  2. Thread Pool 사용 (WAS 기본 지원)
    • 미리 생성된 Thread 재사용
    • 최대 Thread 개수 관리 (Tomcat 기본 200개)

4️⃣  SSR (Server Side Rendering)

📌 특징

  • 서버에서 완성된 HTML 생성 후 전송
  • Java: JSP, Thymeleaf 사용

📌 장점
✅ SEO 최적화 (검색 엔진 크롤링 O)
✅ 첫 페이지 로딩 속도 빠름

📌 단점
트래픽 증가 시 서버 부하↑
페이지 이동 시 렌더링 속도 느림


5️⃣  CSR (Client Side Rendering)

📌 특징

  • 브라우저에서 JS로 HTML 생성
  • React, Vue 사용

📌 장점
✅ 빠른 사용자 인터랙션
✅ 페이지 이동 시 속도 빠름

📌 단점
초기 로딩 속도 느림
SEO 최적화 어려움

'NETWORK' 카테고리의 다른 글

HTTP  (1) 2025.03.17
웹(Web)  (0) 2025.03.17
네트워크(Network)  (1) 2025.03.17