Programming/Spring

[Spring] Spring Initializr로 프로젝트 생성하기

bu119 2024. 3. 5. 09:00
728x90
반응형

Spring Initializr

Spring Initializr 를 사용하면 SpringBoot 기반의 프로젝트를 쉽게 만들 수 있다. 

https://start.spring.io/ 의 주소로 접근하면 아래와 같은 창이 뜬다.

 

 

Project

SpringBoot를 빌드하고 배포하는 방식을 선택한다.

  • 과거에는 Maven을 많이 사용했지만 최근에는 Gradle을 사용하는 추세이다.

 

Language

프로젝트에 사용할 프로그래밍 언어를 선택한다.

 

SpringBoot

SpringBoot 버전을 선택한다.

  • SNAPSHOT은 아직 개발 중인 데모버전이다.
  • M1이나 M2 등은 정식 릴리즈되지 않은 버전이다.
  • 다른 것 없이 버전만 명시되어 있는 것이 정식 릴리즈 된 버전임으로 이들 중에서 선택하면 된다.
  • 높은 버전은 높은 자바 버전을 필요하므로 버전만 명시되어있는 낮은 버전을 선택하는 것이 좋다.

 

Project Metadata

Group

프로젝트를 정의하고 구분하게 해주는 고유한 식별자 정보이다. 보통 회사의 도메인명을 적는다.

  • group은 package 명명 규칙을 따르도록 한다. (제어하는 도메인 이름의 반대로 시작)
  • 최소한의 컨트롤하는 도메인 네임이어야 한다.
  • 하위 그룹은 얼마든지 추가할 수 있다.
    • 예: org.apache.maven, org.apache.commons
  • 프로젝트 구조를 사용하면 잘 구분되는 groupId를 만들 수 있다.
  • 현재 프로젝트가 다중 모듈 프로젝트라면, 부모 groupId에 현재 프로젝트의 식별자를 추가하는 방식.
    • 예: org.apache.maven, org.apache.maven.plugins, org.apache.maven.reporting

 

Artifact

프로젝트 이름이라고 생각하면 된다. 빌드했을 때 나오는 결과물이다. (jar 파일)

  • 이름은 원하는 것으로 아무거나 정해도 괜찮다.
  • 단, 소문자로만 작성하도록 하고 특수문자는 사용하지 않는다.
  • 버전 없는 jar파일의 이름- third party jar 파일인 경우면, 할당된 이름을 사용해야 함.  

Group은 큰 틀을 의미하고, ArtifactId는 그 안에 작은 틀을 의미한다. 즉,  ArtifactId는 프로젝트의 각 기능들이다.

예를들어, 회사에서 정산시스템을 만든다면, GroupId는 회사명, ArtifactId는 주문 정산, 월급 정산 등으로 정의할 수 있다.

 

Name

프로젝트 이름이다.

  • 일반적으로 Artifact와 동일하게 사용하며 Artifact 작성 시 따라 작성된다.
  • 예를들어, 프로젝트 이름이 my-app이리면 생성된 프로젝트에 MyAppApplication으로 메인 클래스가 생성된다.

 

Description

프로젝트의 설명이다.

 

Package name

프로젝트의 루트 패키지를 설정한다.

  • Group과 Artifact를 설정하면 자동으로 만들어 준다.
  • 변경 가능하다.

 

Packaging

기본이 .jar이다.

  • spring framework와 model2는 .war를 사용한다.
  • Jar로 선택하면 tomcat이 자동으로 세팅되어 단독으로 실행 가능하다.

 

Java

  • 자바 버전을 선택한다.

 

Dependencies

프로젝트에 필요한 라이브러리를 선택할 수 있다.

  • 우측 상단의 ADD DEPENDENCIES 버튼을 클릭하여 추가한다.
  • 나는 보통 아래 4개 정도만 넣고 나머지는 필요에 따라 직접 넣는다.
    •  Spring Web
    • Spring Security
    • Spring Data JPA
    • Lombok

 

GENERATE  버튼을 클릭하면 생성된 소스 및 설정 파일로 구성된 Zip 파일이 다운로드된다.

EXPLORE 버튼을 클릭하여 구성 정보를 확인할 수 있습니다.

 


참고 자료

https://nohriter.tistory.com/115

https://velog.io/@luna001631/Springboot-Spring-Initializr%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EC%9E%90

728x90
반응형