> For the complete documentation index, see [llms.txt](https://wannaqueen.gitbook.io/spring5/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wannaqueen.gitbook.io/spring5/spring-boot/undefined/10..md).

# 10. 스프링 부트 설치 by ks

스프링 부트는 "클래식"Java 개발 도구와 함께 사용하거나 명령 줄 도구로 설치할 수 있습니다. 어쨌든 [Java SDK v1.8](https://www.java.com/) 이상 이 필요합니다 . 시작하기 전에 다음 명령을 사용하여 현재 Java 설치를 확인해야합니다.

```
$ java -version
```

Java 개발을 처음 사용하거나 Spring Boot를 시험하고 싶다면 [Spring Boot CLI](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-started-installing-the-cli) (Command Line Interface)를 먼저 시험해 볼 수도 있습니다 . 그렇지 않으면, "classic"설치 지시 사항을 읽으십시오.

### 10.1 Java 개발자를위한 설치 지침

Spring Boot는 표준 Java 라이브러리와 같은 방법으로 사용할 수 있습니다. 그렇게하려면 `spring-boot-*.jar`클래스 경로에 적절한 파일을 포함 시키 십시오. Spring Boot는 특별한 도구 통합을 필요로하지 않으므로 IDE 또는 텍스트 편집기를 사용할 수 있습니다. 또한 Spring Boot 애플리케이션에 특별한 것은 없으므로 다른 Java 프로그램처럼 Spring Boot 애플리케이션을 실행하고 디버그 할 수 있습니다.

Spring Boot jar를 복사 할 *수는* 있지만 종속성 관리 (예 : Maven 또는 Gradle)를 지원하는 빌드 도구를 사용하는 것이 좋습니다.

#### 10.1.1 Maven 설치

스프링 부트는 Apache Maven 3.3 이상과 호환됩니다. Maven을 아직 설치하지 않았다면, [maven.apache.org](https://maven.apache.org/) 의 지시 사항을 따르십시오 .

| ![\[팁\]](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/images/tip.png)                                                                                                                                                                                                                                   |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p>많은 운영 체제에서 Maven은 패키지 관리자와 함께 설치할 수 있습니다. OSX Homebrew를 사용하는 경우 시도해보십시오 <code>brew install maven</code>. </p><p>우분투 사용자가 실행할 수 있습니다 <code>sudo apt-get install maven</code>.</p><p> <a href="https://chocolatey.org/">Chocolatey</a> 를 사용하는 Windows 사용자 <code>choco install maven</code>는 상승 된 (관리자) 프롬프트에서 실행할 수 있습니다 .</p> |

스프링 부트 의존성은 `org.springframework.boot` `groupId`을 사용한다. 일반적으로 Maven POM 파일은 `spring-boot-starter-parent`프로젝트 에서 상속되며 종속성을 하나 이상의 ["Starters"에](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter) 선언합니다 . Spring Boot는 또한 실행 가능한 jar를 생성하기 위한 선택 사항 인 [Maven 플러그인](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-maven-plugin) 을 제공합니다 .

다음 목록은 일반적인 `pom.xml`파일을 보여줍니다 .

```markup
<? xml version = "1.0"encoding = "UTF-8"?>
<project  xmlns = "http://maven.apache.org/POM/4.0.0"xmlns  : xsi = "http://www.w3.org/2001/XMLSchema-instance"xsi 
	: schemaLocation = "http : /maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd " > 
	<modelVersion> 4.0.0 </ modelVersion>

	<groupId> com.example </ groupId> 
	<artifactId> myproject </ artifactId> 
	<version> 0.0.1-SNAPSHOT </ version>

	<! - Spring Boot에서 기본값 상속 -> 
	<parent> 
		<groupId> org.springframework.boot </ groupId> 
		<artifactId> spring-boot-starter-parent </ artifactId> 
		<version> 2.1.4.RELEASE < / version> 
	</ parent>

	<! - 웹 응용 프로그램에 대한 일반적인 종속성 추가 -> 
	<dependencies> 
		<dependency> 
			<groupId> org.springframework.boot </ groupId> 
			<artifactId> spring-boot-starter-web </ artifactId 
		> 
	</ dependencies>

	<! - 패키지를 실행 가능한 jar로 -> 
	<build> 
		<plugins> 
			<plugin> 
				<groupId> org.springframework.boot </ groupId> 
				<artifactId> spring-boot-maven-plugin </ artifactId> 
			</ plugin > 
		</ plugins> 
	</ build>

</ project>
```

| ![\[팁\]](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/images/tip.png)                                                                                                                                                                                                                              |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| The `spring-boot-starter-parent`는 Spring Boot를 사용하는 가장 좋은 방법이지만 항상 적합한 것은 아닙니다. 때로는 다른 상위 POM에서 상속해야 할 수도 있고, 기본 설정이 마음에 들지 않을 수도 있습니다. 이러한 경우 Import 범위 를 사용하는 대체 솔루션은 [13.2.2 절. "상위 POM없이 스프링 부트 사용"을](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-maven-without-a-parent) 참조하십시오. |

#### 10.1.2 Gradle 설치

Spring Boot는 Gradle 4.4 이상과 호환됩니다. Gradle을 아직 설치하지 않은 경우 [gradle.org](https://gradle.org/) 의 지침을 따를 수 있습니다 .

Spring Boot 의존성은 `org.springframework.boot` `group`을 사용할 수 있습니다. 일반적으로 프로젝트는 하나 이상의 ["Starters"에](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter) 대한 종속성을 선언합니다 . Spring Boot는 의존성 선언을 간소화하고 실행 가능한 jar를 생성하는 데 사용할 수 있는 유용한 [Gradle 플러그인](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-gradle-plugin) 을 제공합니다 .

**Gradle Wrapper**

Gradle Wrapper는 프로젝트를 구축해야 할 때 Gradle을 "획득"하는 좋은 방법을 제공합니다. 빌드 프로세스를 부트 스트랩하기 위해 코드와 함께 커밋하는 작은 스크립트 및 라이브러리입니다. 자세한 내용은 [docs.gradle.org/4.2.1/userguide/gradle\_wrapper.html](https://docs.gradle.org/4.2.1/userguide/gradle_wrapper.html) 을 참조하십시오.

{% hint style="info" %}
부트스트랩 (참조 : 위키백과)

&#x20;**부트스트랩**(Bootstrap)은 [웹사이트](https://ko.wikipedia.org/wiki/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8)를 쉽게 만들 수 있게 도와주는 [HTML](https://ko.wikipedia.org/wiki/HTML), [CSS](https://ko.wikipedia.org/wiki/CSS), [JS](https://ko.wikipedia.org/wiki/JS) [프레임워크](https://ko.wikipedia.org/wiki/%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC)이다. 하나의 CSS 로 휴대폰, 태블릿, 데스크탑까지 다양한 기기에서 작동한다. 다양한 기능을 제공하여 사용자가 쉽게 웹사이트를 제작, 유지, 보수할 수 있도록 도와준다.
{% endhint %}

Spring Boot and Gradle 시작에 대한 자세한 내용 은 Gradle 플러그인의 참조 가이드의 [시작하기 섹션](https://docs.spring.io/spring-boot/docs/2.1.4.RELEASE/gradle-plugin/reference/html/#getting-started) 에서 찾을 수 있습니다 .

### 10.2 스프링 부트 CLI 설치

Spring Boot CLI (Command Line Interface)는 Spring을 사용하여 신속하게 프로토 타입을 작성하는 데 사용할 수있는 명령 행 도구입니다. 그것은 [Groovy](http://groovy-lang.org/) 스크립트 를 실행할 수있게 해줍니다. 즉, 상용구 코드가 없어도 친숙한 Java와 유사한 구문을 사용합니다.

{% hint style="info" %}
Groovy (참조 : 위키백과)

&#x20;**그루비**(Groovy)는 [자바](https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_\(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4\))에 [파이썬](https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%EC%8D%AC), [루비](https://ko.wikipedia.org/wiki/%EB%A3%A8%EB%B9%84_\(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4\)), [스몰토크](https://ko.wikipedia.org/wiki/%EC%8A%A4%EB%AA%B0%ED%86%A0%ED%81%AC)등의 특징을 더한 [동적](https://ko.wikipedia.org/wiki/%EB%8F%99%EC%A0%81_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4) [객체 지향](https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4) [프로그래밍 언어](https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)이다.
{% endhint %}

Spring Boot로 작업하기 위해 CLI를 사용할 필요는 없지만 Spring 애플리케이션을 지상에서 꺼내는 가장 빠른 방법입니다.

#### 10.2.1 수동 설치

Spring 소프트웨어 저장소에서 Spring CLI 배포판을 다운로드 할 수있다.

* [spring-boot-cli-2.1.4.RELEASE-bin.zip](https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/2.1.4.RELEASE/spring-boot-cli-2.1.4.RELEASE-bin.zip)
* [spring-boot-cli-2.1.4.RELEASE-bin.tar.gz](https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/2.1.4.RELEASE/spring-boot-cli-2.1.4.RELEASE-bin.tar.gz)

첨단 [스냅 샷 배포판](https://repo.spring.io/snapshot/org/springframework/boot/spring-boot-cli/) 도 사용할 수 있습니다.

다운로드가 끝나면 압축을 푼 보관 파일에서 [INSTALL.txt](https://raw.github.com/spring-projects/spring-boot/v2.1.4.RELEASE/spring-boot-project/spring-boot-cli/src/main/content/INSTALL.txt) 지침을 따릅니다 . 요약 하면 파일 의 디렉토리에 `spring`스크립트 ( `spring.bat`Windows 용) `bin/`에 `.zip`있습니다. 또는 파일 `java -jar`과 함께 사용할 수 있습니다 .(스크립트를 사용하면 클래스 경로가 올바르게 설정되었는지 확인할 수 있습니다).

#### 10.2.2 SDKMAN을 사용한 설치!

SDKMAN! (The Software Development Kit Manager)는 Groovy 및 Spring Boot CLI를 포함한 다양한 바이너리 SDK의 여러 버전을 관리하는 데 사용할 수 있습니다. SDKMAN을 구입하십시오! 에서 [sdkman.io](https://sdkman.io/) 하고하면 다음과 같은 명령을 사용하여 Spring 부트를 설치합니다 :

```
$ sdk install springboot
$ spring --version
Spring Boot v2.1.4.RELEASE
```

CLI 기능을 개발하고 사용자가 작성한 버전에 쉽게 액세스하려면 다음 명령을 사용하십시오.

```
$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-2.1.4.RELEASE-bin/spring-2.1.4.RELEASE/
$ sdk 기본 springboot dev
$ spring --version
Spring CLI v2.1.4.RELEASE
```

앞의 지시 사항 `spring`은 `dev` 인스턴스 라고 하는 로컬 인스턴스를 설치 합니다. 타겟 빌드 위치를 가리키고 있으므로, 스프링 부트를 재 빌드 할 때마다 항상 `spring`최신 상태입니다.

다음 명령을 실행하여 확인할 수 있습니다.

```
$ sdk ls springboot

======================================================================================================== ================
사용 가능한 Springboot 버전
======================================================================================================== ================
> + dev
* 2.1.4. 릴리스

======================================================================================================== ================
+ - 로컬 버전
* - 설치됨
> - 현재 사용중
======================================================================================================== ================
```

#### 10.2.3 OSX Homebrew 설치

Mac을 사용하고 [Homebrew](https://brew.sh/) 를 사용하는 경우 다음 명령을 사용하여 Spring Boot CLI를 설치할 수 있습니다.

```
$ brew tap pivotal/tap
$ brew install springboot
```

Homebrew가 설치 `spring`됩니다 `/usr/local/bin`.

| ![\[노트\]](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/images/note.png) |
| ----------------------------------------------------------------------------------------------- |
| 수식이 보이지 않으면 설치가 구식 일 수 있습니다. 이 경우  `brew update`를 실행하고 다시 시도하십시오.                               |

#### 10.2.4 MacPorts 설치

Mac을 사용하고 [MacPorts](https://www.macports.org/) 를 사용하는 경우 다음 명령을 사용하여 Spring Boot CLI를 설치할 수 있습니다.

```
$ sudo port install spring-boot-cli
```

#### 10.2.5 명령 행 완료

Spring Boot CLI는 [BASH](https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29) 및 [zsh](https://en.wikipedia.org/wiki/Z_shell) 셸에 대한 명령 완성을 제공하는 스크립트를 포함 합니다. 당신은  `source`스크립트 (명명 된 `spring`임의의 쉘) 또는 개인 또는 시스템 전체 bash는 완료 초기화에 넣을 수 있다. 데비안 시스템에서는 시스템 전체의 스크립트가 들어( `/shell-completion/bash`) 가 들어있으며 새로운 쉘이 시작될 때 해당 디렉토리의 모든 스크립트가 실행됩니다. 예를 들어, SDKMAN!을 사용하여 설치 한 경우 스크립트를 수동으로 실행하려면 다음 명령을 사용하십시오.

```
$ . ~/.sdkman/candidates/springboot/current/shell-completion/bash/spring
$ spring <HIT TAB HERE>
  grab  help  jar  run  test  version
```

| ![\[노트\]](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/images/note.png) |
| ----------------------------------------------------------------------------------------------- |
| Homebrew 또는 MacPorts를 사용하여 Spring Boot CLI를 설치하면 명령 행 완료 스크립트가 쉘에 자동으로 등록됩니다.                   |

#### 10.2.6 Windows Scoop 설치

Windows에서 [Scoop](https://scoop.sh/) 을 사용한다면 다음 명령을 사용하여 Spring Boot CLI를 설치할 수 있습니다 :

```
> scoop bucket add extras
> scoop install springboot
```

&#x20;`spring`에서 `~/scoop/apps/springboot/current/bin`.로 설치됩니다.

| ![\[노트\]](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/images/note.png) |
| ----------------------------------------------------------------------------------------------- |
| 앱 매니페스트가 표시되지 않는 경우 스 installation 설치가 오래된 것일 수 있습니다. 이 경우 실행 `scoop update`하고 다시 시도하십시오.       |

#### 10.2.7 퀵 스타트 Spring CLI 예제

다음 웹 응용 프로그램을 사용하여 설치를 테스트 할 수 있습니다. 시작하려면 `app.groovy`다음과 같은 파일을 만듭니다 .

```java
@RestController
class ThisWillActuallyRun {

	@RequestMapping("/")
	String home() {
		"Hello World!"
	}

}
```

그런 다음 다음과 같이 쉘에서 실행하십시오.

```
$ spring run app.groovy
```

| ![\[노트\]](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/images/note.png) |
| ----------------------------------------------------------------------------------------------- |
| 종속성이 다운로드 될 때 응용 프로그램의 첫 번째 실행은 느립니다. 후속 작업이 훨씬 빠릅니다.                                           |

[`localhost:8080`](http://localhost:8080/)좋아하는 웹 브라우저에서 엽니 다 . 다음과 같은 결과가 나타납니다.

```
Hello World!
```

### 10.3 이전 버전의 스프링 부트에서 업그레이드

**스프링 부트의 이전 버전에서 업그레이드하는 경우** 자세한 업그레이드 지침을 제공 [하는 프로젝트 위키](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide) 의 ["마이그레이션 가이드"를](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide) 확인하십시오 . 각 릴리스의 "새롭고 주목할만한"기능 목록은 ["릴리스 정보"](https://github.com/spring-projects/spring-boot/wiki) 를 확인하십시오 .

새 기능 릴리스로 업그레이드 할 때 일부 속성의 이름이 바뀌거나 제거되었을 수 있습니다. Spring Boot는 시작할 때 응용 프로그램의 환경을 분석하고 진단을 인쇄하는 방법을 제공하지만 런타임에 속성을 일시적으로 마이그레이션합니다. 이 기능을 사용하려면 프로젝트에 다음 종속성을 추가하십시오.

```markup
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-properties-migrator</artifactId>
	<scope>runtime</scope>
</dependency>
```

| ![\[경고\]](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/images/warning.png) |
| -------------------------------------------------------------------------------------------------- |
| 환경에 늦게 추가 된 속성 (예 : 사용시 `@PropertySource`)은 고려되지 않습니다.                                             |

| ![\[노트\]](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/images/note.png) |
| ----------------------------------------------------------------------------------------------- |
| **마이그레이션이 끝나면이 모듈을 프로젝트의 종속성에서 제거하십시오.**                                                        |

기존 CLI 설치를 업그레이드하려면 적절한 패키지 관리자 명령 (예 :)을 사용 `brew upgrade`하거나 CLI를 수동으로 설치 한 경우 [표준 참조를](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-started-manual-cli-installation) 따르십시오. `PATH`환경 변수를 업데이트하여 이전 참조를 제거하십시오.
