[부스트코스]웹 프로그래밍 기초, 5) WAS(Web Application Server)

kanamycine·2020년 2월 4일
0

5 번째 포스팅으로 인사 드립니다. 우한 폐렴 때문에 난리가 아니네요. 오늘, 광주에 어느 환자가 16번째 우한 폐렴 확진을 받았습니다. 다들 건강 위생에 유념하시고 우한 폐렴이 속히 종식 되길 바랍니다 !


1. 웹 프로그래밍 기초

5) WAS


오늘은 Web application Server가 무엇인지, 왜 WAS가 필요한 지, 어떤 종류의 WAS가 있는 지 알아보는 시간을 갖도록 하겠습니다 !


기본적인 용어에 대한 이해

웹 프로그래밍을 공부하기 전에 몇 가지 중요 용어에 대한 이해가 필요합니다. 이번 시간엔 몇 가지 중요한 용어와 WAS에 대해서 알아볼게요.

  • 클라이언트/서버 구조

클라이언트(Client) 서비스를 제공하는 서버(Server)에게 정보를 요청하여 응답 받은 결과를 사용합니다. 중요한 용어 중에 하나 입니다 ! 웹 프로그래밍을 하다 보면 계속 나오는 용어입니다. 서비스를 제공하는 것을 서버라고 합니다. 웹 서버와 웹 브라우저가 대표적인 서버와 클라이언트의 관계라고 말할 수 있겠습니다.

  • DBMS(DataBase management system)

DBMS(DataBase management system)은 다수의 사용자들이 데이터 베이스 내의 데이터에 접근할 수 있도록 해주는 소프트웨어 입니다. DBSM이 등장하기 이전에는 File에 데이터를 저장하고 불러내는 작업들을 전 부 구현해야 했습니다.

DBSM의 최초의 개념은 IBM에서 논문으로 나왔고 최초의 구현은 오라클에서 하였습니다 !
DBSM 종류는 다양한데 대표적으로 MySQL, Maria DB, Oracle 등이 있습니다. DBSM이 등장하면서 개발자들은 상대적으로 굉장히 쉽게 데이터를 관리할 수 있게 되었습니다.

DBSM은 보통 서버 형식으로 동작합니다, 하지만 이러한 방식의 문제점은 클라이언트의 로직이 많아지고, 크기가 커진다는 문제가 있습니다. 프로그램 로직이 변경이 되면, 클라이언트가 매번 배포되어야 한다는 점과 대부분의 로직이 클라이언트에 포함되어 배포가 되기 때문에 보안에 나쁘다는 문제도 있었습니다.

  • MiddleWare

클라이언트 쪽에 비지니스 로직이 많을 경우, 클라이언트 관리(배포 , 유지보수)로 인해 비용이 많이 발생하는 문제가 발생했습니다.
그렇기 때문에, 비지니스 로직을 클라이언트와 DBMS사이의 미들웨어 서버에서 동작하도록 함으로써 클라이언트는 입력과 출력만 담당하도록 하였습니다. 클라이언트는 단순히 요청만 중앙에 있는 서버에 보내고 미들웨어는 대부분의 로직을 수행합니다. 이 때 데이터를 조작할 일이 있으면 DBSM에 요청합니다. 그리고 그 결과를 클라이언트에 전송해주고 클라이언트는 그 결과를 화면에 보여주게 됩니다.

이로써, 클라이언트에 복잡한 로직이 사라졌습니다. 사용자로부터 입력만 받아서 미들웨어에게 보내는 역할만 수행하면 되기 때문입니다. 프로그램 로직이 변경된다 하더라도 모든 클라이언트를 다시 배포할 필요가 없이 중앙의 미들웨어만 변경하면 되는 장점을 가지게 됩니다.


WAS

  • WAS

WAS는 일종의 미들웨어로 웹 클라이언트 (보통 웹 브라우저)의 요청 중 웹 애플리케이션이 동작하도록 지원하는 목적을 가집니다. 최초의 웹이 등장했을 때, 웹 브라우저는 정적인 데이터만 보여주었습니다. 웹이 널리 사용되면서, 사용자들의 요구사항은 커지게 되었고 웹에서 데이터를 입력하고 조회하는 등의 동적인 기능을 요구하게 되었습니다. 동적인 기능은 프로그래밍을 통해서 가능하였습니다. 웹 서버에서 프로그래밍 기능이 들어가는 방식을 CGI라고 불렀었는데, 단순한 프로그래밍을 활용할 때는 문제가 없었습니다. 그러나 웹은 점점 복잡해졌습니다. 보통 복잡한 기능들은 DBSM에 관련된 것들이 많았어요, 브라우저를 클라이언트라고 본다면 브라우저와 DBMS 사이에 있는 미들웨어가 필요하게 되었습니다. 이렇게 브라우저와 DBSM사이의 미들웨어를 WAS라고 부릅니다. WAS도 미들웨어에 포함된다고 볼 수 있겠네요


WAS가 가지고 있는 중요한 기본 기능이 3가지가 있습니다.

  1. 프로그램 실행 환경과 데이터 베이스 접속 기능을 제공한다.
  2. 여러개의 트랙잭션(논리적인 작업 단위)을 관리한다.
  3. 업무를 처리하는 비지니스 로직을 처리한다.
  4. 이 외에도 다양한 기능 제공, (웹서버의 기능)

정리하자면,

  • WAS도 자체적으로 웹 서버 기능을 내장하고 있다.
  • WAS가 가지고 있는 웹 서버로도 정적인 컨텐츠 처리에 문제가 없다.
  • 규모가 커질수록 웹 서버와 WAS를 분리하는 이유는 장애 극복 기능(failover)인 경우가 많다.

오늘은 기본적인 용어와 WAS가 무엇인지 알아보았습니다. 감사합니다 :)

profile
식물생명공학을 전공하고있는 개발자 :)

0개의 댓글