스프링부트를 배우는 시간이 되었다. 스프링부트를 이용해서 프로젝트를 만들고 실행하는 과정에서 Apache Tomcat이라는 것이 등장하였다. 그것에 대해 정리하고 서버가 어떻게 실행되는지 알아보자.
아파치는 아파치 소프트웨어 재단에서 만든 웹서버(web server)로 정적 리소스를 응답한다. (80포트)
Web Server?
http 프로토콜 기반으로 브라우저로부터의 요청을 서비스하는 기능을 담당하는 프로그램으로 정적인 데이터에 대한 처리를 담당한다.
웹 서버와 웹 컨테이너의 결합으로 WAS(웹 애플리케이션 서버)이다. 동적인 데이터를 처리한다. (8080포트) JSP와 서블릿을 처리한다.
WAS? (Web Application Server)
여러 웹 클라이언트의 요구를 웹서버가 감당할 수 없는 기능을 구조적으로 웹서버와 분리하기 위해 만들어진것이다. 동적인 데이터 처리를 담당한다.

+ AP 서버(애플리케이션 서버)
자바 웹 애플리케이션을 구동하기 위해 필요한 프로그램으로 Tomcat이 이에 해당한다.
HTML 코드에 Java 코드를 넣어 동적 웹 페이지를 생성하는 웹 애플리케이션 도구로 서블릿을 작성하지 않고도 간편하게 웹프로그래밍을 구현하게 만든 기술이다.
Java소스를 사용하여 웹페이지에 접근하고 페이지 전환을 통하여 웹브라우저에 전달한다.
요청을 수신하고 응답을 반환하는 프로그램을 만들기 위한 자바 표준 기술이다. 즉 동적 웹페이지를 만들때 사용한다.
<특징>
<동작과정>
1. 클라이언트 요청
2. 서블릿 객체 생성
3. 어느 서블릿에 대해 요청한 것인지 탐색 후 호출
4. 동적 페이지 생성 후 응답 전송
JSP VS. Servlet
JSP: HTML 페이지 내에서 자바 코드를 삽입 (뷰 생성)
Servlet: HTML을 자바 코드 내에서 출력 (비즈니스 로직 처리)
결론!!
스프링부트는 아파치톰캣이 내장되어있어 따로 설치가 불필요하다!~!
이정도 개념으로 이해하고 넘어가도 될 것같다. 결론만 기억하면 된다. 스프링부트는 애플리케이션 서버가 내장되어있어 따로 설치 및 설정을 안해도 쉽게 서버를 실행하고 배포할 수 있다는 것이다.
출처 및 참고
1. [새싹 X 코딩온] 영등포 캠퍼스 6기 입문자도 가능한 웹 개발자 부트캠프 강의 교안
2. 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
3. https://velog.io/@falling_star3/Tomcat-%EC%84%9C%EB%B8%94%EB%A6%BFServlet%EC%9D%B4%EB%9E%80
4. https://velog.io/@remon/%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EB%B3%B8-%EC%A7%80%EC%8B%9D-WEB%EC%95%84%ED%8C%8C%EC%B9%98%EA%B3%BC-WAS%ED%86%B0%EC%BA%A3-%EC%B0%A8%EC%9D%B4