Web/Knowledges

[Web] 웹서버와 WAS

준레논 2026. 7. 13. 12:22

왜 서버가 두 종류로 나뉠까?

웹 서비스를 처음 접하면 "서버 하나면 되는 거 아닌가?" 싶다. 그런데 실제로는 웹서버WAS(Web Application Server)라는 두 종류의 서버가 짝을 이뤄 돌아가는 경우가 많다. 이 둘의 역할을 비유와 실제 기술 개념을 동시에 보며 알아보자.

 


1. 웹서버 = 홀 직원

페니 페니 penny

비유: 손님(요청)이 들어오면 가장 먼저 맞이하는 사람. 물이나 물티슈, 이미 준비된 메뉴판처럼 바로 내줄 수 있는 건 직접 가져다준다. 주방에 물어봐야 하는 요청은 대신 전달해주고, 손님이 몰리면 여러 주방에 나눠서 안내하기도 한다.

 

실제 개념: 웹서버(대표적으로 Apache, Nginx)는 클라이언트 요청을 가장 먼저 받는 창구다. 하는 일은 크게 세 가지다.

  • 정적 콘텐츠 처리: 이미지, HTML, CSS, JS처럼 이미 만들어져 있는 파일을 그대로 빠르게 돌려준다. 매번 새로 계산할 필요가 없어 처리 속도가 빠르다.
  • 리버스 프록시(Reverse Proxy): 클라이언트는 웹서버 하나에만 요청을 보내는 것처럼 보이지만, 실제로는 웹서버가 뒤에 있는 WAS로 요청을 대신 전달한다. 내부 서버 구조를 외부에 감출 수 있어 보안에도 유리하다.
  • 로드밸런싱(Load Balancing): WAS가 여러 대 있을 때 요청을 골고루 분산시켜준다.

최근에는 Nginx가 적은 자원으로도 훨씬 많은 동시 접속을 처리할 수 있는 구조(이벤트 기반 처리 방식) 덕분에 더 널리 쓰이는 추세다.


2. WAS = 주방장

 

비유: 실제로 요리를 만드는 주방. 손님마다 다른 주문을 그때그때 새로 만들고, 레시피(비즈니스 로직)대로 조리하며, 냉장고(데이터베이스)에서 재료를 꺼내오는 것도 주방의 일이다.

 

실제 개념: WAS(대표적으로 Tomcat, JBoss)는 실제로 로직을 계산해야 하는 요청을 처리한다.

  • 동적 콘텐츠 처리: 로그인 후 마이페이지, 검색 결과처럼 사용자마다 달라지는 화면을 그때그때 계산해서 만들어낸다.
  • 비즈니스 로직 실행: 장바구니 계산, 포인트 적립 같은 서비스의 핵심 규칙이 여기서 돌아간다.
  • DB 연동: 데이터베이스에 접속해 데이터를 읽고 쓰는 작업도 WAS의 몫이다.

주로 자바 기반 웹 애플리케이션에서 많이 쓰인다.


3. 왜 굳이 나눠서 일할까?

 

비유: 물이나 물티슈까지 매번 주방장이 직접 가져다준다고 생각해보자. 손님이 몰리면 정작 중요한 요리에 집중하지 못한다. 또, 손님이 주방까지 직접 들어가서 이것저것 만지게 두면 위험하다.

 

실제 개념: 이론적으로는 WAS 혼자서도 정적 파일까지 다 처리할 수 있지만, 굳이 웹서버를 앞에 두는 이유는 두 가지다.

  • 성능: 정적 파일 처리는 웹서버가 WAS보다 훨씬 가볍고 빠르게 처리한다. 무거운 WAS가 이미지 파일 하나 돌려주는 데까지 자원을 쓰는 건 낭비이므로, 가벼운 일은 웹서버가, 무거운 계산은 WAS가 나눠 맡는다.
  • 보안: WAS를 외부 인터넷에 직접 노출하지 않고 항상 웹서버 뒤에 숨겨둔다. 외부 공격자가 직접 WAS에 접근할 수 있는 통로 자체를 차단하는 효과가 있다.

4. 실제 요청 흐름

비유: 손님이 들어와서 → 홀 직원이 맞이하고 → 간단한 건 바로 내주고 → 주방에 물어봐야 하는 건 전달하고 → 주방이 요리해서 → 다시 홀 직원을 거쳐 손님에게 전달된다.

실제 개념:

  1. 사용자가 요청을 보낸다
  2. 웹서버가 먼저 받는다
  3. 이미지·HTML 같은 단순 요청이면 웹서버가 바로 응답한다
  4. 로그인, 검색처럼 계산이 필요한 요청이면 웹서버가 WAS로 넘긴다
  5. WAS가 계산을 마치고 결과를 웹서버에게 돌려준다
  6. 웹서버가 그 결과를 사용자에게 전달한다

이 구조를 리버스 프록시 패턴(Reverse Proxy Pattern)이라고 부른다.


정리

 

웹서버는 손님을 맞이하고 간단한 건 바로 처리하는 홀 직원, WAS는 진짜 요리를 만드는 주방장이다.

이렇게 역할을 나누는 이유는 딱 두 가지, 더 빠르게(성능) 그리고 더 안전하게(보안) 서비스하기 위해서다.

'Web > Knowledges' 카테고리의 다른 글

3-Tier 구조, 그리고 이게 VPC와 만나는 지점  (0) 2026.07.16