연차는 10년 가까이 되는데 아는 건 별로 없는 것 같아서
혼자서 스터디 포스트를 올리고 있습니다.
그래도 능력 있으신 분들의 첨삭 지도를 받아야겠기에
여기 올려봅니다 ㅠㅠ

부족한 글인데 어디 올려야되나 한참 헤맸네요.
제 블로그로 오시면 몇개 글이 더 있습니다.
http://eun033.blog.me
홍보글 같아서 부끄럽네요 ㅠ




얼마전 한 프로젝트의 초기 킥오프 미팅 때의 일이다. 

그 클라이언트는 서버를 관리하는 업체가 따로 있어서 서버 담당하는 업체가 와서 설명하고 있었는데, 

그 자리에 있던 경력 다른 개발자가 귀뜸으로 "근데 WAS가 뭐예요?" 라고 물어봤다. 

WAS가 대략적으로 웹서버다라는 것는 알고 있지만, 사실상 웹서버와는 다른 부류라는 것만 알고 있고 정확하게 알고 있지는 못해서 속 시원히 대답해줄수가 없었다.

지금까지 WAS라는 단어를 꽤 많이 사용해왔지만 무엇을 의미하는지 제대로 찾아보고 정의해본 적이 없어서 정리해보고자 한다.

 

 

우선 녹색창에 WAS 서버라고 검색하니 용어정리가 많이 나왔다.

 

 

(참고 : http://sun2lub.blog.me/20161667914, http://blog.naver.com/idbankbox?Redirect=Log&logNo=60192633204)

Web 서버

소프트웨어와 하드웨어로 구분되며, 하드웨어는 말 그대로 Web 서버가 설치되어 있는 컴퓨터를 말한다. 

그리고 소프트웨어 Web 서버란 브라우저 클라이언트로 부터 HTTP 요청을 받아들이고 HTML 등의 웹 페이지 문서에 반응하는 컴퓨터 프로그램이다.

HTTP 프로토콜을 기반으로 하여 브라우저의 요청을 서비스 하는 기능을 담당한다.

 

WAS 서버(Web Application Server, 컨테이너)

HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)이다. 동적 서버 콘텐츠를 수행한다는 것으로 일반 WEB 서버와 구별되며, 주로 데이터베이스 서버와 같이 수행된다. 한국에서는 WAS 서버로 통칭하지만 영어권에서는 Application Server로 불린다.WEB 서버의 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 제시된것, 크게 WEB 서버의 기능과 컨테이너의 기능으로 구성한다.

 

 

 

 

정리 하자면

WEB 서버는 HTML 문서같은 정적 컨텐츠를 처리하는 것이고 (HTTP 프로토콜을 통해 읽힐 수 있는 문서)

WAS 서버는 asp, php, jsp 등 개발 언어를 읽고 처리하여 동적 컨텐츠, 웹 응용 프로그램 서비스를 처리하는 것이다.

처리하는 기능은 나누어져있지만 요새 WAS 서버에는 WEB서버 기능을 포함하고 있다고 한다. 

 

WAS에 대해서 좀더 살펴보자면, J2EE 스펙을 구현한 서버로 

분산 트랜잭션, 보안, 메시징, 쓰레드 처리 등의 기능을 처리하는 분산환경에서 사용되는 미들웨어이다.

웹서버 + 웹 컨테이너로 웹상에서 사용하는 컴포넌트를 올려놓고 사용하게 되는 서버이다.

Web Logic, Jeus, Tomcat, JBoss 등이 있다. Tomcat 같은 경우 WAS가 아니라는 사람들도 있는데 이는 Tomcat에는 EJB 컨테이너로의 기능이 없기 때문이다.

 

WAS가 컨테이너도 포함될 수 있다고 하는데 이 컨테이너 Containner 무엇이냐면

JSP와 Servlet을 실행시킬 수 있는 SW를 웹 컨테이너라고 한다.


JSP를 배울 때 대체적으로 Apache와 Tomcat을 사용한다. Apache는 웹서버를 담당하고 Tomcat은 WAS 다.

ASP를 구동하기 위해서는 IIS를 사용한다. ASP의 환경이 MS계열 서비스라면 WAS의 기능을 담당하는 부분이 있어 별도의 WAS가 필요하지않다.

 

그렇다면 ASP처럼 하나를 쓰지 않고 WAS와 웹서버가 동시에 왜 필요할까.

우리가 만드는 웹페이지는 정적 컨텐츠만 있는 것도 아니고 동적 컨텐츠도 함께 노출되게 된다.

WAS가 정적 데이터를 처리로 인해 동적 컨텐츠의 처리가 지연이 될 것이고 이로 인한 페이지 노출시간이 늘어나게 된다.

WAS는 동적 처리에 최적화 되어 있는 서비스이기 때문에 처리 속도를 위해, 정적처리는 웹서버에서 처리를 하고, 동적 컨텐츠는 WAS에서 처리하게 된다.

간단히 말하면 분산처리를 위한 것이다. 

 

사용자가 클라이언트(브라우저)에 요청을 하게 되면 이를 웹서버에서 반응하여 WAS의 처리를 거쳐

웹페이지로 다시 웹서버에서 클라이언트(브라우저)에 응답 메세지를 주는 것이다.

 

 

한마디로 대답하면

WEB 서버가 처리할 수 있는 형태로 가공하여 제공해줄수 있는 웹 어플리케이션 정도가 될까.

WAS를 사용하는 이유는 WEB서버에서는 웹 문서만 처리하도록 기능을 분배하여 서버의 부담을 줄이기 위한 것이라 할 수 있다.

 

 

 

 

 

 

 

* 잘못된 부분은 댓글로 알려주시면 수정하도록 하겠습니다.





No. Subject Author Date Views Votes
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 40012 1
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 21950 1
11256 나이 50 되기 전에는 결코 깨달을 수 없는 것들 - 페이스북 지인께서 적어 주신 글인데 많이 공감되네요. [2] 코난(김대우) 2014.03.04 4348 0
11255 SA 계정활성화 문제 질문드려도 될까요?? [1] 메쉬메뤼골드 2014.02.27 8091 0
» 첨삭지도 부탁드립니다!!! WAS에 대해서 박경은 2014.02.19 5370 0
11253 가입인사 드립니다~ [1] 코드맛스타 2014.02.14 3531 0
11252 시퀄..시퀄........시퀄.............. [2] 엘리엘1 2014.02.13 4664 0
11251 아마존웹서비스에서 개발자와 스타트업을 위한 클라우드 태권 세미나를 개최합니다! 먼지앓이 2014.02.07 7751 0
11250 안녕하세요! [1] 로로스 2014.01.06 4473 0
11249 간만에 글 올리네요 [1] 미련곰탱 2013.12.26 4140 0
11248 혹시 공수에 대한 기준이 정의되어 있나요? [2] 디베이 2013.12.23 4469 0
11247 SQLER를 살리는 의미로 CSS3 으로 뻘짓 해봤습니다. 비스타 에어로 효과!? [2] 컴포지트 2013.12.17 4554 0
11246 DBA가 되고싶은 대학생입니다. [3] sik 2013.12.15 4672 0
11245 가입인사 드립니다~^^ 상구 2013.12.05 3621 0
11244 멀티스레드와 스레드풀의 차이점이 궁금합니다~~ 우갸우갸v 2013.12.02 4772 0
11243 SQL Unplugged 2013 자료 어디서 볼 수 있나요? [5] 흑흑 2013.10.23 5924 0
11242 구글이나 네이버 일정 구현시 반복의 처리는 어떻게 하십니까? niceman5 2013.10.02 5692 0
11241 안녕하세요, 항상 눈팅만하다가 용기내어 가입하고 글 써봅니다. 나의빛 2013.10.02 4214 0
11240 Tech-days 감사합니다 [1] 세르빌 2013.10.01 3953 0
11239 금일 마이크로소프트 tech day 잘보았습니다. 레지덥던이불 2013.10.01 4051 0
11238 오랜만에 와보네요.. 즐거운 추석 보내세요~ 태지등장 2013.09.17 4280 0
11237 MS SQL 및 리눅스 오라클 질문드립니다. [3] 개발chobo 2013.09.02 5200 0





XE Login