Spring Boot Initializr 사용법 상세 가이드
Spring Boot Initializr란?
Spring Boot 프로젝트를 손쉽게 생성할 수 있는 도구이다.
https://start.spring.io 에 들어간 다음 몇몇 옵션을 선택하고, Project Metadata를 입력한 다음 사용할 라이브러리를 선택하고, GENERATE 버튼을 누르면 끝난다.
제일 대중적이고, 권장할만한 항목이 이미 선택되어 있고, Project Metadata도 이미 예시가 입력되어 있고, 사용할 라이브러리도 프로젝트 생성 후에도 얼마든지 추가할 수 있기 때문에 공부하는 입장에서는 아무 것도 하지 않고, GENERATE 버튼을 누르고 시작해도 된다.
그래도 결국 나중에는 항목 하나 하나가 뭘 의미하고, 프로젝트 생성에 어떤 영향을 미치는지 알아야 한다.
Project
● Gradle - Groovy
○ Gradle - Kotlin
○ Maven
프로젝트 빌드 도구를 선택하는 부분인데 별다른 이유가 없다면 Spring Boot에서 선택해 준 기본값 대로 Gradle - Groovy로 하는 걸 추천한다.
대부분 개발자가 Gradle과 Maven이 뭔지는 어느 정도 알겠지만 Gradle 옆에 붙어 있는 Groovy와 Kotlin 이 뭘 의미하는지 궁금할 것이다. Gradle 설정 파일에서 어떤 언어를 사용할지 선택하는 것이고, 대부분 개발자들이 많이 봤던 익숙한 게 Groovy이다. Gradle - Groovy은 빌드 속도와 익숙함에 강점이 있고, Gradle - Kotlin은 안정성과 IDE 지원, 유지보수에 강점이 있다. Kotlin에 익숙하거나 Kotlin 프로젝트가 아니라면 굳이 Gradle - Kotlin을 선택할 필요는 없어 보인다.
Language
● Java
○ Kotlin
○ Groovy
개발 언어를 선택하는 부분이다. Java야 Spring을 공부하는 사람이라면 당연히 모두 아는 언어이고, Kotlin도 Java의 단점을 많이 커버해 주면서 Java와의 호환성이 좋기 떄문에 최근 인기가 높다.
Groovy가 좀 생소한데 Groovy로도 Backend 개발이 가능하고, Kotlin과 마찬가지로 Java와의 호환성이 좋다고 한다. Java에 비해 코드가 더 간결하고, 개발 속도가 빠르다고 한다. 대중적인 선택은 아니기 때문에 Java, Kotlin 둘 중에 하나를 선택하는 게 일반적인 선택이 될 것 같다.
Spring Boot
○ 3.5.0 (SNAPSHOT)
○ 3.5.0 (M2)
○ 3.4.4 (SNAPSHOT)
● 3.4.3
○ 3.3.10 (SNAPSHOT)
○ 3.3.9
기본값은 최신 버전 중 개발이 완료된 안정적인 버전이다. 대부분은 기본값 그대로 선택하면 되고, 버전 옆에 붙은 게 어떤 의미인지만 알아두면 된다.
- SNAPSHOT : 개발 중인 불안정한 버전이고, 최신 개발 내용이 포함되어 있지만 언제든지 변경이 될 수 도 있다. 주로 신기능을 확인해보고 싶을 때 사용하는 버전이다.
- M2 : 주요 기능이 추가되었고, 어느 정도 안정화된 버전을 의미한다. M 뒤에 붙은 숫자는 버전의 순서를 나타낸다. 주로 개발자들에게 피드백을 받기 위한 용도로 많이 사용되는 버전이다.
Project Metadata
- Group : 프로젝트의 패키지 구조를 정의하는 데 사용된다.
- Artifact : 프로젝트 빌드 후 생성되는 Jar 또는 War 파일의 이름에 사용된다.
- Name : 메인 클래스 이름에 영향을 미친다. (예 : demo -> DemoApplication.java, myapp -> MyappApplication.java)
- Description : 프로젝트에 대한 간단한 설명이다. 각 빌드 도구의 설정 파일에 내용이 들어간다.
- Package name : Java를 예로 들면 src/main/java 폴더 밑에 입력된 값으로 패키지가 생성된다. 일반적으로 Group + Artifact 값이 자동 세팅된다. 이를 무시하고, Group 따로 Artifact 따로 Package Name 따로 갈 수도 있지만 권장되지는 않는다.
- Packaging : ● Jar ○ War
프로젝트 빌드 결과물의 형식을 지정한다. Jar는 내장 WAS가 포함되어 있어 파일 하나로 실행 가능한 장점이 있고, War는 외장 WAS에 배포할 때 사용된다. 특별한 이유가 없다면 Jar가 권장된다.
- Java : Java 버전을 선택한다.
★ 제일 중요한 점은 Project Metadata는 프로젝트를 생성한 후에도 각 빌드 도구의 설정 파일에서 변경이 가능하다는 것이다. 프로젝트 생성 전부터 너무 많이 고민할 필요 없다.
Dependencies
사용할 라이브러리를 선택하면 의존성을 자동으로 추가해준다.
프로젝트 생성 전에 미리 선택하면 편리하지만 프로젝트 생성 후에 필요할 때마다 직접 해도 상관은 없다.
마치며...
Spring Boot Initializr 덕분에 프로젝트 생성이 굉장히 쉬워졌다. 처음 프로젝트 생성할 때 Project Metadata의 세부적인 항목들이 무슨 역할을 하는지 Gradle - Kotlin은 뭔지 신경이 쓰였었던 기억이 나서 다시 한 번 세부적으로 조사해서 정리해보았다.
댓글
댓글 쓰기