Web Server와 Web Application Server(WAS)
💡웹 서버(Web Server)란?
- 브라우저에서 URL을 입력하여 클라이언트가 어떠한 페이지를 요청했을 때 HTTP의 요청을 받아, 정적 콘텐츠(HTML, CSS, JS, 이미지)로 사용자에게 전달하는 서버
- 웹 서버의 역할은 크게 2가지로 구분할 수 있다.
- 정적인 콘텐츠 즉, 이미 완성이 되어있는 HTML과 같은 문서를 브라우저로 전달
- 브라우저로부터 ‘로그인하여 MyPage를 요청’과 같은 동적인 요청이 들어왔을 때 웹 서버 자체적으로 처리하기 어렵기 때문에 해당 요청을 WAS에 전달
- 종류로는 Apache, Nginx 등이 있다.
💡WAS(Web Application Server)란?
- WAS는 웹 서버와 똑같이 HTTP 기반으로 동작된다.
- 웹 서버에서 할 수 있는 기능 대부분을 WAS에서도 처리할 수 있고, 동적 처리(비즈니스 로직, DB 연동)까지 담당한다.
- WAS를 사용하면 로그인, 회원가입을 처리하거나 게시물을 조회하거나 정렬하는 등의 다양한 로직들을 수행하는 프로그램을 동작시킬 수 있다.
- 종류로는 Tomcat, JBoss 등이 있다.
💡Apache Tomcat이란?

- Apache Tomcat이란 Apache와 Tomcat이 합쳐진 형태로 정적인 데이터 처리와 동적인 데이터 처리를 효율적으로 해줄 수 있다.
Spring Boot의 내장 Apache Tomcat
💡Spring Framework란?
- AOP, IoC/DI 등과 같은 아주 강력한 핵심 기능들을 가지고 있다. (뒤에서 더 자세하게 다룰 내용)
- 하지만 이러한 핵심 기능들을 사용하기 위해서는 너무나도 많은 xml 설정들이 필요했다.

- 이러한 불편사항을 개선하여 2014년 Spring Boot가 등장했다.
💡SpringBoot란?
- SpringBoot는 기존의 xml 설정 대신 Java의 annotation 기반의 설정을 적극적으로 사용하고 있기 때문에 무겁고 작성하기 힘들던 xml 대신에 annotation을 사용하여 아주 간편하게 설정할 수 있다.
🔎 특징
1️⃣ 기본적으로 개발에 필요한 설정 정보들을 일반적으로 많이 사용하는 설정 값을 default로 하여 자동으로 설정해준다.
2️⃣ 외부 라이브러리나 하위 프레임워크들의 의존성 관리가 매우 쉬워졌다.

- 기존에는 외부 라이브러리와 프레임워크를 사용하려면 각 라이브러리의 버전을 직접 맞추고 호환성을 확인해야 했다.
- 하지만 Spring Boot는 spring-boot-starter-web 같은 스타터를 제공해, 필요한 라이브러리들을 검증된 버전 조합으로 묶어준다.
- 따라서 개발자는 개별 버전 충돌을 신경 쓰지 않고, 필요한 기능에 맞는 스타터만 의존성에 추가하면 된다.
3️⃣ Tomcat을 애플리케이션 안에 내장해 실행 가능하다.

- Spring 프레임워크에서는 서버를 실행시키기 위해 Apache Tomcat을 직접 다운로드 받고 설정하고 프로젝트에 삽입 해야한다.

- SpringBoot에서는 기본적으로 starter-web dependency를 설정하면 자동으로 내장형 Apache Tomcat을 제공한다.
- Apache Tomcat이 내장되어있기 때문에 따로 다운로드 받아 설정할 필요없이 바로 사용할 수 있다.
출처
https://teamsparta.notion.site/1-4-2252dc3ef514816ba005ff7a0d8a5059
챕터1-4 : 서버란 무엇일까? | Notion
네트워크란?
teamsparta.notion.site
'심화 > Spring' 카테고리의 다른 글
| [Spring] PathVariable과 RequestParam (0) | 2025.09.24 |
|---|---|
| [Spring] Spring MVC란? (0) | 2025.09.23 |
| [Spring] HTTP란 무엇일까? (1) | 2025.09.22 |
| [Spring] RESTful API란? (0) | 2025.09.17 |
| [Spring] 서버란 무엇인가? (0) | 2025.09.16 |