<< 학습 목표 >>

1. Spring Boot 로 생성한 프로젝트의 Servlet, Tomcat, Java 버전을 확인할 수 있다.

2. Spring Boot 로 생성한 프로젝트의 자바 버전이 17버전인 이유를 설명할 수 있다.

3. Tomcat의 포트 번호를 바꿀 수 있다.


Spring Boot 를 사용하지 않고 우리가 직접 Spring Framework 프로젝트를 만들었다면 일반 자바 프로젝트를 만들고 이 자바 프로젝트를 Spring Framework 프로젝트로 만들기 위한 라이브러리를 엄청나게 많이 추가해야했을 것임

그러나 우리는 Spring Boot 를 사용해 Spring Framework 프로젝트를 만들었기 때문에 라이브러리를 하나도 추가 하지 않았는데도 Spring Framework 프로젝트가 만들어진 것

 

우리가 Spring Boot로 만든 Spring Framework 프로젝트에 추가되어있는 라이브러리 목록을 확인해보자

프로젝트 내 [ Maven Dependencies ] (1) 를 열어보자

 

갑자기 스크롤이 생기며 jar 로 끝나는 이름들이 엄청나게 많이보일텐데 Spring Boot 를 사용하지 않고 우리가 직접 Spring Framework 프로젝트를 만든다면 여기서 보이는 엄청나게 많은 라이브러리를 하나씩 직접 추가해야했음

 

실제로 Spring Framework 를 배울 때 이러한 라이브러리들을 하나 하나 추가함...

Spring Boot 가 있어서 이렇게 편하게 Spring Framework를 만들 수 있다는 점에 감사할 정도...


Spring Boot 프로젝트를 가만히 살펴 보면 이상한 점이 있음

어딜까??

 

이상한 점은 바로!

 

이 부분이 왜 이상할까??

우리가 Spring Boot 로 프로젝트를 생성했던 시점으로 돌아가보자

 

우리는 분명 자바8 버전을 사용하도록 바꿨음

그런데 생성된 프로젝트의 자바 버전은?? 17버전(1)임

 

우리가 프로젝트를 생성할 때는 자바8 버전으로 지정했는데 실제로 만들어진 프로젝트는 자바17 버전을 사용하고 있음

왜 이런 차이가 생기는걸까??

 

혹시 sts가 잘못 보여주는건 아닐까??

프로젝트를 관리해주는 Maven의 설정 파일(pom.xml)을 열어보자

 

이 pom.xml 을 보면 프로젝트의 자바 버전을 확인할 수 있는데 역시나 자바17버전으로 되어있음

여기에 있는 숫자를 8로 바꾸면 되지 않을까? 싶지만 분명 자바 17버전으로 설정된 이유가 있을 것

 

좀 더 찾아보자

프로젝트 우클릭 (1) -> [ Properties ] (2) 클릭 -> [ Project Facets ] (3) 를 보면 우리 프로젝트의 또다른 설정을 볼 수 있음

 

여기서 Dynamic Web Module (4) 은 우리 서버가 사용하는 Servlet의 버전임

Servlet 버전이 6.0 임

Servlet 으로 공부할 때 배웠듯이 Servlet의 버전에 맞춰서 서버 버전과 자바 버전을 선택해야함

 

일반적으로 현재 Servlet을 공부할 때는 Servlet 4.0 버전을 사용하고 이에 따라 Servlet 4.0 버전은 Tomcat 9 버전을 사용하고 자바는 8버전을 사용함

Servlet 버전에 맞는 Tomcat 서버 버전과 자바 버전 선택 가이드는 Tomcat 공식 문서에서 확인할 수 있음

Tomcat 공식 홈페이지 ( https://tomcat.apache.org/ ) 로 들어가 [ which version ] (1) 항목 내 표(2) 를 보면 나와있음

 

(2)의 표를 보면 Servlet Spec 이 4.0 인 라인을 따라 옆으로 가다 보면 Tomcat 버전이 나와있고 또 옆으로 가다 보면 자바 버전이 나와있음

현재 우리가 Spring Boot 로 만든 Spring Framework 프로젝트의 Servlet 버전은 6.0 이므로 Tomcat 버전은 10 버전을 사용해야하고 자바는 11버전 이상을 사용해야함

 

 

일단 여기까지 확인한 바를 통해 우리가 Spring Boot 로 Spring Framework 프로젝트를 만들 때 자바8 버전을 선택 할 수 없다는 걸 알았음

그러면 Servlet 6.0 버전은 자바 11버전 이상을 사용해야하므로 프로젝트를 만들 때 자바8 버전 대신 자바 11버전을 선택하면 될까?

직접 해보면 알겠지만 이 역시도 자바 11버전이 무시되고 여전히 자바 17버전을 사용하는 프로젝트가 만들어짐

 

 

왜그럴까?

chatGPT가 없었다면 이러한 현상을 이해하기 위해 엄청나게 많은 시간이 걸렸을 것

그러나 우리의 든든한 서포터! chatGPT에게 물어보니 한번에 명쾌한 답을 내줬음

 

우리가 Spring Framework 프로젝트를 만들기 위해 사용한 Spring Boot 3.0.5 버전은 Spring Framework 6.0 버전인 프로젝트를 만들어주는데 Spring Framework 6.0 버전은 자바 17버전 이상이 필요하다는 것!

그래서 우리가 만든 프로젝트가 자바 17버전으로 설정된 것

 

Spring Boot 로 생성한 Spring Framework의 서버 설정과 관련된 자세한 사항을 알고 싶다면 아래 사이트에 가보자

https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.core

 

Common Application Properties

 

docs.spring.io


현재 현업에서 가장 많이 사용하는 Servlet 은 4.0 버전일 것

그에 따라 Tomcat 9, Java 8 버전을 사용할텐데...

 

우리가 만든 프로젝트의 Servlet, Tomcat, Java의 버전을 현업에서 사용하는 버전으로 바꿀 순 없을까?

바꿀 순 있지만 그러려면 Spring Boot 3.0.5 버전이 아닌 더 낮은 버전을 사용해 Spring Framework 프로젝트를 만들어야함

 

우리가 공부하는 환경과 현업의 환경이 많이 다르지만 그러려면 수 년 전의 책이나 자료를 찾아야하므로 이대로 진행하자

취업에 성공해 Spring Framework 를 사용한 프로젝트에 투입됐다면 Spring Framework의 버전과 Tomcat, Java의 버전을 잘 확인하고 차이가 난다면 신입 딱지가 붙어있을 때 얼른 상사 또는 사수에게 "저는 공부할 때 Spring Framework는 X 버전, Tomcat은 X 버전, Java는 X 버전을 사용했는데 혹시 제가 주의해야할 부분이 있을까요?" 라고 물어보자

아직은 "신입이니까..." 가 용서될 수도 있을 것ㅎㅎ


이렇게 우리 프로젝트의 Spring Framwork, Tomcat, Java의 버전을 확인해봤음

 

마지막으로 Tomcat의 포트 번호를 바꾸는 방법을 알아보자

Spring Boot 를 배울 때 포트 번호를 바꿔야하는 경우가 빈번하게 생기는 듯함

Tomcat의 포트 번호를 바꾸려면 [ 프로젝트 설정 값이 들어가는 곳 ] (1) 에 포트 번호를 설정하면 됨

 

Tomcat의 포트 번호를 8090 으로 바꿔 보자(2)

저장 ( Ctrl + S ) 한 후 프로젝트를 실행시켜보자

 

프로젝트를 실행시키는 방법은 이번까지만 설명하고 다음부터는 생략함

전 글 ( https://codingaja.tistory.com/97 ) 과는 조금 다르게 간단하게 실행시켜보자

실행 시킬 프로젝트(1) 를 클릭  -> 실행 버튼(2) 클릭

 

이제 [ Console 패널 ] (1) 을 확인해보면 Tomcat의 포트 번호가 8090 으로 바뀐걸 알 수 있음

 

프로젝트를 실행시키는데 포트 번호가 이미 사용 중이라 실행시킬 수 없다면 이와 같이 포트 번호를 바꿔 실행시키면 됨

 

저는 포트 번호를 8080 으로 사용할테니 여러분은 여러분의 환경에 맞게 포트 번호를 설정해 사용하면 됨

 

728x90
LIST