본문 바로가기
LEARN/NEED

[Spring] start.spring.io 사용 Spring Initializr

by 아이엠제니 2024. 4. 9.

 

 


 

 

 

1. Spring Initializr

https://start.spring.io/

Spring 기반으로 Spring Boot 프로젝트를 만들어주는 사이트

 

2. 화면 설명

 

1) Project

Gradle - Groovy
Gradle - Kotlin
Maven
  • Maven과 Gradle은 Java 프로젝트를 빌드하고 관리하는 도구
  • Legacy Project는 Maven을 많이 사용하나, 최신 프로젝트는 Gradle을 많이 사용함

 

(1) Maven

  • 특징
    • XML 기반의 프로젝트 구성 파일인 `pom.xml`을 사용함
    • Convention over Configuration 원칙에 따라, 프로젝트 디렉터리 구조와 빌드 생명주기를 정의함
  • 사용법
    • Maven 설치 필요
    • `pom.xml` 파일을 작성하여 프로젝트 구성을 정의하고, Maven 명령어를 사용하여 빌드, 테스트, 패키징 등을 수행함
    • Maven은 중앙 저장소에서 의존성을 자동으로 다운로드하고 관리함
    • 명령어
      • mvn clean: 빌드된 파일을 제거함
      • mvn compile: 소스 코드를 컴파일함
      • mvn package: JAR, WAR, 또는 기타 패키지로 프로젝트를 패키징함
      • mvn test: 단위 테스트 실행함

(2) Gradle

  • 특징
    • Maven에 비해 더 유연하며, 성능 우수함
    • 증분 빌드, 병렬 빌드, 그루비 스크립트 실행 등 다양한 기능을 제공함
    • 멀티 프로젝트 빌드 및 다양한 플러그인을 지원함
  • 사용법
    • Gradle 설치 필요
    • `build.gradle` 파일을 작성해야 함
    • `build.gradle` 파일에서 프로젝트의 의존성, 빌드 구성, 플러그인 설정 등을 정의함
    • 명령어
      • gradle clean: 빌드된 파일을 제거함
      • gradle build: 프로젝트를 빌드함
      • gradle test: 단위 테스트를 실행함
      • gradle tasks: 사용 가능한 모든 태스크 나열함

 

2) Language

Java
Kotlin
Groovy
  •  
  • JVM(Java Virtual Machine)에서 실행되는 프로그래밍 언어

 

3) Spring Boot

3.3.0 (SNAPSHOT)
3.3.0 (M3)
3.2.5 (SNAPSHOT)
3.2.4
3.1.11 (SNAPSHOT)
3.1.10

(1) Snapshot

  • 개발 중인 버전
  • 공식적으로 릴리즈되지 않은 개발 버전을 의미하며, 여러 가지 개선이나 새로운 기능이 포함될 수 있음
  • 보통 개발자들이 새로운 기능이나 변경 사항을 테스트하고 피드백을 제공하기 위해 사용됨

(2) M3

  • `Milestone 3`의 준말로, `Meilenstein`의 약자임
  • 마일스톤은 프로젝트의 주요 단계를 나타냄
  • 정식 릴리즈되지 않은 버전

 

  • SNAPSHOT이나, M*이 붙지 않은 버전이 정식 릴리즈된 버전

 

4) Project Metadata

Group
Artifact
Name
Description
Package name

(1) Group

  • 프로젝트 그룹 또는 패키지를 나타냄
  • 보통 회사 도메인 이름을 역순으로 사용함 (com.companyname)

(2) Artifact

  • 프로젝트의 아티팩트 ID를 나타냄
  • 아티팩트 ID는 Maven이나 Gradle 프로젝트의 고유식별자로 사용됨
  • 보통 프로젝트의 이름이나 목적 등을 나타냄

(3) Name

  • 프로젝트의 이름

(4) Description

  • 프로젝트에 대한 간단한 설명이 포함됨
  • 프로젝트의 목적이나 특징 등을 요약하여 제공함

(5) Package name

  • 프로젝트의 기본 패키지 이름을 나타냄

 

5) Dependencies

  • 프로젝트에 포함할 Spring 및 관련 기술의 모듈을 선택하는 데 사용됨
  • 여러 가지 Spring 프로젝트 설정을 제공함
  • 프로젝트에 필요한 다양한 라이브러리와 모듈을 포함함

 

  1. Spring Boot DevTools: 개발 시에 자동 재시작, 라이브 리로드 및 다른 개발자 도구를 지원하는 데 사용됨
  2. Spring Web: 웹 애플리케이션을 개발하기 위한 Spring MVC 및 Spring WebFlux와 같은 웹 프레임워크를 포함함
  3. Spring Data JPA: JPA(Java Persistence API)를 사용하여 데이터베이스와 상호 작용할 때 사용되는 스프링 데이터 모듈
  4. Spring Security: 인증, 권한 부여 및 보안 관련 작업을 수행하는 데 사용됨
  5. Spring Batch: 대규모 작업을 처리하기 위한 스프링 배치 프레임워크를 포함함
  6. Spring Cloud: 클라우드 네이티브 애플리케이션 개발을 위한 Spring 기반 마이크로서비스 프레임워크 및 라이브러리를 포함함

 

6) GENERATE

  • 선택한 프로젝트 설정과 의존성에 기반하여 새로운 프로젝트를 생성하는 데 사용됨
  • 필요한 파일 및 폴더 구조를 생성하여 압축도니 프로젝트 아카이브를 제공함

 

7) Thema

Light
Dark

 

 

참고
인프런 `스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술` 강의 (프로젝트 생성)
OpenAi. (2024) ChatGPT (version 3.5)[Large Language model]. https://chat.openai.com

 

 

 

300x250