> For the complete documentation index, see [llms.txt](https://docs.sysout.co.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sysout.co.kr/etc/github/github-integrated/team-project/spring-boot-project.md).

# Spring Boot Project

## Spring Boot Project 설정

이 문서에서는 Spring Boot Project를 Github로 공유하는 방법에 대해서 살펴본다.

이 문서는 Repository 생성과 Collaborator 설정이 완료된 상태를 가정하고 진행한다.

{% content-ref url="/pages/V9ThdEZHhWSuTzfwzit4" %}
[Github 저장소 관리](/etc/github/repository.md)
{% endcontent-ref %}

{% content-ref url="/pages/yVy4MqcgQeXy6FNKiXSI" %}
[Collaborators](/etc/github/repository/collaborators.md)
{% endcontent-ref %}

## 프로젝트 생성

팀원 중 한 명이 프로젝트를 생성한다.

### 프로젝트 정보

* name - demo
* build framework - maven
* packaging - war
* java - 11
* language - java
* group - com.hacademy
* artifact - demo
* package - com.hacademy.demo

<div align="left"><figure><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_TNZwLuHV9ipYLbvRq%2Fuploads%2FobfK1p0ek9J2Yr98Y56h%2Fimage.png?alt=media&amp;token=170aed08-ebcc-4c7d-956a-787ddf2c3997" alt=""><figcaption></figcaption></figure></div>

### 의존성 정보

웹 개발에 필요한 의존성을 추가한다.

<div align="left"><figure><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_TNZwLuHV9ipYLbvRq%2Fuploads%2FsJHgyLpMqTN3GdOEU3XQ%2Fimage.png?alt=media&amp;token=a4833cd4-d3ff-46f2-83d6-ca70009682b0" alt=""><figcaption></figcaption></figure></div>

## Keep 처리

Github는 폴더를 업로드하지 않으므로 비어있는 폴더는 업로드가 이루어지지 않는다.

따라서 최초 생성된 프로젝트 폴더를 바로 업로드하면 다음 폴더들이 정상적으로 업로드 되지 않는다.

* src/main/resources/static
* src/main/resources/public
* src/main/webapp/WEB-INF/views(JSP 사용 시)

그 외 여러 폴더들이 있을 수 있으며, 이 폴더들을 온전히 업로드하기 위해서는 파일을 내부에 하나 만들어야 한다. 파일 자체의 기능은 없는 더미 파일이어야 하므로 일반적으로 <mark style="color:red;">`.keep`</mark> 이라는 이름으로 생성한다.

{% hint style="info" %}
Eclipse의 Package Explorer에서는 `.`으로 시작하는 파일이나 폴더를 표시하지 않는다&#x20;
{% endhint %}

<div align="left"><figure><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_TNZwLuHV9ipYLbvRq%2Fuploads%2FCw0ZUWYW9Wiio1uSzqkY%2Fkeep%20%ED%8C%8C%EC%9D%BC%20%EC%83%9D%EC%84%B1.gif?alt=media&amp;token=27e472b5-6bb0-429b-8deb-9bb49b78cf28" alt=""><figcaption></figcaption></figure></div>

## 저장소 연결 및 업로드

설정이 완료된 프로젝트를 저장소에 연결하여 업로드한다.

<div align="left"><figure><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_TNZwLuHV9ipYLbvRq%2Fuploads%2Fgbg2ATnvQEYMBAXuiOfn%2Fproject%20%EC%97%85%EB%A1%9C%EB%93%9C.gif?alt=media&amp;token=a674794a-6d84-41e6-9d46-1accbb165e50" alt=""><figcaption></figcaption></figure></div>

## 프로젝트 내려받기

생성한 팀원을 제외한 다른 팀원들은 원격 저장소에 업로드한 프로젝트를 내려받아야 한다. 저장소에 연결한 뒤 **import project**를 통해 프로젝트를 IDE로 불러온다.

<div align="left"><figure><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_TNZwLuHV9ipYLbvRq%2Fuploads%2FVFLBers4G2iGeT5UJYu8%2Fproject%20%EB%82%B4%EB%A0%A4%EB%B0%9B%EA%B8%B0.gif?alt=media&amp;token=81bb4e6e-988b-4e3f-b81d-b9f94ebd949b" alt=""><figcaption></figcaption></figure></div>

## 프로젝트 업데이트

프로젝트 정보가 정상적으로 표시되지 않는 경우 Maven 또는 Gradle을 이용하여 업데이트를 진행한다.

<div align="left"><figure><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_TNZwLuHV9ipYLbvRq%2Fuploads%2FrdS7iTgpaECH5swe7HDZ%2F%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%20%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8.gif?alt=media&amp;token=1b7efc55-a8a1-43ab-bb24-06bec41ec190" alt=""><figcaption></figcaption></figure></div>
