# 깃허브 연동
## 미션
---
코드 공유 미션! 스프링부트 프로젝트를 깃허브와 연동하고, 저장소에 업로드(push) 하시오.
![클라우드스터딩-스프링부트-인텔리제이-깃허브-업로드-확인](https://i.imgur.com/Ij0nFYI.png)
## 개념
---
#### ⭐ 깃과 깃허브
소스코드 버전 관리하는 도구. 이를 깃(Git)이라 한다. 깃으로 관리된 코드는 깃허브(GitHub)라는 클라우드 저장소에 업로드할 수 있다.
![클라우드스터딩-스프링부트-깃과-깃허브](https://i.imgur.com/GHgMNOP.png)
근데 깃은 왜 쓸까? 그냥 저장해서 관리하면 안 되나? 답변을 위해 한 가지 묻겠다. 만약 타임머신이 있다면, 안 쓸 것인가? 깃은 소스코드의 타임머신이다. 깃은 코드 전체를 역사로 기록하고, 언제든 되돌아갈 수 있게 한다. ~~심지어 멀티 유니버스를 합치고 나눌 수 있게 한다..!~~
![클라우드스터딩-스프링부트-깃-git-장점-왜씀](https://i.imgur.com/i5hwDyx.png)
#### ⭐ 로컬 vs 리모트
깃으로 작업하는 컴퓨터. 이를 로컬(local)이라 한다. 로컬 코드는 깃허브에 업로드(push) 될 수 있는데, 업로드 공간을 리모트(remote)라 한다. 리모트에 올라간 코드는, 또 다른 작업 공간에서 다운(pull) 받을 수 있다. 다시 말해, 코드 공유가 쉬워진다. ~~취업 시, 깃허브 코드로 당락이 결정될 수 있다..!~~
![클라우드스터딩-스프링부트-깃-로컬과-리모트-local-vs-remote](https://i.imgur.com/bsljvXv.png)
#### ⭐ 커밋과 푸시
깃의 작업 흐름은 커밋(commit)과 푸시(push)다. 커밋은 코드의 세이브 포인트를 만들고, 푸시는 이를 공유하게 한다. ~~push는 위 그림 참조! add는 생략한다~~
![클라우드스터딩-스프링부트-깃-커밋-commit](https://i.imgur.com/pp5vXeh.png)
## 튜토리얼
---
#### ⭐ 깃 설치
- 윈도우: https://boogong.tistory.com/58
- 맥OS: https://t.ly/e8ya
#### ⭐ 깃허브
1) 접속 및 가입: https://github.com/
![클라우드스터딩-스프링부트-깃허브-가입](https://i.imgur.com/bId2wWm.png)
#### ⭐ 인텔리제이 연동
2) 액션 검색(Ctrl + Shift + A): "Github"
![클라우드스터딩-스프링부트-인텔리제이-깃허브-연동](https://i.imgur.com/4JdlEbG.png)
3) 로그인: 깃허브 계정
![클라우드스터딩-스프링부트-인텔리제이-깃허브-로그인](https://i.imgur.com/KE3I1Ur.png)
4) 저장소명 설정
![클라우드스터딩-스프링부트-인텔리제이-깃허브-저장소-이름-설정](https://i.imgur.com/h00RHsK.png)
5) 업로드 파일 선택
![클라우드스터딩-스프링부트-인텔리제이-깃허브-업로드-파일-선택](https://i.imgur.com/xWvXQno.png)
6) 업로드 확인
- 성공 메세지
![클라우드스터딩-스프링부트-인텔리제이-깃허브-업로드-성공](https://i.imgur.com/q8nVV4K.png)
- 실제 깃허브 저장소
![클라우드스터딩-스프링부트-인텔리제이-깃허브-업로드-확인](https://i.imgur.com/Ij0nFYI.png)
7) README.md 추가
- 파일명 변경: HELP.md -> README.md
![클라우드스터딩-스프링부트-README-추가](https://i.imgur.com/lGebLlp.png)
- 내용 변경
```
# 나의 첫 스프링 부트!
## 목적
- 스프링 부트로 나만의 홈페이지 만들기!
## 목차
1. 스프링 부트와 MVC 패턴
2. 게시판 만들기
- 등록(Create)
- 조회(Read)
- 수정(Update)
- 삭제(Delete)
```
8) .gitignore 변경: "READ.md 제거"
9) 프로젝트 재 업로드
- 커밋(Ctrl + K)
![클라우드스터딩-스프링부트-인텔리제이-깃허브-커밋](https://i.imgur.com/3ezGFb8.png)
- 푸시(Ctrl + Shift + K)
![클라우드스터딩-스프링부트-인텔리제이-깃허브-푸시](https://i.imgur.com/kR7QuI4.png)
10) 업로드 재확인
![클라우드스터딩-스프링부트-인텔리제이-깃허브-업로드-재확인](https://i.imgur.com/9cvwINa.png)
## 훈련하기
---
- 기본 자바 프로젝트를 만들고, 깃허브 저장소에 업로드 하시오.
- 포트폴리오 프로젝트를, 깃허브 저장소에 업로드 하시오.
## 면접 준비
---
- 깃이란 무엇이고, 왜 사용할까?
- 깃과 깃허브의 차이는?
- 일반 파일 저장과 깃을 통한 버전 관리는 무엇이 다른가?