특정한 서비스를 제공하는 컴퓨터를 서버라고 한다. 서버의 종류에는 Web, Mail, FTP, Telnet, Database가 있다.
Web Server는 웹 브라우저와 HTTP 프로토콜을 이용해서 사용자(클라이언트)의 요구에 따른 특정 서비스를 제공하는 서버를 말한다. Web Server에서 사용할 DB를 위해 Database Server를 구축한다.
Mail Server는 인터넷을 통해 사용자 간의 전자 우편을 주고 받는 서비스를 제공한다.
FTP Server는 서버 내에 파일을 업로드, 다운로드 할 수 있도록 파일 관리 기능을 제공하는 서버를 말한다.
Talnet Server는 Terminal, 텍스트로만 이루어진 창에서 특정 명령어를 통해 서버를 접속, 관리하는 것으로 리눅스 같은 것이 해당 서버에 속한다.
Database Server는 Data들을 저장하고 원격지에서 접속할 경우 권한에 따라 해당 데이터를 열람, 추가, 수정, 삭제하는 기능을 처리한다. 여기서 말하는 원격지는 개발자들이 사용하는 Oracle, mysql Developer라고 볼 수 있다. 해당 디벨로퍼에서 “접속”하여 사용하는 것이다.
클라이언트(서비스 사용자)가 프론트(웹 브라우저)에서 서비스를 Web Server, WAS에 요청하고 Database Server에 해당하는 데이터를 요청하게 된다. Database Server는 요청된 데이터를 WAS, Web Server에 응답하고 프론트에 출력시키면서 클라이언트가 요구한 화면을 보여주게 되는 것이 기본 구조다.
Web Server는 사용자에게 HTML페이지나 jpg, png같은 이미지를 HTTP프로토콜을 통해서 웹 프라우저에 제공하는 서버로 이미 만들어진 정적인 요소를 화면에 보여준다.
WAS는 Web Application Server의 약자로 사용자가 요청한 서비스의 결과를 가공하여 생성한 동적인 페이지를 사용자에게 보여준다. tomcat, wildfly, jeus 등 다양한 종류의 WAS가 존재하지만 가장 대표적인 것으로 tomcat이 있다.
웹 서버와 웹 어플리케이션 서버의 역할은 비슷한 것 같지만 다르다. 웹 서버는 웹 어플리케이션 서버의 도움 없이 요청된 문서를 클라이언트에게 전달할 수 있지만 요청된 문서가 브라우저에서 해석할 수 없는 JSP같은 언어로 작성되어 있으면 웹 서버만으로는 실행할 수 없다.
톰캣은 Servlet과 JSP를 통해서 동적인 웹 문서를 처리하기 위해 만들어진 웹 애플리케이션 서버로 톰캣이 계속 runtime 상태에 있을 때 클라이언트가 보낸 요청(url)에 맞는 Servlet을 찾아 Servlet에 맞는 서블릿 컨테이너를 작동시킨다.
톰캣은 WAS 역할을 하는 동시에 Web Server의 기능을 포함하고 있다. 때문에 웹 서버를 별도로 설치하지 않아도 톰캣을 이용하면 클라이언트와 서버 간의 요청, 응답을 사용할 수 있게 된다.
Servlet의 생명 주기에 대한 관리(생성, 초기화, 소멸), HttpServletRequest
, HttpServletResponse
객체 생성, 클라이언트의 요청과 서블릿 사이의 mapping(매핑) 수행, 전송 방식에 따라 동적으로 페이지 구성하는 작업 진행, 정적 로딩 처리를 맡고 있는 것이 서블릿 컨테이너다.
비즈니스 로직을 담당하는 것으로 요청에 대한 처리를 담당한다고 생각하면 된다.
JSP파일을 다시 자바 코드로 변경해서 class 파일로 전환하여 메모리 공간에 로드한 뒤 실행 가능하게 만드는 작업을 한다. 이 작업을 servlet화라고도 한다.
처리 결과를 HTML 파일로 만들어주는 작업도 진행하며 동적 로딩 처리에 대한 것을 담당한다. 응답에 대한 처리를 담당하는 컨테이너라고 생각하면 된다.
Tomcat 설치 방법은 해당 티스토리 링크 참고
https://inpa.tistory.com/entry/TOMCAT-%E2%9A%99%EF%B8%8F-%EC%84%A4%EC%B9%98-%EC%84%A4%EC%A0%95-%EC%A0%95%EB%A6%AC