😀 Jerry/면접 질문

[1분 면접] WAS와 웹 서버의 차이점

Jerry_K 2025. 3. 5. 13:13

📌 면접 답변

 

이 그림이 참 잘 나와있다 !!

 

 

Web Server (WS, 웹 서버)

  • 정적 컨텐츠 (HTML, CSS, JS, 이미지 등)을 제공
  • 동적 컨텐츠 요청 시 WAS로 전달
  • 대표적인 웹 서버로 Apache, Nginx 등이 있음

 

 

Web Apllication Server

  • 서블릿 컨테이너 기능 제공 (Java 기준)
  • 동적으로 컨텐츠 생성
  • HTTP 요청을 받아 애플리케이션 로직 실행
    • JSP, Servlet, Spring, Django, Node.js 같은 프레임워크 실행하는 환경 포함
  • 대표적인 WAS로는 Tomcat이 있음 
    • Spring Boot는 내장 Tomcat이 있음
  • WAS는 실행 활경으로, WAS 안에 프레임워크 포함 

 

 

WAS가 너무 많은 역할을 담당하면 과부화 문제가 발생한다.

때문에 WS와 WAS를 분리하고, WAS는 중요한 애플리케이션 로직에만 집중할 수 있다.

 

정적 컨텐츠가 많이 사용되는 경우 WS를 증설하고, 

애플리케이션 자원이 많이 사용되면 WAS를 증설 한다.

 

 

 

추가 내용

대부분의 프레임워크에서는 내장 WAS를 제공하는데, 개발 단계에서 WAS를 고려해야하는가 ? 

  • Django, Node.js, Spring Boot, Flask 등 대부분 프레임워크는 내장 WAS 제공 
  • 개발 환경에서는 성능보다 편리함이 중요하므로 내장 WAS로 충분
  • 하지만 동시 접속자 수가 많은 서비스 같은 경우 WAS의 부하 분산, 성능 튜닝 고려
  • 멀티 스레드 처리 방식이 필요한 경우, Spring Boot에서는 Tomcatf, Node.js에서는 PM2 사용
  • 일반적으로 내장 WAS는 운영환경에 적합하지 않음 

📌 내 답변

WAS는 Web Application Server로 우리가 흔히 아는 서비스를 제공해주는 웹 애플리케이션 서버이다.

WAS에는 비지니스 로직과 같은 웹 애플리케이션의 핵심적인 것들이 들어가있다.

 

Web Server (웹 서버) 같은 경우는 리버스 프록시와 같은 역할을 하는 것이다.

 대표적으로 Apache, Nginx와 같은 것들이 있고, 클라이언트의 요청이 해당 웹 서버로 들어가고, 웹 서버는 요청을 서버 부하 상태 등을 고려하며 웹 애플리케이션 서버에 보낸다.

 

 

→ WAS 설명에 "동적 애플리케이션 실행", "DB 연동" 이런 핵심적인 말들이 빠짐

 

→ WS 설명에는 "정적 콘텐츠 제공" 과 같은 말이 빠짐

 

[클라이언트] → [리버스 프록시(Nginx)] → [웹 서버(Apache)] → [WAS(Tomcat)]

 WS 는 리버스 프록시와 같은 역할은 하는게 아님 ( Nginx, Apache는 WS이면서 리버스 프록시 역할 가능)


https://www.maeil-mail.kr/

 

매일메일 - 기술 면접 질문 구독 서비스

기술 면접 질문을 매일매일 메일로 보내드릴게요!

www.maeil-mail.kr

 

매일 메일의 면접 질문 정리