본문 바로가기
IT

웹서버와 WAS(Web Application Server)의 차이점

by MR쿠 2021. 2. 14.
728x90

첫 번째 IT관련 포스팅이다. IT기반이 약한 대기업의 계열사에 취직해 만 4년을 일했지만, 전문성은 부족하다고 생각해 스스로 공부하고 기록을 남기려 한다. 흔히 게임을 하다가 랙이 걸리면 사람들은 "서버에 문제가 있나?" 라며 게임사의 서버를 언급한다. 여기서 서버는 흔히 말하는 "서버"는 클라이언트(고객)와의 커뮤니케이션 혹은 정보를 제공하기 위한 장치를 뜻한다. 

서버의 정의

위는 구글에서 알려준 "서버"의 정의이다. 서버는 너무 넓은 개념이라 내가 하나하나 해석해보기엔 어렵다. 그럼 오늘 알아볼 웹서버(Web Server)와 WAS(Web Application Server)에 대해서 공부하고 정리해보자.

 

 

웹서버(Web Server)란 무엇일까

웹서버의 정의

웹서버란 두 가지 뜻 가운데 하나라고 위키백과가 설명해주고 있다.

  1. 웹 브라우저와 같은 클라이언트로부터 http요청을 받아들이고, html 문서와 같은 웹 페이지를 반환하는 프로그램
  2. 위 기능을 제공하는 컴퓨터 자체

가장 기본적인 웹서버의 수행은 아래의 도식으로 이해할 수 있다.

간단히 도식화한 웹서버

웹 서버상에 "강아지 그림"이라는 사진 파일이 올라가있다면, 사용자는 인터넷 브라우저를 통해 해당 사진을 볼 수 있다. 이 때, 사용자가 접속하는 것이 http request가 되고, 해당 요청에 따라 서버에 있는 "강아지 그림" 사진을 http response로 사용자에게 반환한다. 이 것이 간단히 설명한 웹 서버의 기능이다.

웹 서버의 "웹" 에는 간단히 세 가지 구성요소가 있다.

  • 주소 (url)
  • 통신규칙 (http)
  • 내용 (html, css, javascript, image 등)

위 세 가지 구성요소로 웹서버의 역할을 다시 해석해보면 "클라이언트에서 주소(url)를 입력해 접속하면 통신규칙(http)를 통해 서버에서 내용(html)을 불러와 클라이언트에게 제공한다." 라고 이해할 수 있다.

웹서버의 종류

웹서버의 종류는 위와 같다. 나는 업무에서 아파치 http 서버를 사용하고 있다.

 

WAS(Web Application Server)란 무엇일까

was의 정의

위키백과에서 제공하는 was의 정의는 "웹 어플리케이션과 서버 환경을 만들어 기능을 제공하는 소프트웨어 프레임워크이다."라고 한다. 인터넷에 접속해 http등을 사용해 컴퓨터 어플리케이션을 수행하게 도와주는 미들웨어이다.

웹 어플리케이션은 인터넷 상에서 실행되는 응용 프로그램(App)이고, 그 기능을 수행하게 해주는 환경이 was라고 보면 된다. 웹서버와 응용 프로그램인 서로 어떻게 동작하는지 모른다. 이를 중개해주는게 was이다. was는 아래와 같은 기능들을 수행한다.

  • Php, jsp, asp와 같은 언어들을 사용해 동적 페이지를 생성할 수 있다.
  • 데이터베이스에 접속 가능
  • 비즈니스 로직 수행

was의 종류

와스의 종류에는 위와 같은 것들이 있다. 나는 업무에서 Apache Tomcat을 was로 사용하고 있다. Tomcat은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공한다. 즉, 자바 코드를 돌아가게 하여 동적/정적 데이터를 리턴 해준다. 톰캣은 자바 서버 페이지(jsp)나 자바 서블릿이 실행되는 환경을 제공하는 컨테이너 역할을 한다.

  • jsp : html 내 자바 코드를 삽입하여 웹 서버에서 동적 페이지를 만들어주는 서버 사이드 스크립트 언어. was에서 작동한다.
  • 자바 서블릿 : 자바를 사용하여 웹페이지를 동적으로 생성하는 서버 측 프로그램.

아파치 톰캣

 

정리하면 웹서버와 was가 함께 동작할 때 아래와 같은 도식으로 수행한다.

웹서버와 was

현재 운용중인 서버의 구성은 "클라이언트 - 웹서버 - 와스 - DB"의 전형적인 구조이다.

  1. 웹서버는 클라이언트로부터 http 요청을 받음
  2. 웹서버는 요청을 was에 보냄
  3. was는 관련된 서블릿 및 스레드를 생성 -> response
  4. was는 생성된 response를 http를 통해 웹서버에 전달
  5. 클라이언트에서 확인

웹 어플리케이션의 아주 기본적인 구성 요소인 웹서버와 was에 대해서 알아보았다. 중간중간 등장하는 키워드들을 전부 이해하고 프로세스를 이해하긴 어렵지만, 기본적인 구조를 알고 있으면 전반적인 구조를 이해하는데 도움이 될 것이다.