본문 바로가기

두두의 IT/Computer Science

WAS, Web Server, WSGI

728x90

웹 애플리케이션 서버(Web Application Server, 약자 WAS)

  • 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크
  • 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)
  • 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다.
  • 한국에서는 일반적으로 "WAS" 또는 "WAS S/W"로 통칭하고 있으며 공공기관에서는 "웹 응용 서버"로 사용되고, 영어권에서는 "Application Server" (약자 AS)로 불린다.
  • 종류 : 아파치 톰캣(Apache Tomcat), Jetty

[기본 기능]

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

 

Web Server

  • 웹 콘텐츠를 저장하거나 처리하는 컴퓨터 또는 소프트웨어
  • HTTP 프로토콜을 통해 클라이언트(웹 브라우저)의 요청 정보를 받아 처리하고 그 결과를 다시 클라이언트에 보낸다. 클라이언트가 요청하는 자원(리소스)을 URL(Uniform Resource Locator) 형태로 받아 내부 파일 시스템과 매핑하여 처리하거나, URL과 입력 값(예: 로그인 화면의 아이디, 패스워드 등)을 함께 받으면 사전에 약속된 처리를 한 후 그 결과를 클라이언트에 전달한다.
  • 템플릿 태그를 해석 못하는 정적(이미 지나간)인 파일
  • 종류 : 아파치(Apache), 엔진엑스(nginx), 마이크로소프트사의 IIS(Internet Information Services) 

 

WSGI(Web Server Gateway Interface)

  • 웹서버와 웹어플리케이션이 어떤 방식으로 통신하는 가에 관한 인터페이스
  • 웹서버가 받은 호출을 Python 어플리케이션에게 전달하기 응답받기 위한 호출 조약
  • WSGI규격에 맞춘 코드를 실행해주는 프로그램 : uWSGI, gunicorn
  • 대부분의 파이썬 웹 프레임워크는 WSGI 서버를 제공하며, 애플리케이션 개발자는 WSGI 서버에 대한 API 규격만 맞추면, 웹 서버와 독립적으로 애플리케이션을 작성할 수 있어 생산성이 높아짐

 

총정리