처음엔 Apache-Tomcat 이라니까 그냥 이름 그대로 Apache 서버가 Tomcat 서버구나 했다.
근데 아니다. 정의에 대해서 몇 번씩 검색해봐도 잘 이해가 안갔지만 블로그 시작했으니까 나름대로 정의 해보도록 하겠다. 느낌 아니까~
우선 명칭은 Apache tomacat이다. 왜냐 회사가 Apache니까 그렇다. Apache에서 만든 Tomcat서버이다. 그리고 Apache서버는 또 따로 있다.
기술적인 차이점은 서버 형태이다. Apache서버는 걍 Web서버~ Tomcat은 WAS 서버이다.
Web server와 WAS server의 차이점은 검색하면 멋들진 말로 정의가 되어 있다.
하지만 난 Web기술에 근본없는 지식으로 들어왔기 때문에 처음에 무슨 말인지 잘 몰랐다.
나 같은 사람이 분명 많이 있다고 믿으며 조금 쉽게 풀어보도록 한다.
Web server란 우선 정적인 요청/응답을 해주는 서버이다. 음.... 써놓고 보니 이것도 어려움.
그러니까 Web이란 결국 사용자(client, 너, you)들이 웹브라우저 눈으로 보기 바로 직전의 화면 상태인 html 만 제공해주는 서버이다. 그냥 내가 어떤 주소를 치면 그 주소에 맞는 서버의 경로의 정적인 파일들을 html로 응답해준다고 보면 된다.
그런데 WAS server란 JSP, ASP, .NET, Servlet 등을 해본 사람들은 무슨 말인지 금방 알 것이다. 요런 언어들로 개발을 하면 native 소스 단들이 포함이 되지,,, 이런 내부 로직들은 서버에서 중간 처리를 한 다음에 데이터 및 화면 구성을 다 해서 html로 넘겨 주는 것이다. 이런 것처럼 서버에서 중간 처리를 해주는 서버가 WAS. Web Application Server이다. 뭔가 어플리케이션 하니까 느낌이 오지 않나???
그럼 WAS만 쓰면 되지. 왜 Apache서버는 안 없어지고 같이 설치를 한다는 둥의 얘기들을 하는 것일까?
이유는 html응답은 이걸로 완성 되는 것이 아니다. Web server에서 정적인 요청이라고 말을 했듯이 web에는 image, script 파일들이 같이 합쳐져서 이루어진다. 대표적으로 이 둘을 예로 들었지만 각종 문서파일, sound, video 등등의 다운되는 파일들이 무지하게 많다.
이런 서버에서 아무 가공없이 넘어오는 파일들은 WAS서버를 거칠 필요가 없다. 비효율 적이잖아. 그래서 대량의 트래픽이 생기는 곳에서는 최대한 효율적으로 서버를 사용하기 위해서, 즉 정식 서비스들을 제공하는 큰 규모의 사이트들은 Apache 서버와 Tomcat 서버를 연동해서 사용하는 것이다.
정적 데이터 html, image, script등은 apache서버가 처리를 해주면서 속도를 맞춰 준다고 보면 된다. 이러한 이유로 Web server와 WAS server의 차이점을 이해하면 되지 않을까??
그런데 여기서 정확히 찾아보지는 않았지만 언젠가 웹서핑 중에 요즘의 WAS서버는 위와 같이 비효율적인 처리는 없기 때문에 WebServer와 따로 둘 필요가 없다는 글을 보았다.
뭐 내가 Apache 개발자는 아니기 때문에 정확히 뭐라 할 수 없지만, 그리고 자세히 찾아보기 귀찮으니까 아무튼...
그 사람들이 바보가 아닌 이상 한 군데서 filtering 만 잘해서 처리하면 WAS 서버 한데로 같은 효율을 내지 않을까 하는 것이다.
내가 이해하는 것처럼 단순하지는 않겠지만,, 항상 내가 생각하고 있는것 이상의 기술들이 구현되어 있다. 그러니까 난 후자인 의견인 요즘 WAS들은 알아서 효율적인 처리를 하고 있을 것이라는 추측이 든다.
이건 뭐 슈퍼 삼천포로 빠져들었다. Tomcat 서버 설치 얘기하려다 주저리 주저리 했지만, Apache-tomcat이라고 명명해놓음으로써 헷갈리게 만든 것에 대해 분풀이했다고 생각한다.
댓글 없음:
댓글 쓰기