익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT위키
검색
웹 애플리케이션 서버
편집하기 (부분)
IT위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
==비교== ===웹 서버=== 웹 서버와 WAS는 비슷한 개념이라 그런지 같이 또는 다르게 사용되는 단어 가운데 하나이다. 인터넷이 확산될 당시만 해도 웹 서버라는 개념으로 통칭해서 사용했지만, 시간이 지남에 따라 WAS를 더 많이 사용하게 되었다. 이제는 사용자에 따라, 또는 상황에 따라 똑같은 제품이 웹 서버로 불리기도 하고 WAS라고 불리기도 한다. 언제부턴가 웹이 다양한 형태의 프로그램들을 제공하기 시작했다. 초기 웹에서 제공되던 서비스는 기업이나 개인이 단순히 HTML으로 내용을 디자인하고 제공하는 수준이었다. 최근에는 게시판이나 방명록 등 서버와 사용자가 상호 대화를 할 수 있는 페이지로 제공한다. 이제 대부분의 웹 서버들이 이러한 요구에 맞춰 내부 애플리케이션을 동작시킬 수 있는 컨테이너를 내장하고 있다. 단지 웹 서버의 기능만을 수행하던 기존과 달리 동적인 요구에 대응하기 위해 이에 적합한 형태로 변화한 것이다. 해당 제품의 웹 서버 유무를 구분할 때 제품의 기능 보다는 사용하는 기능에 초점을 맞춰 분류하게 된 시점이다. 인터넷 사용자가 증가함에 따라 각 웹 사이트는 보다 많은 사용자에게 원활한 서비스를 제공하기 위해 기능적인 레이어를 나누게 되었고 여기서 웹 서버와 WAS의 구분점이 생기게 된 것이다.<ref name="와스와 웹서버 비교">김민호, 〈[http://pds5.egloos.com/pds/200708/18/42/200703_WAS(Web_Application_Server).pdf 웹 서버와 WAS(Web Application Server)]〉, 《MASO》</ref> :{| class="wikitable" width="900" |+웹 서버와 WAS의 정의 ! align="center" |구분 ! align="center" |설명 |- | align="center" |웹 서버 | align="center" |웹 클라이언트(웹 브라우저)에게 제공하는 콘텐츠를 제공하는 서버이다.<br>즉 정적인 HTML이나 jpeg 혹은 gif 같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저로 제공한다.<br>초창기만 해도 단순히 HTML이나 이미지만 제공되는 사이트가 많았다. |- | align="center" |WAS | align="center" |WAS는 서버 단에서 애플리케이션을 동작할 수 있도록 지원한다.<br>일반적으로 컨테이너라는 용어로 쓰인다.<br>초창기에는 CGI, 그 이후에는 서블릿(servlet), JSP, ASP, PHP 등의 프로그램으로 사용되고 있다. |} ;기본적인 웹 사이트 구성 [[파일:기본적인 웹 서비스의 환경.png|섬네일|<그림1> 기본적인 웹서비스 구성]] <그림 1>은 웹 사이트의 가장 기본적인 구성 환경이다. 모든 콘텐츠를 한 곳에 집중시켜 웹 서버와 WAS의 역할을 동시에 수행한다. 사용자가 많지 않거나 트래픽이 적을 때 효율적이며 간단한 구조로 개발 및 테스트 시스템 구성 시 활용의 가치가 높다. 장점은 사용자 증가에 따라 스위치 장비를 통해 로드 밸런싱을 수행하고, 여러 대의 WAS를 통해 지원이 가능하다는 점이다. 필요시에 추가로 WAS를 증설하는 구조라고 볼 수 있다. 반면 WAS가 정적인 데이터(HTML/이미지)의 처리와 동적인 데이터(웹 애플리케이션)의 처리를 동시에 수행하기 때문에 최적화 측면에선 바람직하지 않다. 또한 정적 데이터의 입출력 처리를 위해 웹 애플리케이션의 수행을 방해할 수 있다. 웹 애플리케이션의 수행으로 정적인 데이터에 영향을 줄 수 있어 사용자 요청이 증가할 경우 대처가 어려운 측면도 있다. 그래서 사용자가 많지 않거나 트래픽이 적을 때 효율적이며 간단한 구조로 개발 및 테스트 시스템 구성시 활용의 가치가 높다.<ref name="와스와 웹서버 비교"></ref> ;웹 서버와 WAS로 구성된 환경 [[파일:웹 서버와 WAS로 구성된 환경.png|섬네일|웹 서버와 WAS로 구성된 환경]] <그림 2>는 웹 서버와 WAS의 기능적 분류를 통해 효과적인 분산을 유도한 형태이다. 정적인 데이터는 구조적으로 앞에 존재하는 웹 서버에서 처리하고, 동적인 데이터는 뒷단의 WAS가 처리한다. 사용자의 요청에 대해서 정적 데이터인 HTML과 자바스크립트 파일, CSS, 이미지 등을 앞단의 웹 서버에 위치시켜 처리함으로써 WAS로 서비스 요청이 넘어가지 않게 한다. 또한 웹 애플리케이션 서비스를 위치적으로 뒤편에 존재하는 WAS에 넘겨줌으로써 WAS는 웹 애플리케이션의 수행이 집중할 수 있다. 웹 서버 단에서 처리할 것과 WAS에게 넘겨질 것을 처리하는 방식은 웹 서버 단의 구성(Configuration)을 통해 처리할 수 있다. 특정 확장자나 디렉터리 업무를 WAS로 넘길지 여부는 웹 서버 단에서 처리한다. 이때 고려할 사항으로 개발 환경과 운영환경이 서로 다를 수 있다는 것이다. 즉 개발환경에서는 굳이 웹 서버와 WAS를 구분하지 않고, 운영 서버에서만 구분하는 경우 컨텍스트 루트(context root) 밑에서의 HTML, 자바스크립트, CSS, 이미지 등의 디렉토리를 적절히 구분하는 것이 필요하다. 개발환경에만 익숙한 개발자들이 운영환경에서 문재가 발생할 경우 적절히 대응하지 못해 작업이 지연되거나 실수하는 상황이 많다. 아래 상자는 아파치 웹 서버에 환경정보를 수정하여 WAS가 처리할 확장자를 지정하는 예제이다.<ref name="와스와 웹서버 비교"></ref> <Files *. jsp> SetHandler JSP-handler </Files> <IfModule mod_weblogic.c> WebLogicHost 127.0.0.1 WebLogicPort 7001 ConnectTimeoutSecs 30 ConnectRetrySecs 3 </IfModule> ;특정 기능에 대한 서버를 별도로 두고 있는 환경 [[파일:이미지 서버를 별도로 두고 있는 환경.png|섬네일|<그림 3> [[:파일:이미지 서버를 별도로 두고 있는 환경.png|이미지 서버를 별도로 두고 있는 환경]]]] <그림 3>은 일반적인 경우라고 볼 순 없지만 충분히 가능한 구성이다. 점점 화려해지는 UI를 자랑하는 페이지들이 많아짐에 따라 이미지의 비중이 증가하고, 이런 이미지들이 전체 네트워크 비중의 상당 부분을 차지한다. 따라서 이미지 서버를 따로 구성해 네트워크 비중도 줄이면서 웹 서버와 WAS를 좀 더 효과적으로 사용할 수 있는 구조라 할 수 있다. 또는 특정 콘텐츠에만 집중적인 요청을 받는 경우도 있다. 예를 들어, 대학 입시 때 경쟁률 조회는 상당히 많은 사용자에 의해 조회가 되고, 리로드 또한 빈번하게 일어나므로 특정 시간 간격으로 HTML을 생성하고, 페이지를 특정 서버에 위치시켜 적절하게 부하를 분산시켜 해결이 가능하다. 이러한 동적인 환경은 다양한 환경에 대한 대처가 빠르다는 장점이 있다. 반면 구조를 정확하게 이해하지 않았을 경우에는 개발 및 테스트에 많은 시간이 쓰인다는 단점도 있다. 관리상의 문제가 발생할 수도 있다. 환경을 구성하기 전에 충분한 검토가 선행되어야 한다.<ref name="와스와 웹서버 비교"></ref> ;WAS단을 로직으로 구분하여 구성 [[파일:WAS단을 로직으로 구분하여 구성.png|섬네일|<그림4> WAS단을 로직으로 구분하여 구성]] <그림 4>는 <그림 2>의 변경된 형태이다. WAS단의 프로그램이 많은 비중을 차지하는 경우, 표현 로직(Presentation Logic)을 담당하는 프로그램과 비즈니스 로직(Business Logic)을 담당하는 프로그램을 구분하는 구성이다. 이런 구성은 특정 로직 부분의 부하에 따라 적절한 대응을 할 수 있으나 구조가 복잡해지는 단점이 있다.<ref name="와스와 웹서버 비교"></ref> 기능적으로만 본다면 거의 대부분의 웹 서버가 웹 애플리케이션을 동작시킬 수 있겠지만 모두 웹 서버 혹은 WAS라고 부르는 것보다는 어떤 기능을 수행하는징 따라, 즉 기능상의 분류를 통해 구분지어 사용해야 할 것이다.
요약:
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
분류별 보기
일반 IT용어
프로젝트 관리
디지털 서비스
블록체인
인공지능
소프트웨어 공학
운영체제
컴퓨터 구조
자료 구조
데이터 과학
데이터베이스
네트워크
프로토콜
보안
컴플라이언스
개인정보보호
표준
경영학
기업 IT
조직/단체
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록