Back-End/JavaSpring

SpringBoot를 잘 알아보자(gradle, apache tomcat, springboot의 탄생배경) - (1)

stars_one 2025. 2. 17. 22:15

사실은 핑계야~

 

 

springboot를 접하고 많은 기초를 뛰어 넘고 프로젝트를 시작하였다..

점점 그 깊이가 깊어질수록 제대로 공부를 해야겠다는 마음을 먹었다.

 

물론, 개발을 할때 모든걸 알고 시작하려는 것은 매우 미련한 행동이라고 생각하는데

어느정도 감을 잡았을 때는, 다시한번 뒤로 돌아와 기초를 다지는 것이

앞으로 큰 프로젝트를 준비하는데 큰 도움이 될 것이다.

 

전반적으로 springboot에 대한 이야기를 할 예정인데

먼저 Gradle에 대해서 이야기를 해보겠다.

 

spring과 springboot에 대한 이야기

더보기
쓰푸링

 

spring 프레임워크는 바야흐로 2004년 1.0이 등장한 이후에 

20년넘게 사랑받으며 업그레이드 되었고, 현재는 Spring 6.0이 등장!

 

 

Spring은 AOP, IoC/DI 등과 같은 아주 강력한 핵심 기능들을 가지고 있는데

이러한 핵심 기능들을 사용하기 위해서는 너무나도 많은 xml 설정들이 필요했다.

(프로젝트 한번 하려면 초기설정때문에 개쌉고생을 해ㅑㅇ리넘...)

 

이러한 불편을 해결하기 위해 2014년 혜성처럼 등장한...!!

두두등장 SpringBoot

 

SpringBoot는 기존의 xml 설정 대신 Java의 애너테이션 기반의 설정을 적극적으로 사용하고 있기 때문에

무겁고 작성하기 ㅈㄴ힘들던 xml 대신에 애너테이션을 사용하여 아주 간편하게 설정할 수 있다!

심지어 기본적으로 개발에 필요한 설정 정보나,

일반적으로 많이 사용하는 설정 값을 default로 하여 자동으로 설정도 해준다!!

 

 

기존에는 외부 라이브러리와 프레임워크를 사용하기 위해서 각각의 버전들의 호환성을

직접 확인해가면서 의존성들을 설정해야 했지만 SpringBoot에서는 spring-boot-starter-web 처럼

필요한 외부 라이브러리들과 프레임워크들을 의존성에 맞게 starter로 묶어서 제공해 줍니다.

따라서 각각의 버전 호환성을 직접 확인할 필요가 없어졌지요~~

 

그런데, spring boot의 강력한 장점은 따로 있다는 사실..? 두두등장

바로 내장 Apache Tomcat!!! 

 

Spring 프레임워크에서는 서버를 실행시키기 위해 Apache Tomcat을 직접 다운로드 받고

설정하고 프로젝트에 넣어줬어야 하는 뭐 그런 짓거리를 했어야 했다...

 

 

이러한 불편함을 해결하기 위해 SpringBoot에서는 기본적으로 starter-web dependency를 설정하면

자동으로 내장형 Apache Tomcat을 제공해 준다.

 

말 그대로 Apache Tomcat이 내장되어있기 때문에

따로 다운로드 받고 설정하고 삽입할 필요없이 바로 사용할 수 있게 되었다~~.

 

springboot가 태어나고 개발을 하게 되어서 정~~말 다행이다~ 

 


 

1. Gradle이란 무엇일까?

Gradle은 빌드 자동화 시스템이다.

우리가 java로 작성한 코드를 우리가 맞춘 설정에 맞게 자동으로 build 해준다!

 

build란, 소스코드를 실행가능한 결과물로 만드는 일련의 과정을 말하는데,

gradle을 사용하면 build를 통해서 실행가능한 jar파일로 만들어준다는 것!

 

실행가능한 jar파일

 

여기서 build.gradle이라는 스크립트가 존재할것인데,

build.gradle을 통해서 소스코드를 빌드하고 라이브러리의 의존성을 쉽게 관리할 수 있다!

 

즉, 다른 라이브러리들과의 의존성을 자동으로 관리해 주기 때문에

라이브러리들간의 충돌 걱정없이 개발에만 집중할 수 있다 ㄷㄷ

(External Libraries에서 Gradle이 다운로드한 라이브러리들을 확인할 수 있음)

 

 


 

2. Apache Tomcat

아파치 톰캣에 대해서 알기 전에 먼저 web server와 web application server에 대해서 알고 들어가자

 

1) web server & web application server (WAS)

 

web server란,

브라우저에서 URL을 입력하여 어떠한 페이지를 요청했을 때 HTTP의 요청을 받아들여

HTML 문서와 같은 정적인 콘텐츠를 사용자에게 전달해주는 역할을 하는 것이 Web Server이다.

 

Web server의 역할을 크게 2가지로 구분해보면,

1. 정적인 콘텐츠 즉, 이미 완성이 되어있는 HTML과 같은 문서를 브라우저로 전달합니다.

2. 예를들어, 브라우저로부터 ‘로그인하여 MyPage를 요청’과 같은 동적인 요청이 들어왔을 때

웹 서버 자체적으로 처리하기 어렵기 때문에 해당 요청을 WAS에 전달합니다.

 

종류로, apache와 Nginx가 존재한다.

 

 

web application server란,

웹 서버와 똑같이 HTTP 기반으로 동작하며,

로그인/회원가입, 게시물 조회 등 동적인 요청 처리를 수행하는 로직

수행하는 역할을 해준다.

 

종류로, Tomcat, JBoss가 존재한다.

 

2) 그래서 Apache Tomcat은 뭔가요..?

 

apache tomcat 동작 구조

 

Tomcat은 동적인 처리를 할 수 있는 웹 서버를 만들기 위한 웹 컨테이너이다.

 

Apache Tomcat이란, ApacheTomcat합쳐진 형태

정적인 데이터 처리와 동적인 데이터 처리를 효율적으로 해줄 수 있습니다.

 

728x90