스프링 프로젝트를 만들어주는 사이트 에 들어가서, 설정을 건들여주면 된다.
Project
해당 프로젝트는 Maven, Gradle 이란 필요한 라이브러리를 땡겨 오거나, build하는 라이프 사이클까지 관리하는 Tool이다. 지금은 Gradle 이 대세이다.
Language
당연히 언어는 Java
Spring boot 버전
버전은 SNAPSHOT, M1 이런 곁다리는 정식 버전이 아니므로, 정식으로 release 된 버전을 선택하자.
Project Metadata
Dependencies
스프링 부트 기반으로 프로젝트를 시작할 것인데, 어떤 라이브러리를 기반으로 프로젝트를 만들 것인가? 에 해당하는 칸이다.
웹 프로젝트를 만들 것이므로
- Spring Web
- Thymeleaf (html을 만들어주는 태블릿 엔진)
설정이 모두 완료되면 다운로드를 받는데, 다운로드를 받은 것을 IDE 로 연다.
처음 프로젝트를 열게 되면, 외부에서 라이브러리를 다운 받는 과정을 거치므로 놀라지 말도록 하자.
기본적으로 프로젝트내에 어떤 폴더가 있고 어떤 파일이 있는지 쓰임새에 대해 간략히 짚고 넘어가자.
.idea
인텔리제이를 쓰고있다면, 해당 IDE를 위한 설정 폴더
gradle
gradle과 관련된 폴더
src
소스파일이 담겨져 있는 폴더로, "main" 과 "test" 두 폴더로 나뉘어져 있다. 이런 구조가 요새 프로젝트의 기본적인 틀이다.
main
main 밑에는 "java" "resources"가 존재하고,
java 밑에는 실제 패키지와 소스파일이 존재.
resources 밑에는 자바 파일을 제외한 XML html 등등 자바 파일을 제외한 파일들이 존재한다.
test
test 밑에는 test code들과 관련된 소스들이 존재한다.
build.gradle !!중요!!
버전 설정하고, 라이브러리를 땡겨와주는 파일이다.
dependencies를 보면, 우리가 프로젝트를 생성할때 설정한 dependencies 목록들이 추가된 것을 볼 수 있다.
근데, test와 관련된 라이브러리는 추가를 하지 않았는데 들어가있다. 이는 자동으로 추가된 test 라이브러리이다.
이러한 라이브러리는 어디서 다운로드를 받는건가?
위에 보면, repositores { } 에 mavenCentral() 이 존재하는데, 여기서 해당 라이브러리 파일들을 자동으로 다운로드 한다.
내가 느끼기에는, Node.js 의 npm과 비슷하다고 느꼈다.
알아서 dependency 관리도 해주고, 라이브러리 관리도 자동으로 해주니 말이다.
dependency 관리
external libraries 에 가보면, 수 많은 라이브러리가 불러왔음을 알 수 있는데 이는 dependency를 알아서 관리 해주기 때문이다. (gradle, maven 등등의 build tool)
gradlew , gradlew.bat
빌드를 위한 파일들이다.
해당 프로젝트를 만든 후 다운로드를 받으면, zip파일이 다운로드 된다. 압축을 푼 후, IDE에서 build.gradle을 프로젝트로 열면, build.gradle이 build가 되면서, 라이브러리 파일들을 받아온다.
다 받고나면, main에 존재하는 java application을 tomcat 서버에서 실행시킬 수 있다.
해당 이미지는 build.gradle을 실행 시킨 후에, 라이브러리를 다 다운로드 받고서 커맨드 창에 뜨는 성공 메세지이다.
만일, 성공이 되었다면,
이렇게 재생표시 (run)표시가 application에 뜬다.
이 코드를 실행시키면
이렇게 뜨는데, Tomcat 서버를 활용해서 포트번호 8080으로 local에서 서버를 만들어 localhost:8080으로 가면 페이지를 확인할 수 있다.
이는 어떻게 작동하는 것인가?
@SpringBootApplication
public class CouponCheckApplication {
public static void main(String[] args) {
SpringApplication.run(CouponCheckApplication.class, args);
}
}
코드를 보면 이렇게 생겼는데, 위에 @SpringBootApplication이 어노테이션으로써,
스프링부트 어플리케이션이 실행되면서 자체적으로 내장된 tomcat서버로 실행한다.
추가로, library간 의존관계를 IntelliJ에서 볼 수 있는데,
화면 좌측 하단에 window창처럼 생긴 것을 누르면 화면 측면에 gradle이 뜨고, 이를 눌러서 직접 확인해 볼 수 있다.