웹 서버(Web Server)


웹 서버는 주로 정적 컨텐츠를 처리하는 데 사용된다. 정적 컨텐츠란 HTML, CSS, JavaScript 파일과 같이 서버에서 변경되지 않고 그대로 사용자에게 전달되는 파일을 말한다. 웹 서버의 주 역할은 클라이언트(웹 브라우저 등)로부터 HTTP 요청을 받아, 그 요청에 해당하는 정적 컨텐츠를 찾아서 HTTP 응답으로 돌려주는 것이다. 대표적인 웹 서버 소프트웨어로는 Apache, Nginx 등이 있다.

WAS(Web Application Server)


WAS는 웹 애플리케이션 서버로, 동적 컨텐츠를 처리하기 위해 사용된다. 동적 컨텐츠란 사용자의 요청에 따라 서버에서 실시간으로 생성되거나 변경되어 제공되는 컨텐츠를 말한다. WAS는 클라이언트의 요청에 따라 애플리케이션 코드를 실행하여 필요한 작업을 수행하고, 그 결과를 클라이언트에게 돌려주는 역할을 한다. 이 과정에서 데이터베이스 조회나 복잡한 로직 처리가 포함될 수 있다. 대표적인 WAS 소프트웨어로는 Apache Tomcat, JBoss, WebLogic 등이 있다.

흔히 볼 수 있는 구조


  1. 브라우저에서 HTML, CSS, JS 등 정적 리소스 요청
  2. *웹 서버(Nginx, Apache 등)**가 정적 파일을 찾아 바로 클라이언트에게 전달
  3. 로그인, 회원가입, 게시판 등록 등 동적 처리가 필요한 경우, WAS로 요청을 전달
  4. WAS(예: Spring Boot, Node.js, Django 등)가 내부 로직을 수행하고, DB나 외부 API와 연동하여 결과를 만든 뒤 웹 서버에 응답 전달
  5. 웹 서버는 전달받은 동적 결과(HTML, JSON 등)를 브라우저에게 최종 전송

이런 식으로 앞단에 웹 서버가 있고, 뒤에서 비즈니스 로직을 처리하는 WAS가 있는 구조가 전형적인 2-Tier(또는 2-layer) 아키텍처이다.

결론