Git์ ์์ค์ฝ๋ ๋ฒ์ ๊ด๋ฆฌ ๋๊ตฌ๋ค.
ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ฉด, "์ด์ ์ฝ๋๋ก ๋๋๋ฆฌ๊ณ ์ถ๋ค", "์ฌ๋ฌ ๋ช
์ด ๋์์ ์์
ํ๊ณ ์ถ๋ค" ๊ฐ์ ์ํฉ์ด ์๊ธด๋ค.
์ด๋ด ๋ ํ์ํ ๊ฒ์ด ๋ฐ๋ก ๋ฒ์ ๊ด๋ฆฌ์ด๊ณ , ๊ทธ๊ฑธ ๋์์ฃผ๋ ๊ฒ Git์ด๋ค.
Git์ ํต์ฌ ๊ฐ๋ :
๋ฒ์ ๊ธฐ๋ก : ํ์ผ์ด ์ธ์ , ์ด๋ป๊ฒ ๋ฐ๋์๋์ง ์ ์ฅ
๋๋๋ฆฌ๊ธฐ : ํน์ ์์ ์ ์ฝ๋๋ก ๋์๊ฐ ์ ์์
ํ์ : ์ฌ๋ฌ ์ฌ๋์ด ๋์์ ์์ ๊ฐ๋ฅ
GitHub์ Git ์ ์ฅ์๋ฅผ ์ธํฐ๋ท(ํด๋ผ์ฐ๋)์ ์ฌ๋ ค๋์ ์ ์๋ ์๋น์ค๋ค.
Git์ ๋ด ์ปดํจํฐ ์์์๋ง ๋์ํ๋๋ฐ, GitHub์ ์ฌ๋ฆฌ๋ฉด ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ๊ณต์ ํ๊ณ ํ์
ํ ์ ์๋ค.
๋น์ :
Git : ์ง์์ ์๋ ๊ฐ์ธ ์ผ๊ธฐ์ฅ (๋ด ์ปดํจํฐ ์์ ๊ธฐ๋ก)
GitHub : ์ธํฐ๋ท์ ์๋ ์จ๋ผ์ธ ์ผ๊ธฐ์ฅ (๋ค ๊ฐ์ด ๋ณผ ์ ์์)
ํ๋ก๊ทธ๋๋ฐํ ๋ Git์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ๋จ๊ณ๋ ์ด๋ ๊ฒ ๋จ์ํ๋ค:
์์ (Working Directory)
์ฝ๋๋ฅผ ์์ฑํ๊ฑฐ๋ ์์ ํ๋ค.
์ถ๊ฐ(Stage)
๋ณ๊ฒฝ๋ ํ์ผ์ Git์ "์ ์ฅ ์ค๋น" ์ํจ๋ค. (git add
)
์ ์ฅ(Commit)
์ค๋น๋ ๋ณ๊ฒฝ ์ฌํญ์ ํ๋์ ๋ฒ์ ์ผ๋ก ๊ธฐ๋กํ๋ค. (git commit
)
์ ๋ก๋(Push)
๋ด ์ปดํจํฐ์์ ๋ง๋ ๋ฒ์ ์ GitHub(์๊ฒฉ ์ ์ฅ์)์ ์ฌ๋ฆฐ๋ค. (git push
)
๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ฉด:
ํผ์ ์ฌ์ฉํ ๋ : ๋ฒ์ ๊ด๋ฆฌ + ๋ฐฑ์ ์ฉ๋
์ฌ๋ฌ ๋ช
์ด ์ฌ์ฉํ ๋ : ๊ฐ์ ์์
ํ ๊ฒ์ ํฉ์น๊ณ (merge
), ๋์์ ์์
์ถฉ๋์ด ์๊ธฐ๋ฉด ์กฐ์จ(conflict ํด๊ฒฐ
)ํ๋ค.
์์ ํ๋ฆ:
ํ์์ด ๊ฐ์ ์ฝ๋๋ฅผ ์์ ํ๊ณ commit ํ๋ค.
GitHub์ push ํ๋ค.
๋ค๋ฅธ ํ์์ git pull
ํด์ ์ต์ ์ฝ๋๋ฅผ ๊ฐ์ ธ์จ๋ค.
Repository(์ ์ฅ์) : ํ๋ก์ ํธ๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ
Commit : ํน์ ์์ ์ ์ ์ฅ ๊ธฐ๋ก
Branch : ๊ฐ์ง๋ฅผ ์ณ์ ๋ ๋ฆฝ์ ์ผ๋ก ์์ ํ ์ ์๋ ๊ณต๊ฐ
Merge : ๋ธ๋์น์์ ์์ ํ ๋ด์ฉ์ ํฉ์น๋ ๊ฒ
Clone : ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ด ์ปดํจํฐ๋ก ๋ณต์ฌํด ์ค๋ ๊ฒ
Git = ๋ฒ์ ๊ด๋ฆฌ ๋๊ตฌ (๋ด ์ปดํจํฐ์์ ๊ด๋ฆฌ)
GitHub = Git ์ ์ฅ์๋ฅผ ์ธํฐ๋ท์ ๊ณต์ ํ๋ ์๋น์ค
Git์ ์ฐ๋ฉด "์ฝ๋๋ฅผ ๋๋๋ฆด ์ ์๊ณ ", "์ฌ๋ฌ ๋ช ์ด ๋์์ ํ์ ํ ์ ์๋ค."
https://github.com/apps/desktop
CRUD๋ ์ํํธ์จ์ด์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ค ๊ฐ์ง ๊ธฐ๋ฅ์ด๋ค.
C (Create) : ์ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ ๋ค.
R (Read) : ๋ฐ์ดํฐ๋ฅผ ์ฝ๋๋ค. (์ ์ฒด ์กฐํ / ๊ฐ๋ณ ์กฐํ)
U (Update) : ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ค.
D (Delete) : ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค.
CRUD๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์น ์ ํ๋ฆฌ์ผ์ด์ , API ๋ฑ ๋ชจ๋ ์์คํ ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ๋ ํต์ฌ ๊ฐ๋ ์ด๋ค.
RESTful API์์๋ CRUD๋ฅผ HTTP ๋ฉ์๋์ ๋งค์นญํ์ฌ ํํํ๋ค.
๊ธฐ๋ฅ | REST ๋ฉ์๋ | ์์ URI | ์ค๋ช |
---|---|---|---|
Create | POST | /students | ์๋ก์ด ํ์ ์ถ๊ฐ |
Read (์ ์ฒด) | GET | /students | ๋ชจ๋ ํ์ ๋ชฉ๋ก ์กฐํ |
Read (๊ฐ๋ณ) | GET | /students/1 | id=1์ธ ํ์ ์กฐํ |
Update (์ ์ฒด ์์ ) | PUT | /students/1 | id=1 ํ์ ์ ๋ณด ์ ์ฒด ์์ |
Update (๋ถ๋ถ ์์ ) | PATCH | /students/1 | id=1 ํ์ ์ ๋ณด ์ผ๋ถ ์์ |
Delete | DELETE | /students/1 | id=1 ํ์ ์ญ์ |
C (Create)
POST /students
์๋ก์ด ํ์ "Tom" ๋ฑ๋ก
R (Read - ์ ์ฒด)
GET /students
ํ์ ๋ชฉ๋ก: [{"id":1, "name":"Tom"}, {"id":2, "name":"Anna"}]
R (Read - ๊ฐ๋ณ)
GET /students/1
๊ฒฐ๊ณผ: {"id":1, "name":"Tom"}
U (Update)
PUT /students/1
"Tom" โ "Tommy"๋ก ์ด๋ฆ ์์
D (Delete)
DELETE /students/1
id=1 ํ์ ์ญ์ ์๋ฃ
CRUD๋ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ ๋ผ๋์ด๋ค.
๊ฒ์ํ, ์ผํ๋ชฐ, ์ํ ์ฑ, SNS ๋ฑ ๋ชจ๋ ์๋น์ค๊ฐ CRUD๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ค.
CRUD๋ฅผ ์ ํํ ์ดํดํ๋ฉด ๋ฐ์ดํฐ ํ๋ฆ๊ณผ RESTful ์ค๊ณ ์์น์ ์์ฐ์ค๋ฝ๊ฒ ์ตํ ์ ์๋ค.
CRUD = Create, Read, Update, Delete
Read๋ ์ ์ฒด ์กฐํ์ ๊ฐ๋ณ ์กฐํ ๋ ๊ฐ์ง๋ก ๋๋๋ค.
RESTful API์์ CRUD๋ POSTโGETโPUT/PATCHโDELETE๋ก ๋งคํ๋๋ค.
๋ชจ๋ ์ํํธ์จ์ด์ ๊ทผ๋ณธ์ CRUD์์ ์ถ๋ฐํ๋ค.