반응형
웹 서버(Web Server)?
웹 서버란, 클라이언트의 요청을 받아 HTML, CSS, 이미지와 같은 정적 리소스를 제공하는 서버입니다. 대표적으로 Apache와 Nginx가 있습니다.
- HTTP 요청 처리
- 웹 서버는 클라이언트(브라우저, 모바일 앱 등)로부터 HTTP/HTTPS 프로토콜로 요청을 받습니다.
- 예: 사용자가 웹사이트 주소를 입력하거나 링크를 클릭하면 HTTP 요청이 생성됩니다.
- 정적 콘텐츠 제공
- HTML, CSS, JavaScript, 이미지, 동영상과 같은 변하지 않는 파일을 전달합니다.
- 예: 블로그의 글이나 회사 홈페이지의 고정된 내용을 제공하는 데 사용됩니다.
- 리버스 프록시(Reverse Proxy) 역할
- 웹 서버는 직접 요청을 처리하지 않고, **웹 애플리케이션 서버(WAS)**로 전달합니다.
- 예: Nginx는 동적 처리가 필요한 요청을 Tomcat으로 전달하고, 정적 리소스는 직접 제공할 수 있습니다.
- 로드 밸런싱(Load Balancing)
- 여러 서버에 트래픽을 나누어 분산해 성능과 안정성을 확보합니다.
- 예: Nginx는 여러 애플리케이션 서버로 트래픽을 분산해 과부하를 방지합니다.
웹 어플리케이션 서버(Web Application Server)?
웹 어플리케이션 서버는 동적 리소스를 처리할 수 있고, 비즈니스 로직을 처리할 수 있습니다. Tomcat, JBoss 등이 있습니다.
- 서블릿/ JSP 실행
- Java 기반 애플리케이션에서 요청을 처리하는 서블릿과 웹 페이지를 생성하는 JSP를 실행합니다.
- 세션 관리
- 로그인 사용자 정보를 유지하고, 사용자별 상태 정보를 관리합니다.
- 트랜잭션 관리
- 데이터베이스와의 연동 시 여러 작업을 원자성 있게 처리합니다.
- 예: 결제 시 상품 차감 → 결제 성공 → 재고 업데이트
- 보안 처리
- 사용자 인증(Authentication), 권한 부여(Authorization) 기능을 제공합니다.
- 예: JWT, OAuth 기반 로그인 구현
웹 어플리케이션도 웹 서버처럼 정적 리소스 처리가 가능하나, 성능적인 측면에서 웹 서버가 더 유리합니다.
반응형
'BackEnd' 카테고리의 다른 글
[Java] 백엔드 면접 질문 정리 - 3 (0) | 2025.02.25 |
---|---|
[CS] 백엔드 면접 질문 정리하기 - 2 (0) | 2025.02.24 |
[CS] 모놀리식 아키텍처와 마이크로서비스 아키텍처 (0) | 2025.02.17 |
[Backend] 헥사고날 아키텍처를 예제를 통해 쉽게 이해하기 - 유연하고 확장가능한 설계 (0) | 2025.02.06 |
백엔드 면접 질문 정리하기 - 1 (1) | 2025.01.24 |