Javadocs

#5. WEB과 WAS의 차이 본문

SelfStudy/CS 기술 정리

#5. WEB과 WAS의 차이

Javatist 2023. 3. 19. 21:15

WEB, WAS 란?

1. 웹서버(WEB)란?

웹서버는 말그대로 작성된 html페이지 등을 네트워크망에 종속되지 않고, 웹서비스를 할 수 있도록 하는 어플리케이션이다.

  • 웹 서버(소프트웨어) : 웹 브라우저 클라이언트로부터 HTTP요청을 받아들이고, HTML문서와 같은 웹 페이지에서 흔히 찾아 볼 수 있는 자료 컨텐츠에 따라 HTTP에 반응하는 컴퓨터 프로그램
  • 웹 서버(하드웨어) : 위에 언급한 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터

2. 웹 어플리케이션 서버(WAS, Web Application Server )란?

  • HTTP를 통해 사용자 컴퓨터 혹은 장치에 어플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)이다.
  • 웹 어플리케이션 서버는 동적 서버 컨텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다.
  • 웹 서버 + 웹 컨테이너로 웹 상에서 사용하는 컴포넌트를 올려놓고 사용하게 되는 서버이다. 
  • 웹 컨테이너란, JSP와 Servlet을 실행시킬 수 있는 SW를 웹 컨테이너라고 한다. 

# 기본 기능

  • 프로그램 실행 환경과 데이터베이스 접속 기능을 제공한다.
  • 여러 개의 트랜젝션을 관리한다.
  • 업무를 처리하는 비즈니스 로직을 수행한다.
  • Web Service 플랫폼으로서의 역할을 한다.

3. 웹 컨테이너 (Web Container)

  • JSP와 Servlet을 실행시킬 수 있는 소프트웨어를 웹 컨테이너 혹은 Servlet 컨테이너라고 한다.
  • 웹 서버에서 JSP를 요청하면 Tomcat에서는 JSP파일을 Servlet으로 변환하여 컴파일을 수행하고, 서블릿 수행결과를 웹 서버에게 전달하게 된다.
  • JSP 컨테이너가 탑재 되어 있는 WAS는 JSP 페이지를 컴파일 해 동적인 페이지를 생성한다.
  • Servlet 컨테이너, JSP 컨테이너, EJB 컨테이너 등의 종류가 있다. (WebLogic 등)

WEB과 WAS의 종류

1. Apache

  • Apache는 소프트웨어 단체 이름이다. 그리고 우리가 흔히 말하는 아파치서버는 오픈소스 프로젝트 커뮤니티에서 만든 http웹 서버를 말한다.
  • http 웹 서버는 http 요청을 처리할 수 있는 웹서버이고, 아파치 http서버는 http요청을 처리하는 웹 서버이다.
  • 클라이언트가 GET, POST, DELETE 등의 메소드를 이용해 요청을 하면 이 프로그램이 어떤 결과를 돌려주는 기능을 한다.
  • 즉, 아파치는 웹 서버이다.

2.  Tomcat

  • Tomcat은 흔히 WAS(Web Application Server)라고 말한다.
  • WAS는 웹 서버와 웹 컨테이너의 결합으로 다양한 기능을 컨테이너에 구현하여 다양한 역할을 수행할 수 있는 서버를 말한다. 
  • 클라이언트의 요청이 있을 때 내부의 프로그램을 통해 결과를 만들어내고 이것을 다시 클라이언트에 전달해주는 역할을 하는 것이 바로 웹 컨테이너이다. 
  • 아파치 웹 서버와의 차이는 이 컨테이너 기능이 가능한지의 차이이다.

Web Server

1. Apache HTTP Server

# 장점

  • 오픈 소스로 무료
  • 다양한 모듈을 제공
  • 강력한 커뮤니티로 인한 방대한 자료가 있다.
  • 확장성이 좋고 보안 수준이 높다.

# 단점

  • 많은 기능들로 인해 느린 측면이 있다.
  • 오버 헤드가 발생

2. Ngnix : 최소한의 리소스로 많은 수의 동시 사용자 처리로 대규모 웹 트래픽 처리 상황이 발생할 때 고효율을 발휘한다.

# 장점

  • 오픈 소스로 무료
  • Apache에 비해 가볍다.
  • 프록시 기능이 뛰어나다.

# 단점

  • 커뮤니티의 자료가 부족.
  • 확장 모듈이 Apache에 비해 적다.

3. IIS WEB Server : Microsoft에서 제공하는 소트프웨어이며 유료이며 익숙한 GUI를 통해 접근성이 용이하다.

# 장점

  • Microsoft에서 제공한다.
  • ASP, MS SQL 등과 같은 다른 Microsoft 서비스와 쉽게 통합할 수 있다.
  • 간편한 GUI를 지원한다.

# 단점

  • 가격이 비싸다.
  • Windows Server에서만 동작한다.
  • Apache와 Nginx에 비해 더디고 무겁다.

WAS

1. Tomcat

    1) 주요 기능 

  • JSP/Servlet Container중 하나로 사용자에게 JSP요청을 받으면 서블릿으로 바꾸어 실행
  • Web Server에서 요청한 동적 페이지를 읽어 프로그램을 실행
  • 그 결과를 다시 HTML로 재구성하여 Web Server에게 전달 

   2) 특징

  • Servlet Container를 지원함
  • 플랫폼에 제약이 없음(Window, Linux, Unix)
  • Tomcat내부에 Web Server와 Web Container의 기능이 들어있으므로 Tomcat이 Apache를 포함하고 있으나 Apache와 Tomcat을 연동해서 사용하는 것이 성능상의 이점이 있음

2. WebSphere IBM

3. JEUS


WAS와 Web Server를 분리하는 이유

  1. 기능을 분리하여 서버의 부하 방지
  2. 물리적으로 분리하여 보안강화
  3. 여러대의 WAS를 연결 가능(로드밸런싱의 역할 및 fail over, fail back 처리에 유리)
  4. 여러 웹 어플리케이션을 서비스 기능(java 서버, C#서버, PHP 서버 등 하나의 웹 서비스를 통해 서비스 가능)

'SelfStudy > CS 기술 정리' 카테고리의 다른 글

GET vs POST  (0) 2023.04.14
#8. Rest API란?  (0) 2023.03.26
#7. @Controller 와 @RestController 차이  (0) 2023.03.25
#3. MVC 패턴이란? (Model-View-Controller)  (0) 2023.03.18
Comments