[Spring Boot Up & Running] Chapter 02. 도구 선택 및 시작

Falco·2023년 7월 26일

Spring Boot Up&Running

목록 보기
2/8
post-thumbnail

목차

2.1 메이픈 vs 그레이들

빌드 도구를 의미하며 과거는 Maven이 많이 사용되는 추세였으나, 오늘날에 이르러 Gradle이 더 잘 활용되고 있습니다.

Gradle이란?

Gradle은 오픈 소스 빌드 자동화 도구로, Java와 다양한 다른 프로그래밍 언어를 지원하는 프로젝트 빌드 도구입니다. JVM 프로젝트를 빌드할 때 널리 사용되는 빌드도구로써 GroovyKotlin 언어를 기반으로 만들어져 있으며, XML 대신 DSL(Domain Specific Language)을 사용하여 빌드 스크립트를 작성할 수 있습니다.

최소한의 코드로 유연한 빌드 파일 build.gradle을 생성합니다.
(Kotlin을 사용함과 동시에 kts로 마이그레이션 하여 build.gardle.kts를 활용하기도 합니다.)

Gradle은 다음과 같은 기능을 제공합니다.

  • 자바 클래스의 증분 컴파일
  • 변경 사항이 없는 경우, 자바 컴파일을 하지 않음
  • 프로젝트를 컴파일하기 위한 데몬

회사의 프로젝트에선 Gradle를 활용하니 이에 대해서만 알고 가면 될 듯 합니다. Maven을 사용할 때가 오면 그 때 내용을 더 추가하겠습니다.

2.2 자바 vs 코틀린

이는 과거의 면접질문에서 충분히 겪었으니 내용작성은 패스하겠습니다.

스프링 부트는 자바와 코틀린 모두 사용가능하며 이또한 회사 프로젝트에서 Kotlin을 활용하고, 이에 대한 내용은 숙지하고 있으니 넘어가겠습니다.

2.3 스프링 부트 버전 선택하기

다음과 같은 일부 예외나 임시 상황을 제외한다면, 실제 프로덕트로 배포되는 어플리케이션은 항상 현재 버전의 스프링 부트를 사용해야 합니다.

임시상황

  • 스프링 부트 이전 버전을 실행 중이지만 현재 버전의 앱을 실행하기 위해 어플리케이션을 업그레이드, 테스트, 배포 중인 경우
  • 스프링 부트 이전 버전을 실행 중인데 현재 버전 스프링 부트에 공식 보고된 충돌이나 버그가 있고, 문제가 있는 스프링 부트나 의존성이 업데이트될 떄까지 기다리라는 공식 가이드가 있는 경우
  • 스냅샷, 마일스톤 또는 출시 후보인 출시 전 버전의 기능을 사용해야만 하는 경우

회사의 프로덕트의 버전에 맞추어 스프링 부트 버전 선택하기

2.4 스프링 이니셜라이저

스프링 부트 애플리케이션을 만드는 방법은 다양하지만, 대부분 스프링 이니셜라이저(스프링 초기 세팅 도구)로 만듭니다.

참고 :
스프링을 설치하기 전 JDK는 필수입니다.
SDKMAN! 패키지 관리자를 활용하여 JDK를 관리할 수 있습니다.
sdk list java로 원하는 자바 버전을 확인 후 sdk install java <자바 버전>을 활용하여 설치합니다.
AdopOepnJDK에서 직접 다운로드 받는 방안도 있습니다.

Explore를 활용해 만들어질 프로젝트를 미리 볼 수 있으며

디펜던시도 추가할 수 있습니다.

2.7 main()을 향한 여정

그렇다면 스프링 부트 프로젝트와 표준 자바 어플리케이션과의 다른 점이 무엇일까요?

// 스프링 부트 main 클래스
@SpringBootApplication
public class DemoApplication {
	
    public static void main(String[] args) {
    	SpringApplication.run(DemoApplication.class, args);
    }
}

표준 자바 어플리케이션에는 비어 있는 기본 메서드인 public static void main()이 기본적으로 들어 있습니다.

어플리케이션을 실행할 때 실행할 코드를 자바 클래스의 메인 메서드에 넣는 방식을 활용하여 어플리케이션을 실행합니다.

  1. 어플리케이션 실행 시 스프링 부트 어플리케이션 환경을 확인하고
  2. 어플리케이션을 설정한 다음 초기 컨텍스트를 생성하고
  3. 스프링 부트 어플리케이션을 준비합니다.

이 모든 과정이 @SpringBootApplication이라는 최상위 어노테이션을 통해 한줄의 코드로 수행됩니다.

관련한 동작 메커니즘은 추후에 블로그 글에서 다를 예정입니다.

2.8 마치며 (정리)

스프링 부트 어플리케이션을 만들 때 선택할 만한 가장 좋은 설정을 살펴보았습니다.
이들을 활용하여

  • 프로젝트 생성부터 개발과 유지보수에 용이한 의존성 관리 최소화
  • 작업하려는 도메인의 보일러플레이트 코드를 극적으로 줄이거나 없애주는 자동 설정
  • 패키징과 배포를 간단하게 만들어주는 배포 간소화

를 제공합니다!

profile
강단있는 개발자가 되기위하여

0개의 댓글