본문 바로가기

Develop Log/개발 관련 잡학다식

첫번째 이야기 WAS, Web Server

반응형

시작은 평범하게

첫 번째 주제로 어떤 내용을 다뤄볼까 고민하던 중 마침 AWS(아마존 웹 서비스)에 대한 광고를 보게 되었고,
AWS와 WAS를 헷갈려하던 때가 생각이 나 의식의 흐름에 따라 AWS와 같이 붙어 다니는 Web Server도 같이 알아보게 되었다.

 

Application Server

Application server가 왜 나와..?

이야기 주제는 WAS, Web Server인데 왜 처음에 이 두 이야기가 아닌 Application Server인지 의아할 수도 있다.

이 내용을 먼저 하게 된 이유는 이 글을 작성하기 위해 공부한 Web Server, WAS의 대한 내용에 많이 관여가 되어있기 때문에 먼저 작성하게 되었다.

 

Application Server

Application Server

Application Server란 쉽게 말하자면, 네트워크가 연결되어 있다면, 그 네트워크를 통해 서버와 Endpoint 간의 통신을 할 수 있는 server이다

HTTP뿐 아니라 TCP, UDP등 다양한 프로토콜을 전달받아 클라이언트에 다양한 서비스를 제공할 수 있으며, 복잡한 비즈니스 로직의 처리를 할 수 있으며 이에 따라 Client는 단순히 정보를 표시하는 것 이상의 동작이 자유롭게 가능하다.

 

어떤 게 있을까

구글에 Application Server를 검색하면 바로 나오는 내용들이 있다.

그중 하나인 Oracle WebLogic Server는 온프레미스 및 클라우드에서 Java와 같은 엔터프라이즈 애플리케이션을 개발, 배포 및 실행하기 위한 통합되고 확장 가능한 플랫폼이며, 다중 계층 분산 엔터프라이즈 애플리케이션을 개발 및 배치하기 위한 세계 최초의 클라우드 기본 엔터프라이즈 Java 플랫폼 애플리케이션 서버이다.

그리고 Oracle WebLogic Server보다 훨씬 많이 나오는 Apache Tomcat이 있을텐데 이 서버를 가장 먼저 설명하지 않았는지는 뒤에서 알 수 있다.

 

Web Server

Web Server가 뭐야

Web Server

Web Server에는 두 가지 측면으로 설명할 수 있다.

  1. 소프트웨어 측면 : 웹 사용자가 어떻게 호스트 파일들에 접근하는지를 관리하여 HTTP요청을 받아들이고 HTML 문서와 같은 정적 페이지를 반환한다.
  2. 하드웨어 측면 : Web Server의 소프트웨어와 Website의 컴포넌트 파일들을 저장하는 컴퓨터를 의미한다.

그리고 사진에 있는 내용을 설명하자면 internet에서 HTTP Request를 날리면 Web Server에서 HTML, Image와 같은 정적인 파일을 Response 하는 것이다.

 

그래서 얘는 뭐가 유명해?

검색 결과도 많고 내 기준에서 가장 친숙한 두가지 Nginx와 Apache를 뽑았다.

Nginx는 로드 밸런싱, 메일 프록시 및 HTTP 캐시 기능을 포함하는 오픈소스 웹 서버라고 할 수 있고,
Apache는 아파치 소프트웨어 재단에서 관리하는 오픈 소스, 크로스 플랫폼 HTTP 웹 서버 소프트웨어다

 

Application Server가 나온 이유

아주 간단한 이유이다.

Web Server는 HTTP 통신을 이용한다. 그리고 Application은 HTTP뿐 아니라 TCP, UDP등 다양한 프로토콜을 사용하기 때문에 Web Server는 Application Server에 포함된다고 할 수 있다.

 

WAS

WAS는 뭐야 그럼?

Web Application Server는 Web Server와 DBMS 사이에서 동작하는 미들웨어로써 컨테이너 기반으로 동작하며 동적인 콘텐츠를 제공하고 다중 스레딩을 사용하여 여러 요청을 병렬로 지원할 수 있다.

Web Application Server

사진에 나와있는 순서대로 설명을 덧붙이자면

  1. Client에서 HTTP Request를 날려 데이터를 요청하면
  2. Web Server 에서 Application Server로 데이터 반환을 위한 Application Logic 실행하고
  3. Application Server 에서 Database로 데이터를 요청하여
  4. Database는 해당 요청에 맞는 데이터를 반환 후
  5. Application Server로 로직 처리결과 데이터를 반환 뒤
  6. Web Server로 받은 데이터를 Client에 전송한다.

요약

WAS는 Web Server와 다른 별개의 서버가 아니라 정적인 HTTP 데이터 처리에 특화된 Web Server에 동적인 데이터를 이용하게끔 하는 Container를 엮어 HTTP를 이용하는 Application Server라고 할 수 있다.

이로 인해 위에서 언급한 Web Server의 경우 WAS라고 말하기보다는 Web Server 또는 Static Server라고 표현을 많이 하고 HTTP를 사용하지 않는 TCP를 사용하는 서버등은 App Server 또는 Application Server라 표현한다.

 

Apache Tomcat

대학교를 졸업할 때까지 가장 많이 들었었던 것 같다.

Apache Tomcat은 Java Servlet을 실행하고 JavaServer Page(*.jsp)코드가 포함된 웹 페이지를 렌더링 및 전달하며, JAVA EE 응용프로그램을 제공하는 오픈소스 Web Application Server이다.

하지만 이 설명만을 적으려고 했다면 타이틀에 이름을 넣지 않았을 것이다.

Tomcat 자체를 소제목으로 잡은 이유가 있는데

Apache Tomcat을 구글에 검색하면 Application Server라고도 설명한 내용도 많이 볼 수가 있다.

하지만 WAS에서 언급하는 이유는 Apache Tomcat을 Application Server라고 부를 수 있지만 전체적인 JAVA EE API를 구현하지 않기 때문에 Application Server보다는 Web Container(또는 Servlet Container)라고 부르는 것이 조금 더 명확하다고 생각하기 때문이다.

그렇기 때문에 Web Container인 Apache Tomcat과 Apache Web Server를 합쳐 WAS가 된다고 생각하여 Application Server가 아닌 WAS 내용에 넣게 되었다

 

참고 사이트

반응형

'Develop Log > 개발 관련 잡학다식' 카테고리의 다른 글

HTTP Method  (0) 2023.07.21
OSI(Open Systems Interconnection) 7계층  (0) 2023.07.18
ORM  (0) 2023.07.17
Http 버전별 특징  (0) 2023.07.16
Tomcat, Nginx  (0) 2023.07.16