내가 평소 다루던 기술 스택은 React와 Next였는데, 우연한 기회로 스프링 웹 개발 프로젝트에 참여할 수도 있을 것 같아 스프링 공부를 시작하게 되었다.
개인 공부 후 기록용으로 작성하는 글이라 미숙한 부분이 많을 텐데, 공부하면서 차차 보완해나가려고 한다! 🧚🏻♀️
🔗 https://spring.io
기본적으로 이 기술 스택에 대해 알기 위해서는, 다른 기술 스택들과 마찬가지로 공식 문서를 찾아보는 것이 가장 좋다. 강의에 나오지 않는 부분들을 알고 싶을 때 문서를 적극 활용해야겠다.
🔗 https://start.spring.io
프로젝트를 생성할 때는 스프링 부트 스타터를 통해 생성할 수 있다. 여기서 좌측 상단에 있는 Maven
/ Gradle
은 필요한 라이브러리를 가져오고 빌드 사이클 관리까지 도와주는 도구이다.
스프링 부트의 버전은 아직 만들고 있는 버전인 SNAPSHOT과 정식 release되지 않은 M1을 제외한 버전들 중 최신 버전을 고르면 된다.
스프링 부트 스타터에서 추가한 Dependencies들은 📁build.gradle 파일에서 확인할 수 있다.
나는 강의에서 적용한대로 Spring Web, Thymeleaf 이렇게 두 가지를 추가했는데, 실제로는 위와 같이 정말 많은 라이브러리들이 추가되었다. 많은 라이브러리들이 의존관계로 엮여있기 때문에, 한 개의 라이브러리를 추가하면 그 라이브러리를 사용할 때 필요한 라이브러리들을 자동으로 같이 추가하기 때문이다.
추가된 라이브러리들은 우측에 gradle 아이콘을 누르면 확인할 수 있다!
프로젝트를 실행하면 src > main > java > ...
경로 최하위에 한 파일을 발견할 수 있다. "hello-spring"이라는 이름을 가진 내 프로젝트에서는 HelloSpringApplication이라는 이름으로 되어 있다.
프로젝트를 빌드하고 파일 내 main 함수를 실행하면 위와 같은 터미널 출력을 확인할 수 있으며, localhost:8080에서 다음과 같은 화면을 발견하면 성공이다.
스프링 프로젝트를 처음 다뤄보는 나는 이게 맞는 화면인가? 싶었지만, 바로 다음에 기본 페이지에 관한 설명을 듣고 나니 스프링의 기본 설정이 이렇게 되어 있구나 ~ 이해하게 되었다.
기본 페이지에 관한 내용부터는 이후에 공부하고 기록할 예정이다.
사실 에러 핸들링이라고 부르기도 어려운 기초 설정이다.
스프링 부트로 프로젝트를 생성할 경우에는 생성 당시 jdk 버전이 지정된다. 따라서 나는 가장 최신 버전인 24버전으로 지정되었다.
강의에서는 비교적 에러를 덜 마주치는 11 버전으로 설치하라고 했기에, 프로젝트 설정 이후에 다시 버전을 설정하다보니 설치한 자바의 버전과 프로젝트 내 적용해놓은 자바의 버전이 달라 다음과 같은 에러가 발생하였다.
(
당시 캡쳐샷이 없어서 구글링해 얻은 사진으로 대체)
🔗 출처: https://hanadoescoding.tistory.com/44
내가 다운받은 jdk 버전은
File > Project Structure
에서 확인할 수 있고, SDK를 눌러 다른 버전을 다운받을 수도 있다.
그리고 프로젝트에 설정되어 있는 자바의 버전은 📁build.gradle 파일 내 languageVersion에서 확인할 수 있다. 이 두 곳에 적용되어있는 버전이 동일해야 위와 같은 오류가 나지 않는다.
나 같은 경우는 이 부분만 수정했더니 main 함수 실행 실패 문제를 해결할 수 있었다.