[Spring] Spring Boot로 프로젝트 설정하기

🌩 es·2023년 8월 27일
0

스프링 부트Spring Boot로 프로젝트를 생성하는 방법에 대해 알아보려고 한다. 과거 스프링 부트가 없던 시절에는 하나하나 설정을 해줘야 해서 번거로웠다고 하는데, 이제는 스프링 부트를 사용해서 스프링 프로젝트를 간단하게 생성할 수 있다.

Spring Initializr

스프링 부트로 프로젝트를 생성할 수 있게 해주는 웹 도구이다.
웹 사이트 : https://start.spring.io

위 사이트로 들어가면 아래와 같은 화면을 볼 수 있다. 여기서 프로젝트 설정을 해주면 된다.

Project

빌드 도구를 선택할 수 있다. 선택지는 GradleMaven이다.

Gradle

  • Gradle로 설정하면 build.gradle 또는 build.gradle.kts라는 파일을 사용하여 프로젝트의 빌드를 설정하고 의존성을 관리한다.
  • 최근에는 Gradle을 더 많이 쓰고 있다고 한다.
  • Gradle-GroovyGradle-Kotlin 중에서 선택할 수 있는데, 특정 IDE(IntelliJ, Android Studio)를 쓰는 경우 자동완성이 되고 오류 코드를 강조해주며, Kotlin 프로젝트의 경우 언어를 통일하기 위해 쓰는 경우가 많다고 한다.(나는 Groovy만 사용해봐서 어떤 게 낫다고 확언은 못하겠다...)

Maven

  • MavenXML 기반의 빌드 도구로, pom.xml 파일을 사용하여 프로젝트의 빌드 설정 및 의존성 관리를 정의한다.

Language

  • Java, Kotlin, Groovy 중에서 선택할 수 있다. 사용하고자 하는 언어에 맞게 선택하면 되겠다.

Project Boot

  • Snapshot, M1은 정식 릴리스 이전에 개발 중인 새로운 기능이나 업데이트된 코드를 미리 확인하고 테스트할 수 있는 버전이다.
  • 정식 릴리즈 중 제일 높은 것으로 하면 된다.

Project Metadata

Group

보통 기업의 도메인명을 넣는데, 학습용으로 개발할 때는 알아서 적당히 작성해주면 된다.

Artifact

빌드 결과물(.jar)의 이름을 적는다.

Name

프로젝트의 이름을 적는다. 따로 지정하지 않으면 Artifact의 이름을 따라간다.

Description

프로젝트에 대한 설명을 적는다.

Package

프로젝트의 root 패키지 이름을 적는다. 따로 지정하지 않으면 [Group].[Artifact]로 따라간다.

Packaging

프로젝트의 빌드 타겟을 설정한다. 선택지는 JARWAR가 있다.

  • JAR(Java Archive)

    • 내장형 서버를 포함하여 스프링 애플리케이션을 단독 실행할 수 있도록 패키징 된다.
    • 서버 환경에 대한 별도 구성이 필요하지 않은 경우나 마이크로서비스 아키텍처에 적합하다.
  • WAR(Web Application Archive)

    • Tomcat과 같은 서블릿 컨테이너에 배포되는 전통적인 웹 애플리케이션의 배포 포맷으로, 단독 실행되지 않는다.
    • 외부 서블릿 컨테이너를 사용하려고 할 때 적합하다.

결론적으로 배포 환경과 서버 구성에 따라 선택하면 되겠다. Spring Boot 기반 애플리케이션이라면 JAR 파일로 패키징하여 내장 서버를 활용하는 것이 일반적이다.

Java

Java 버전을 선택한다.


Dependencies

  • 프로젝트에 필요한 라이브러리를 검색하여 지정할 수 있다.
  • Spring Web은 기본적으로 넣는다고 생각하면 된다.

폴더 구조 확인하기

설정을 마친 후 Generate를 누르면 .zip 파일을 다운받을 수 있다. 압축을 해제하고 IDE에서 열면 된다.
나는 Gradle-Groovy, Jar로 설정 후 확인해보았다.

/build

프로젝트를 Gradle로 빌드하면 생기는 폴더이다. 참고로 IntelliJ로 빌드하면 out 폴더에 저장된다.


/src

/src/main

  • /src/main/java : 작성한 자바 코드들을 넣는 폴더이다.
  • /src/main/resources : 자바 파일들을 제외한 나머지 파일들을 넣는 곳이다. 기본적으로 application.properties 파일이 있으며, 환경변수를 지정할 수 있다.

/src/test

  • 테스트 코드를 작성한 파일을 넣는 폴더이다.

/build.gradle

build.gradle 파일을 열어보면 이전에 설정한 값들을 확인할 수 있을 것이다.

중요한 부분만 몇 가지 살펴보자.

  • repositories

    • 라이브러리를 어디서 다운받을 건지 설정한다.
    • Maven Central은 자바 개발자들이 라이브러리를 공유하고 검색할 수 있는 중앙 저장소이다. mavenCentral()은 여기서 라이브러리를 받아오겠다는 뜻이다.
  • dependencies

    • 어떤 라이브러리를 가져올 건지 설정한다.
    • 버전 지정도 가능하며, 수정 후 코끼리 아이콘을 누르면 자동으로 불러와진다.


References

  1. [Java] Gradle, Groovy Gradle, Kotlin Gradle
  2. 강의 - 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(김영한)
profile
완벽주의가 아닌 완성주의(블로그 이동 중...)

0개의 댓글