Spring

[Spring] 스프링 입문 - 섹션 1. 프로젝트 환경설정

Younghun 2022. 9. 25. 15:18

스터디 시작

한양대학교 GDSC 2기로 활동하게 되었다. 나는 백엔드 팀에 들어가서 Java Spring 스터디를 시작했다.

격주로 대면 스터디를 진행하며 정해진 분량의 강의를 듣고 각자 내용 정리를 해서 발표하면 된다. 발표자는 당일에 랜덤하게 뽑는다고 한다. 미리 발표자를 정하는 방식이 아니라 더 긴장하면서 열심히 준비할 수 있을 것 같다.

 

강의는 인프런에서 김영한님의 스프링 입문을 듣기로 했다. 강의가 딱딱하지 않고 속도감있어서 듣기 좋다. 무료로 좋은 강의를 찍어주셔서 감사하다.

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

 

프로젝트 생성

과거에는 스프링 프로젝트를 밑바닥부터 설정하면서 생성해야했다. 그러나 요즘은 프로젝트 생성을 자동으로 도와주는 사이트가 있다. https://start.spring.io/

위 사이트로 가서 강의와 똑같이 프로젝트를 생성했다.

그러나 스프링 부트 2.3 버전이 더 이상 선택지에 없어서 가장 최신 버전인 2.7.4버전을 선택했다.

그 후 GENERATE 버튼을 누르면 압축파일이 다운받아진다.

 

 

압축파일을 다운받고 인텔리제이로 프로젝트 폴더를 열면 이렇게 Gradle을 비롯한 라이브러리들이 설치된다.

처음 공부하는 것이라 이것들의 역할은 천천히 알아볼 것이다.

 

 

조금 기다리니 설치가 완료됐다.

왼쪽 상단에 보면 src폴더가 main과 test로 나누어져있는 것을 볼 수 있다. 그만큼 test code가 중요하다는 의미이다.

 

 

build.gradle 파일에서 여러가지 설정들을 확인할 수 있다.

plugin에서 스프링부트의 버전을 확인하고 sourceCompatibility에서는 자바 버전을 확인하면 된다. 자바 버전이 처음에는 17로 되어있었는데 실습 때는 11버전으로 사용하라고 하셔서 11로 변경했다.

(start.spring.io에서 자바 버전을 17로 잘못 선택한 것이었다. 11로 변경한 후 새로 파일을 다운받았다.)

 

dependencies에서 선택했던 web과 thymeleaf가 있는 것이 보인다.

 

 

gitignore도 자동으로 만들어준다. git에 올라가면 안 되거나 불필요한 파일들을 설정해서 git에서 무시하도록 만든다.

 

 

그리고 메인파일을 실행하면 Tomcat서버가 열리고 localhost로 접속할 수 있다.

 

 

이런 페이지가 뜨면 성공!

 

 

추가 팁으로 Gradle에서 build and run 설정을 IntelliJ IDEA로 바꿔주어야 실행속도가 더 빠르다고 한다.

 

라이브러리 살펴보기

External Libraries에 가면 엄청나게 많은 라이브러리들이 보인다.

왜 이렇게 많은 라이브러리들이 설치된 것일까?

 

그 이유는 Gradle이 의존관계를 관리해주기 때문이다. 예를 들어 내가 web 라이브러리가 필요해서 설치를 했으면 web라이브러리가 필요한 또 다른 라이브러리들(의존관계)도 설치를 해야한다. 그것을 사용자가 일일이 기억할 수는 없으므로 Gradle이 이렇게 자동으로 의존관계에 있는 라이브러리들을 설치해주는 것이다.

 

 

의존관계는 우측 Gradle버튼을 클릭해서 확인할 수 있다.

web폴더에 들어가보니 tomcat이 있는 것을 확인할 수 있다.

 

View 환경설정

index.html을 만들어서 정적인 Welcome Page를 만들 수 있다.

 

 

그리고 다시 메인파일을 실행시키면 Welcom Page가 뜬다.

 

 

스프링은 워낙에 방대하기 때문에 모든 내용을 외우고 있을 수 없다. 그렇기 때문에 필요한 내용을 공식문서에서 찾는 능력이 중요하다.

공식문서에서 Welcome Page에 대한 내용을 찾아봤다.

 

 

다음은 thymeleaf 템플릿 엔진을 이용해 동적인 페이지를 만들어 보자.

우선 controller라는 패키지를 만들고 HelloController 클래스를 만든다.

 

 

그리고 templates폴더에 hello.html을 만든다.

${data}에서 data 위치에 HelloController에서 입력한 hello!!가 들어간다. 다시 메인 파일을 실행시켜서 확인해보자.

 

 

잘 동작한다!

 

 

동작과정은 김영한님이 수강생들의 이해를 돕기 위해 제공한 그림을 통해 잘 이해할 수 있다.

 

빌드하고 실행하기

이제 콘솔에서 빌드를 해보자. gitbash를 이용해서 실행시켰는데 에러가 떴다.

해결방법을 검색해보니 --debug를 붙이면 된다고 한다.

 

 

build폴더가 잘 생성됐다!

 

 

이제 build/libs로 들어가서 hello-spring-0.0.1-SNAPSHOT.jar를 실행시키면 서버가 열리는 것을 확인할 수 있다.

 

 

섹션 1 마무리

섹션 1에서는 스프링부트를 이용해서 Welcom Page를 로컬서버에서 띄워보았다.

자세한 내용은 아직 배우지 않았지만 프로젝트 생성부터 서버 실행까지 한번 훑어보니까 매우 큰 골격은 잡힌 느낌이다.

인상깊었던 점은 번거로운 환경설정 없이 서버에 jar파일 하나만 만들어서 실행시킬 수 있다는 것이다. 엄청난 편리함같다.

 

이제 섹션 2에서 본격적으로 웹 개발 기초에 대해 배울 예정이다.

다음 수업도 화이팅!