본문 바로가기

프로그래밍/서버

[서버] Web 서버, Web Application 서버 _ apache, tomcat

[서버] Web 서버, Web Application 서버 _ apache, tomcat






아파치                  톰캣








1. 정의    

Web 서버란    |    다음의 두 가지 뜻을 가지고 있다. 소프트웨어적으로; 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램 / 하드웨어적으로는; 위에 언급한 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터. [from.위키백과]


그 중 우리는 소프트웨어적 의미를 가지고 웹서버를 살펴보려고 한다. 초기 웹은 정보교환이 목적이었기 때문에 전송할 데이터가 정적인 데이터뿐이었다. (html, img, xml...) 따라서 그에 맞는 기능에 충실하였고, 지금도 정적인 데이터를 전송하는데는 웹서버가 안정적이다. 오늘날 그러한 웹서버의 표준으로 불리는 것이 있다. 바로 'Apache'이다. 회사 이름이지만, 웹서버를 지칭하기도 한다. 저도 아파치라 하면 아파치 웹서버를 떠올리게 됩니다. 


시간이 흐르면서 웹을 사용하는 용도는 변화했습니다. 사용자들의 요구가 더 많아진 것이죠. 데이터를 주고 받으면서 화면이 동적으로 움직여야 했습니다. 입력된 값에 따라 출력된 결과가 나타나는 것이죠. 그런 요구에 따라 나타난게 Web Application Server입니다.

핵심정리 : apache = 웹서버



Web Application 서버란    |   흔히 웹어플리케이션 서버는 약어로 WAS라 불립니다. 동적인 변화를 위해 만들어진 서버입니다. 웹서버는 정적인 데이터를 처리했다면, WAS는 동적인 데이터를 담당하겠죠. 사용자의 요청으로 데이터의 조작이 가능하고 그에 따라 화면의 동적으로 변하는 것을 가능하게 도와주는 서버입니다. 


Apache(회사)에서 만든 tomcat이라는 WAS가 많이 사용됩니다. 주의해서 알아야 할 것은 tomcat이 동적인 데이터 뿐만 아니라 정적 데이터도 처리가 가능하다는 것입니다. 그러나 큰 프로젝트나 많은 사용자를 가진 웹서비스는 흔히 웹서버와 WAS를 함께 사용합니다. 그 이유는 각각의 역할을 구분하여 더 효율적인 일을 하기 위해서이죠. 위에서도 밝혔듯이 웹서버는 정적인 데이터를 WAS에 비해 더 안정적이고 빠르게 다룰 수 있습니다. 그런 이유로 apache 와 WAS를 연동하여 사용하는 경우가 대부분입니다. (연동의 필요성 자세한 설명)

핵심정리 :  Web Application Server (웹서버 + 웹 컨테이너) = tomcat(WAS)



Web Container 란    |    웹컨테이너는 자바언어에서 사용하는 개념입니다. 서블릿(Servlet) & JSP를 구동하기위해 필요한 것이 웹컨테이너이죠. (서블릿에 대한 더 자세한 설명) 현재 웹서비스가 구성되는 방식에 크게 2가지가 있습니다. CGI방식과 자바에서 사용되는 웹컨테이너 방식입니다. 간단하게 말하자면, 서블릿은 자바로 작성되어 있기 때문에 따로 이를 구동시켜줄 프로그램이 필요합니다. 그것이 바로 웹컨테이너라 이해하며 되겠습니다. 




2. Web 서버, WAS의 차이

웹서버는 정적인 데이터 (html, img, xml...) 를 처리합니다. 웹서버를 통하면 WAS 보다 빠르고 안정적입니다. 반면, WAS는 동적인 데이터를 처리하는 서버이고 데이터베이스에 연결되어 데이터를 주고받아 웹어프리케이션을 운영합니다. 



2.1. WAS에 대해서 그림으로 살펴보기


WAS



구글링을 하면 여러곳에서 찾아볼 수 있는 그림입니다. 위와 같이 Web서버와 Web Container의 역할을 둘다 감당하고 있는 것을 볼 수 있습니다. 따라서 tomcat만으로도 웹서비스를 할 수 있습니다. 그러나 웹서버 apache와 함께 연동해서 역할을 구분해주면 더욱 강력하게 사용할 수 있습니다.




3. 웹서버의 변화과정   

이는 너무나 정리가 잘 되어있는 블로그가 있어서 소개를 생략하겠다. 아래의 블로그를 따라가면 좀 더 자세하게 Web서버와 WAS가 다른지 또 구별되어 사용는지 명확하게 알 수 있습니다. 


http://manducku.tistory.com/48