사용자의 웹 서비스 접근점, 요청을 전송하고 결과를 표시
웹 서비스의 가장 앞단에 위치하는 사용자 인터페이스(UI)이다. 사용자의 요청을 받아 웹 서버로 전달하고, 웹 서버로부터 받은 응답을 사용자에게 보여준다.
웹 서버와 웹 애플리케이션 서버를 호스팅하는 물리적 또는 가상의 컴퓨팅 플랫폼
웹 서버와 웹 애플리케이션 서버가 실행되는 물리적 또는 가상의 컴퓨터이다. 이 컴퓨터는 인터넷에 연결되어 있어야 하며, 높은 트래픽을 처리할 수 있는 충분한 리소스를 갖추고 있어야 한다.
On-premise
) 방식이거나AWS
, Google Cloud Platform
, Azure
등의 클라우스 서비스가 될 수 있다.클라이언트의 HTTP 요청을 처리하고, 필요시 웹 애플리케이션 서버로 요청을 전달
웹 서버는 사용자로부터의 HTTP 요청을 받아 정적인 컨텐츠(HTML, CSS, JavaScript, 이미지 파일 등)를 반환한다. 동적인 컨텐츠가 요구되는 경우, 웹 서버는 해당 요청을 웹 애플리케이션 서버로 전달한다.
가장 널리 사용되는 웹 서버 중 하나, 다양한 모듈을 통해 기능 확장 가능
Apache HTTP Server는 가장 널리 사용되는 웹 서버 중 하나로, 여러 가지 모듈을 통해 기능을 확장할 수 있다.
동시 요청 처리에 탁월한 웹 서버, 로드 밸런서나 리버스 프록시 역할도 수행
NginX는 동시 연결을 높은 성능으로 처리할 수 있는 웹 서버로서, 로드 밸런서나 리버스 프록시 서버로도 널리 사용된다.
웹 서비스에서 필요한 정적 파일들을 저장하고 관리하는 공간
HTML, CSS, JavaScript 파일뿐만 아니라 이미지, 비디오 등의 미디어 파일도 저장할 수 있다. 경우에 따라 Web Application Server에 속해 있을 수 있다.
동적 컨텐츠를 처리하고, 데이터베이스와의 연동 등 백엔드 로직을 담당
Web Application Server(WAS)는 동적인 웹 컨텐츠를 처리한다. 사용자의 요청에 따라 데이터베이스에 접근하거나, 비즈니스 로직을 처리하거나, 결과를 동적으로 생성해서 웹 서버로 반환한다.
Java 웹 애플리케이션을 실행하기 위한 웹 애플리케이션 서버, 서블릿 컨테이너 역할
Tomcat은 Java Servlet과 JSP(Java Server Pages)를 실행하는데 사용되는 웹 애플리케이션 서버이다. WAS의 역할을 하며, Java 웹 애플리케이션(WAR 파일)을 배포하는데 주로 사용된다. Tomcat은 간단한 웹 애플리케이션부터 복잡한 웹 서비스에 이르기까지 다양한 환경에서 사용할 수 있다. 또한 Spring Boot 애플리케이션에서는 내장 서버로서 Tomcat을 주로 사용한다.
Java를 이용해 개발된 웹 애플리케이션, 보통 WAR 파일 형태로 배포
Java 웹 애플리케이션은 WAR(Web Application Archive) 파일 형태로 배포된다. WAR 파일은 웹 애플리케이션에 필요한 JSP, Servlet, Java 클래스, XML, 라이브러리 등을 포함하고 있다.
Spring 프레임워크를 기반으로한 웹 애플리케이션, 실행 가능한 JAR 파일로 패키징되어 배포
Spring Boot는 Java의 프레임워크 중 하나로, 웹 애플리케이션 개발을 간소화하고 빠르게 할 수 있게 돕는다. Spring Boot 애플리케이션은 일반적으로 내장 Tomcat을 포함하는 실행 가능한 JAR 파일로 패키징되어 배포된다.
Java 코드를 빌드한 결과물로서, 압축된 파일 형태를 가진다.
이 JAR 파일 하나가 하나의 실행 가능한 애플리케이션을 의미할 수 있다.
웹 애플리케이션은 일반적으로 세 가지 주요 계층으로 구성된다.
Spring Boot는 위의 계층 구조를 MVC(Model-View-Controller) 패턴으로 구현하는데, 이때 아래와 같은 컴포넌트들을 사용한다.
제어 역전,프로그램의 제어 흐름 구조가 뒤바뀌는 것
일반적인 프로그래밍에서 흐름은 개발자가 작성한 코드에 의해 제어된다. 하지만 IoC를 사용하면 프레임워크나 컨테이너 등이 코드의 흐름을 제어하게 된다.
잘 봤습니다. 좋은 글 감사합니다.