# 깃허브 연동
## 미션
---
코드 공유 미션! 스프링부트 프로젝트를 깃허브와 연동하고, 저장소에 업로드(push) 하시오.

## 개념
---
#### ⭐ 깃과 깃허브
소스코드 버전 관리하는 도구. 이를 깃(Git)이라 한다. 깃으로 관리된 코드는 깃허브(GitHub)라는 클라우드 저장소에 업로드할 수 있다.

근데 깃은 왜 쓸까? 그냥 저장해서 관리하면 안 되나? 답변을 위해 한 가지 묻겠다. 만약 타임머신이 있다면, 안 쓸 것인가? 깃은 소스코드의 타임머신이다. 깃은 코드 전체를 역사로 기록하고, 언제든 되돌아갈 수 있게 한다. ~~심지어 멀티 유니버스를 합치고 나눌 수 있게 한다..!~~

#### ⭐ 로컬 vs 리모트
깃으로 작업하는 컴퓨터. 이를 로컬(local)이라 한다. 로컬 코드는 깃허브에 업로드(push) 될 수 있는데, 업로드 공간을 리모트(remote)라 한다. 리모트에 올라간 코드는, 또 다른 작업 공간에서 다운(pull) 받을 수 있다. 다시 말해, 코드 공유가 쉬워진다. ~~취업 시, 깃허브 코드로 당락이 결정될 수 있다..!~~

#### ⭐ 커밋과 푸시
깃의 작업 흐름은 커밋(commit)과 푸시(push)다. 커밋은 코드의 세이브 포인트를 만들고, 푸시는 이를 공유하게 한다. ~~push는 위 그림 참조! add는 생략한다~~

## 튜토리얼
---
#### ⭐ 깃 설치
- 윈도우: https://boogong.tistory.com/58
- 맥OS: https://t.ly/e8ya
#### ⭐ 깃허브
1) 접속 및 가입: https://github.com/

#### ⭐ 인텔리제이 연동
2) 액션 검색(Ctrl + Shift + A): "Github"

3) 로그인: 깃허브 계정

4) 저장소명 설정

5) 업로드 파일 선택

6) 업로드 확인
- 성공 메세지

- 실제 깃허브 저장소

7) README.md 추가
- 파일명 변경: HELP.md -> README.md

- 내용 변경
```
# 나의 첫 스프링 부트!
## 목적
- 스프링 부트로 나만의 홈페이지 만들기!
## 목차
1. 스프링 부트와 MVC 패턴
2. 게시판 만들기
- 등록(Create)
- 조회(Read)
- 수정(Update)
- 삭제(Delete)
```
8) .gitignore 변경: "READ.md 제거"
9) 프로젝트 재 업로드
- 커밋(Ctrl + K)

- 푸시(Ctrl + Shift + K)

10) 업로드 재확인

## 훈련하기
---
- 기본 자바 프로젝트를 만들고, 깃허브 저장소에 업로드 하시오.
- 포트폴리오 프로젝트를, 깃허브 저장소에 업로드 하시오.
## 면접 준비
---
- 깃이란 무엇이고, 왜 사용할까?
- 깃과 깃허브의 차이는?
- 일반 파일 저장과 깃을 통한 버전 관리는 무엇이 다른가?