WAS란 무엇인가? + Servlet 이란?

WAS(WebApplicationServer)란? 

WAS에 대한 설명을 검색하여 찾으면 다음과 같은 글로 정의된 검색결과들이 많이 존재한다.

 

 HTTP를 통한 동적인 웹페이지 요청을 처리하기 위해서 코드를 실행하기 위환 환경이자 미들웨어라고 한다.
이러한 WAS는 프로그램 실행환경과 DB접속 기능을 제공하며 여러개의 트랜잭션을 관리하고 업무를 처리하는

비즈니스 로직을 수행하는 것을 말한다.


 웹 사용자가 어떤 요청을 하게되면 그 요청에 맞는 코드를 실행해야하고 그 실행된 결과를 웹서버에서 다시 클라이언트에 돌려주게되는 이런 형태로 동작하게된다.

 

 동적으로 문서를 만들기 위한 코드들 Server App과 이 Server App을 실행할 수 있게 만들어주는 환경(WebServer+WAS)들이 웹을 만들기 위한 기본환경이 된다.

 

 

이것에 좀 더 부연설명을 하면 

 

클라이언트에서 member/list 와 같은 get 요청이 웹서버로 들어왔다고 가정해보자.
클라이언트에서 요청이 들어왔으니까 웹서버에서는 웹문서를 그냥 돌려주면되는데
member/list(회원목록)요청과 같은 요청들은 웹문서로 미리 만들어 놓는게 불가능하다. -> (동적인 요청)

즉, 요청에 대한 웹문서를 미리만들어 놓는 것이 불가능하여 웹서버에서는 그 요청에 알맞는
내용을 수행할 수 있는 코드가 있어야 한다. (그것이 어떤 언어로 만들어졌든)
웹서버가 그렇게 요청을 수행할 수 있는 코드를 찾으면 그것을 실행을 해서 DB에서 목록을 문서화해서
넘겨줘야하는데 그래서 이 코드를 실행할 수 있는 환경이 필요한데 그것을 WAS라고 한다.

즉 한문장으로 요약하면 다음과 같다.
동적인 문서를 만들기 위한 코드들을 실행할 수 있고 그 실행된 결과를 돌려줄 수 있는 그러한 환경을 WAS라고 한다.

그리고 servlet이란 위와 같이 어떠한 요청에 따른  코드들이 각 요청마다 조각조각 실행되고 전달되고 나면 해당 프로그램은 끝나버리는데 그래서 이렇게 조각나있는 serverApplication을 servlet(server Application Let)이라고 하는 것이다.

우리가 만들 server application을 servlet단위로 만드는 것이다.
이렇게 servlet단위로 만들기 위해 필요한  환경이 바로 WebServer+WAS(WebApplicationServer)인 것이다.