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 동작 과정
- WAS가 HTTP 요청을 받음
- Request, Response 객체 생성
- Servlet 호출 → 비즈니스 로직 처리
- 응답 반환
📌 Servlet Container 역할
- Servlet 생명주기 관리
- 싱글톤 패턴 적용 (객체 1개 유지)
- Multi Thread 지원
3️⃣ Multi Thread
📌 Single Thread 문제점
- 하나의 요청이 지연되면 다른 요청도 지연
- 동시 요청 처리 불가능
📌 Multi Thread 해결 방법
- 요청마다 새로운 Thread 생성
- 동시 요청 가능하지만, 비용↑
- 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 |