TIL

WEB 서버 VS WAS 서버

lemonarr🍋 2025. 3. 29. 19:30

백엔드를 하면서 서버가 어떤게 있는지 제대로 대답을 못했다니..면접을 보기 전 자바의 기본기 중 구멍을 찾아서 매꾸는 작업을 하고 있었다. 요새 자바 기본기만 다시 돌려보는 중이였는데 스스로 서버에 대한 개념이 없다는 것을 숙지하지 못했다.

왜 웹앱인가? 왜 웹앱이 등장했는가? 정말 근본적인 질문이지만 이 부분이 나의 개념구멍이었다.


이것을 알아냄으로서 나의 논리적 사고의 끊긴 "중간 부분"을 찾아낸 느낌을 받았다. 논리적을 막힌 부분이 뚫리니 궁금한 부분이 계속해서 생겨났다.

스프링부트 내부에서 DB가 어떻게 연결되고 사용자 화면에 보여지는지만 알고 더 내부의, DB가 "어디에" 저장되는지 인지하지 못했다. 내가 알고 있었던 것은 백엔드의 요약본이었다. (요약본도 아닐지 모른다..ㅎㅎ)

막힌 부분이 뚫려서 통쾌하고 기뻤다. 부끄럽지만 어제의 순간을 꼭 기억하기 위한 서론을 적었고, 

 

본론으로 돌아와서 내가 몰랐던 서버의 두 종류에 대해 정리해보려고 한다.

 

 


 

웹 서버 구조

IMG Source: https://han-joon-hyeok.github.io/posts/web-server-and-was-cgi-feat-thread-and-process/

 

웹 서버와 WAS 서버는 웹 상에서 서비스를 제공하기 위해 사용되는 서버이다.

두 서버의 역할과 기능에는 차이가 있으며 각각의 서버가 목적과 기능을 가지고 있다.

 

 

 

웹 서버 개념을 설명하기 전에 웹과 서버에 대한 개념에 대해 간단하게 짚고 넘어가자.

WEB 웹

  • 일반적인 의미: 거미집 모양의 망.
  • 기술적인 의미: 인터넷 망 안에서 정보를 공유, 검색할 수 있게 하는 시스템.

 

인터넷에 연결된 사용자들은 서로 정보를 공유할 수 있다. 월드 와이드 웹 (WWW) 이라고 부르는 게 바로 웹이다.

인터넷 서비스 종류로 웹만 있는 것이 아니다. SMTP(전자우편), FTP(파일 전송), Telnet(원격접속) 등 다양하게 있는데, 

팀 버너스리가 SMTP나 FTP를 통해 정보를 주고 받는 것을 비효율적이라 생각하여 WWW을 고안하였다.

 

웹을 지탱하고 구성하는 아래 세가지 기술이 있다.

  • HTTP(통신 규칙)
  • URL or URL(주소)
  • HTML(내용)

 

Server 서버

네트워크를 통해 클라이언트에게 정보나 서비스를 제공하는 컴퓨터 시스템.

 

 


Web Server 웹 서버의 이해

인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터.

 

  • 클라이언트의 입장: 웹 서버에게 주소를 가지고 통신규칙에 맞게 요청하면, 알맞은 내용을 응답 받음.
  • 서버 입장: 클라이언트의 요청을 기다리고, 웹 요청에 대한 데이터를 만들어서 응답, 이때 데이터는 웹에서 처리할 수 있는 Html ,Css, 이미지 등 정적인 데이터로 한정.

 

웹 서버의 등장

로컬 컴퓨터로 웹 서버를 만들 수 없는가?

로컬 컴퓨터로 쉽게 웹 서버를 만들 수 있다. 무료로 공개된 아파치 웹 서버를 깔고, 포트번호와 HTML 파일 위치를 정해주면 전세계 사람들에게 웹 서비스를 제공할 수 있는 컴퓨터를 가질 수 있다.

 

웹 서버의 한계점 존재

웹 서버에서는 Html, Css, 이미지 등 정적인 자료만 제공할 수 있다. 예를 들어 구구단 페이지를 전달할 때, 정적인 자료만 제공할 수 있으므로, 구구단 내용을 모두 작성해놔야 한다. 즉 저장된 데이터를 가져와서 사용할 수 없다. 

웹 서버에서 브라우저에게 Html을 전달해 주기 전에 애플리케이션을 돌려서 데이터를 만들고 만든 데이터를 넣어주면 간단하지만,

Html은 프로그래밍 언어(Mark Up 언어)가 아니기 때문에 위의 문제를 해결할 수 없었다. 

 

마크 업 언어와 마크 다운 언어의 차이 

마크업 언어: 무언가를 기록하거나 설명하기 위한 언어. != 컴퓨터 시스템을 구동하기 위한 소프트웨어를 만드는 프로그래밍 언어와는 다르다.

 

마크업 (Mark Up)의 대표적인 언어 HTML.

  • (1) <header> <body> <footer>등의 태그를 사용해 웹 페이지의 "구조" 를 정의하며,
  • (2) HTML 단독으로는 프로그래밍 처럼 상호작용을 할 수 없다.
  • (3) HTML, 마크다운 외에도 XML, XHTML, JSON, YAML, GenCode, troff/ nroff. TeX 등이 있다.

 

+) 우리가 일반적으로 접근하는 웹 페이지들은 상호작용을 할 수 있는데, 이는 Javascript와 같은 프로그래밍 언어가 HTML과 함께 조합되어 있기 때문.

 

🤔Javascript 언어가 어떻게 상호작용을 하는가?

Javascript는 클라이언트 측 스크립트 언어로, 이벤트 처리(사용자의 행동에 반응할 수 있는 이벤트리스너), DOM 조작(HTML 요소를 동적으로 수정할 수 있음.), 폼 유효성 검사(사용자가 입력한 데이터를 검증하여 올바른 형식인지 확인할 수 있다.),

AJAX (서버와 비동기적으로 데이터를 주고받을 수 있으며 페이지를 새로 고치지 않고도 데이터를 업데이트 할 수 있다.)

 

AJAX가 어떻게 페이지를 새로고침 하지 않고도 데이터를 가져올 수 있을까에 대해서는 글이 길어져서 따로 포스팅을 진행할 예정이다. 

마크 다운(Mark down) 언어: 마크업 언어의 하위 개념. 일반 텍스트 기반의 경량 마크업 언어다.
일반 텍스트로 서식이 있는 문서를 작성하는 데 사용되며, 일반 마크업 언어에 비해 문법이 쉽고 간단한 것이 특징이다. HTML과 리치 텍스트(RTF) 등 서식 문서로 쉽게 변환되기 때문에 응용 소프트웨어와 함께 배포되는 README 파일이나 온라인 게시물 등에 많이 사용된다.

 

티스토리 블로그에도 마크다운 모드가 있으며 github에서 글을 작성할 때도 파일명 뒤에 .md 확장자를 적어주면 마크다운 언어를 사용하여 문서를 작성할 수 있다. velog 블로그 작성할 때도 마크다운 기반으로 쉽고 가볍게 작성할 수 있다.

노션과 슬랙도 마크다운임.

꺽쇠로 감싸진 태그를 사용하는 HTML, 혹은 xml 등과 비교해 직관적으로 알아보기 쉽고 사용하기 쉽다.

 

WAS (Web Application Server)의 이해

웹에서 실행되는 응용 프로그램을 말한다.

웹 환경에서 작동하는 응용프로그램으로 데이터베이스나 외부 서비스와 상호 작용하며 비즈니스 로직을 처리한다. 

애플리케이션 서버는 데이터베이스나 외부 서비스에서 가져온 데이터를 가공하여 즉석으로 웹 페이지를 생성한다.

그래서 같은 주소로 접속해도 사용자나 환경에 따라 다른 형태의 페이지를 보여줄 수 있다.

 

우리는 애플리케이션을 통해서 이제 Html의 한계를 극복할 수 있게 되었다.

 

Web Application Server

  • WAS는 웹 어플리케이션을 실행시켜 필요한 기능을 수행하고 그 결과를 웹 서버에게 전달하는 일종의 미들웨어를 말한다.
  • php, jsp, asp와 같은 언어들을 사용해 동적인 페이지를 만들어낼 수 있는 서버이다.
  • 프로그램 실행 환경데이터베이스 접속 기능을 제공한다.
  • 비즈니스 로직 수행이 가능하다.
  • 웹 서버 + 웹 컨테이너를 합친 형태다.

** 컨테이너: jsp, servlet을 실행시킬 수 있는 소프트웨어

자바 계열에선 웹 애플리케이션을 컨테이너라고 부른다.

웹 어플리케이션 컨테이너: 웹 애플리케이션이 배포되는 공간.

 

 

 


Summary

WEB 서버 VS WAS 서버

항목 WEB 서버 WAS 서버
정의 정적인 콘텐츠(HTML, CSS, 이미지 등)를 제공하는 서버 동적인 콘텐츠(웹 어플리케이션)를 처리하고 제공하는서버
기능 HTTP 프로토콜을 이용해 클라이언트에게 웹 페이지 제공 웹 어플리케이션 실행 및 데이터 처리, 웹 서버아 클라이언트 간의 중계 역할
주요 소프트 웨어 Apache, Ngix, IIS Tomcat, JBoss, WebLogic, WebSphere

 

 

WEB 서버의 역할과 예시

웹 서버는 클라이언트가 웹 브라우저를 통해 요청한 정적 콘텐츠를 제공하는 역할을 한다.

웹 서버는 주로 HTTP 프로토콜을 사용하여 작동하며, 클라이언트가 URL을 통해 요청한 웹 페이지를 찾아 전송해준다.

 

예) 회사 홈페이지, 블로그, 뉴스 사이트 등.

 

WAS 서버의 역할과 예시

WAS 서버는 웹 어플리케이션을 실행하여 동적 콘텐츠를 생성하고, 웹 서버와 클라이언트 간의 데이터 처리 담당하는 역할을 한다.

클라이언트의 요청에 따라 데이터베이스에서 정보를 가져오거나, 웹 애플리케이션을 실행하여 동적인 웹 페이지를 생성한 후 결과를 웹 서버에 전달한다. 웹 서버는 이를 받아 클라이언트에게 전달한다.

 

예) 온라인 쇼핑몰, 은행 인터넷 뱅깅, SNS 등.

 

온라인 쇼핑몰: 사용자가 상품을 검색하거나 장바구니에 담는 등의 동적인 작업을 WAS 서버에서 처리하고, 상품 이미지나 스타일 정보 등 정적 콘텐츠를 웹 서버에서 제공한다.

 

온라인 커뮤니티: 게시판 글 작성, 댓글 달기 등 동적인 기능은 WAS 서버에서 처리하고, 게시글 내용이나 이미지 등 정적 콘텐츠는 웹 서버에서 제공한다.

 

 

 


 

실제 웹 서비스 환경에서는 웹 서버와 WAS 서버가 협업하여 작동한다.

일반적으로 웹 서버는 정적 콘텐츠를 처리하고 WAS 서버는 동적 콘텐츠를 처리하는 역할을 맡아, 사용자에게 원활하고 다양한 웹 서비스를 제공하게 된다.

이 두가지 서버를 통해 웹 사이트의 로딩 속도와 품질이 향상되며, 웹 애플리케이션의 성능이 개선된다.

 

 

 

참고 자료

https://han-joon-hyeok.github.io/posts/web-server-and-was-cgi-feat-thread-and-process/

 

웹 서버와 WAS, CGI (feat. 스레드와 프로세스)

TL; DR

han-joon-hyeok.github.io

https://velog.io/@moonblue/%EC%9B%B9-%EC%84%9C%EB%B2%84%EC%99%80-WAS%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

웹 서버와 WAS의 차이점

웹 서버 와 WAS(Web Application Server) 서버는 웹 상에서 서비스를 제공하기 위해 사용되는 서버입니다. 두 서버의 역할과 기능에는 차이가 있으며, 각각의 서버가 목적과 기능을 가지고 있습니다.

velog.io

https://sungks.tistory.com/195

 

WEB 서버와 WAS 서버의 차이

1.WEB 서버와 WAS 서버의 차이 -WEB 서버 : HTML, CSS, js, jpg 등 정적인 데이터를 처리하는 웹서버 입니다. WEB Server로 가장 많이 쓰는 프로그램으로는 Apache재단의 Apache가 있고, Microsoft사의 IIS, nginx등이

sungks.tistory.com

https://velog.io/@bky373/Web-%EC%9B%B9-%EC%84%9C%EB%B2%84%EC%99%80-WAS

 

[Web] 웹 서버와 WAS의 개념 이해

인터넷을 기반으로 한, 정보를 공유 검색할 수 있게 하는 서비스URL(주소), HTTP(통신 규칙), HTML(내용네트워크를 통해 클라이언트에게 정보나 서비스를 제공하는 컴퓨터 시스템인터넷을 기반으로

velog.io