심화/Spring

[Spring] Apache Tomacat이란 무엇일까?

annovation 2025. 9. 18. 09:36

Web Server와 Web Application Server(WAS)

 

💡웹 서버(Web Server)란?

  • 브라우저에서 URL을 입력하여 클라이언트가 어떠한 페이지를 요청했을 때 HTTP의 요청을 받아, 정적 콘텐츠(HTML, CSS, JS, 이미지)로 사용자에게 전달하는 서버
  • 웹 서버의 역할은 크게 2가지로 구분할 수 있다.
    1. 정적인 콘텐츠 즉, 이미 완성이 되어있는 HTML과 같은 문서를 브라우저로 전달
    2. 브라우저로부터 ‘로그인하여 MyPage를 요청’과 같은 동적인 요청이 들어왔을 때 웹 서버 자체적으로 처리하기 어렵기 때문에 해당 요청을 WAS에 전달
  • 종류로는 Apache, Nginx 등이 있다.

💡WAS(Web Application Server)란?

  • WAS는 웹 서버와 똑같이 HTTP 기반으로 동작된다.
  • 웹 서버에서 할 수 있는 기능 대부분을 WAS에서도 처리할 수 있고, 동적 처리(비즈니스 로직, DB 연동)까지 담당한다.
  • WAS를 사용하면 로그인, 회원가입을 처리하거나 게시물을 조회하거나 정렬하는 등의 다양한 로직들을 수행하는 프로그램을 동작시킬 수 있다.
  • 종류로는 Tomcat, JBoss 등이 있다.

💡Apache Tomcat이란?

Apache Tomcat

  • Apache Tomcat이란 Apache와 Tomcat이 합쳐진 형태로 정적인 데이터 처리와 동적인 데이터 처리를 효율적으로 해줄 수 있다.

Spring Boot의 내장 Apache Tomcat

 

💡Spring Framework란?

  • AOP, IoC/DI 등과 같은 아주 강력한 핵심 기능들을 가지고 있다. (뒤에서 더 자세하게 다룰 내용)
  • 하지만 이러한 핵심 기능들을 사용하기 위해서는 너무나도 많은 xml 설정들이 필요했다.

Spring xml 설정

  • 이러한 불편사항을 개선하여 2014년 Spring Boot가 등장했다.

💡SpringBoot란?

  • SpringBoot는 기존의 xml 설정 대신 Java의 annotation 기반의 설정을 적극적으로 사용하고 있기 때문에 무겁고 작성하기 힘들던 xml 대신에 annotation을 사용하여 아주 간편하게 설정할 수 있다.

🔎 특징

 

1️⃣ 기본적으로 개발에 필요한 설정 정보들을 일반적으로 많이 사용하는 설정 값을 default로 하여 자동으로 설정해준다.

 

2️⃣ 외부 라이브러리나 하위 프레임워크들의 의존성 관리가 매우 쉬워졌다.

Spring Boot 외부 라이브러리

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

3️⃣ Tomcat을 애플리케이션 안에 내장해 실행 가능하다.

Spring Framework Apache Tomcat 설정

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

SpringBoot 내장형 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