๊ด€๋ฆฌ ๋ฉ”๋‰ด

Hey Tech

๊ตฌ๊ธ€ Colab๊ณผ Github ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ณธ๋ฌธ

SW ๊ฐœ๋ฐœ/Git

๊ตฌ๊ธ€ Colab๊ณผ Github ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•

Tony Park (ํ† ๋‹ˆ) 2022. 5. 31. 09:37
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“š ๋ชฉ์ฐจ

Step 1. Github ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ค€๋น„
Step 2. Access ํ† ํฐ ์ƒ์„ฑ
Step 3. ์ฝ”๋žฉ์˜ ๋“œ๋ผ์ด๋ธŒ ๋งˆ์šดํŠธ
Step 4. Github ์ปค๋ฐ‹์šฉ ํด๋” ์ƒ์„ฑ
Step 5. ๋””๋ ‰ํ† ๋ฆฌ ๋ณ€๊ฒฝ
Step 6. Git ํด๋ก 
Step 7. Git ์ ‘๊ทผ๊ถŒํ•œ ๋ถ€์—ฌ
Step 8. Commit ํ…Œ์ŠคํŠธ

Step 1.  Github ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ค€๋น„

๊ตฌ๊ธ€ ์ฝ”๋žฉ(Google Colab)๊ณผ ์—ฐ๋™ํ•  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ(Repository)๋ฅผ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 1).

๊ทธ๋ฆผ 1. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ค€๋น„

Step 2.  Access ํ† ํฐ ์ƒ์„ฑ

Step 2-1. ๊ฐœ์ธ Setting ์ฝ˜์†” ์ ‘๊ทผ

์šฐ์ธก ์ƒ๋‹จ ํ”„๋กœํ•„ ํด๋ฆญ - Settings ์ˆœ์œผ๋กœ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 2).

๊ทธ๋ฆผ 2. ๊ฐœ์ธ Setting ์ฝ˜์†” ์ ‘๊ทผ

Step 2-2. Personal access tokens ์ ‘๊ทผ

์ขŒ์ธก์— Personal access tokens๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 3).

๊ทธ๋ฆผ 3. Personal access tokens ์ ‘๊ทผ

Step 2-3. ํ† ํฐ ์ƒ์„ฑ ์ฝ˜์†” ์ ‘๊ทผ

Generate new token ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 4).

๊ทธ๋ฆผ 4. ํ† ํฐ ์ƒ์„ฑ ์ฝ˜์†” ์ ‘๊ทผ

Step 2-4. ํ† ํฐ ์ƒ์„ฑํ•˜๊ธฐ

์•„๋ž˜ ๊ทธ๋ฆผ 5์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ ์„ค๋ช…๋ฌธ(Note) ์ž‘์„ฑ๊ณผ ํ† ํฐ ๋งŒ๋ฃŒ์ผ(Expiration)์„ ์„ ํƒํ•˜๊ณ  scope ์—ญ์‹œ ๊ทธ๋ฆผ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์„ ํƒํ•œ ํ›„, ๋งจ ์•„๋ž˜์— ๋…น์ƒ‰ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ํ† ํฐ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 5. ํ† ํฐ ์ƒ์„ฑํ•˜๊ธฐ

Step 2-5. ํ† ํฐ ์ƒ์„ฑ ํ™•์ธ

์•„๋ž˜์˜ ๊ทธ๋ฆผ 6๊ณผ ๊ฐ™์ด ํ† ํฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ† ํฐ ์ •๋ณด๋Š” ์•ˆ์ „ํ•œ ๊ณณ์— ๋ณต์‚ฌํ•˜์—ฌ ๋ณด๊ด€ํ•ด ๋‘์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ณง์ด์–ด Step 6์—์„œ ํ™œ์šฉ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 6. ํ† ํฐ ์ƒ์„ฑ ํ™•์ธ

Step 3. ์ฝ”๋žฉ์˜ ๋“œ๋ผ์ด๋ธŒ ๋งˆ์šดํŠธ

์ปค๋ฐ‹ํ•  ํด๋” ๋‚ด ์ฝ”๋žฉ ์†Œ์ŠคํŒŒ์ผ์—์„œ ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

import os
from google.colab import drive
drive.mount('/content/drive/')

์•„๋ž˜์˜ ๊ทธ๋ฆผ 8๊ณผ ๊ฐ™์€ ํŒ์—…์ฐฝ์—์„œ Google Drive ์—ฐ๊ฒฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 8. ์ฝ”๋žฉ-๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ๊ฐ„ ์—ฐ๊ฒฐ

๋“œ๋ผ์ด๋ธŒ๋ฅผ ์—ฐ๊ฒฐํ•  ๊ตฌ๊ธ€ ๊ณ„์ •์„ ์„ ํƒํ•˜๊ณ  ์ ‘๊ทผ ๊ถŒํ•œ์„ ํ—ˆ์šฉํ•ด ์ฃผ์„ธ์š”. ์•„๋ž˜์˜ ๊ทธ๋ฆผ 9์™€ ๊ฐ™์ด ๋งˆ์šดํŠธ ์ถœ๋ ฅ๋ฌธ์ด ๋‚˜์˜ค๋ฉด ์—ฐ๊ฒฐ์ด ์„ฑ๊ณตํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 9. ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ๋งˆ์šดํŠธ ์„ฑ๊ณต

Step 4. Github ์ปค๋ฐ‹์šฉ ํด๋” ์ƒ์„ฑ

Github์— ์ปค๋ฐ‹ํ•  ์šฉ๋„์˜ ํด๋”๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” Colab Notebooks ํด๋” ๋‚ด์— ์ƒ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆผ 10).

๊ทธ๋ฆผ 10. Github ์ปค๋ฐ‹์šฉ ํด๋” ์ƒ์„ฑ

Step 5. ๋””๋ ‰ํ† ๋ฆฌ ๋ณ€๊ฒฝ

Step 5-1. ์ƒ์„ฑํ•œ ํด๋” ๊ฒฝ๋กœ ๋ณต์‚ฌ

์†Œ์ŠคํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ์— ์•ž์„œ, ์•ž์„œ ์ƒ์„ฑํ•œ ํด๋”์˜ ๊ฒฝ๋กœ๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋žฉ ์ขŒ์ธก์— ํด๋” ๋ชจ์–‘ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์‹œ๊ณ , ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ์— ๋งˆ์šดํŠธ ๋œ ์œ„์น˜ ํ•˜์œ„์— ์•ž์„œ ์ƒ์„ฑํ–ˆ๋˜ ํด๋”๋ฅผ ์ฐพ์•„์ค๋‹ˆ๋‹ค. ํ•ด๋‹น ํด๋” ์ด๋ฆ„ ์šฐ์ธก์— ์„ธ๋กœ๋กœ ๋œ ... ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ํ›„, ์•„๋ž˜ ๊ทธ๋ฆผ 11๊ณผ ๊ฐ™์ด ๊ฒฝ๋กœ ๋ณต์‚ฌ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด ์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 11. ํด๋” ๊ฒฝ๋กœ ๋ณต์‚ฌ

Step 5-2. ๋””๋ ‰ํ† ๋ฆฌ ๋ณ€๊ฒฝ ์‹คํ–‰

ํ˜„์žฌ ์†Œ์ŠคํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ Change Directory(cd) ๋ช…๋ น์–ด๋กœ ๋ณ€๊ฒฝํ•ด ๋ด…๋‹ˆ๋‹ค.

cd ๋ณต์‚ฌํ•œ ๊ฒฝ๋กœ ๋ถ™์—ฌ๋„ฃ๊ธฐ

์•„๋ž˜์™€ ๊ฐ™์ด ๋””๋ ‰ํ† ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค(๊ทธ๋ฆผ 12).

๊ทธ๋ฆผ 12. ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™ ์„ฑ๊ณต

Step 6. Git ํด๋ก 

์ฝ”๋žฉ๊ณผ ์—ฐ๋™ํ•  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ํฌ๋งท์œผ๋กœ ์†Œ์ŠคํŒŒ์ผ์— ์ž…๋ ฅํ•˜๊ณ  ์‹คํ–‰ํ•ด ์ฃผ์„ธ์š”. access token์€ Step 2์—์„œ ์ƒ์„ฑํ•œ ํ† ํฐ์ž…๋‹ˆ๋‹ค.

 

!git clone https://[Github ์•„์ด๋””]:[access token]@github.com/[Github ์•„์ด๋””]/[๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„].git

์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ์ด ๋‚˜์™”๋‹ค๋ฉด ํด๋ก ์— ์„ฑ๊ณตํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค(๊ทธ๋ฆผ 13).

๊ทธ๋ฆผ 13. Git ํด๋ก  ์„ฑ๊ณต

์‹ค์ œ๋กœ ์•ž์„œ ์ƒ์„ฑํ•œ ํด๋”๋กœ ์ด๋™ํ•ด ๋ณด์‹œ๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ clone ๋œ ๊ฒƒ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆผ 14).

๊ทธ๋ฆผ 14. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ clone ๋œ ๋ชจ์Šต

Step 7. Git ์ ‘๊ทผ๊ถŒํ•œ ๋ถ€์—ฌ

์ƒ์„ฑํ•œ ํด๋”๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 15).

cd ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„

๊ทธ๋ฆผ 15. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋‚ด๋กœ ์ ‘๊ทผ

์ด์ œ ์•„๋ž˜ ์ฝ”๋“œ์—์„œ Github ์ด๋ฉ”์ผ ์ฃผ์†Œ์™€ ์•„์ด๋””๋ฅผ ๊ฐ๊ฐ ์ž…๋ ฅํ•˜๊ณ  ์†Œ์ŠคํŒŒ์ผ์—์„œ ์‹คํ–‰ํ•ด ์ฃผ์„ธ์š”(๊ทธ๋ฆผ 16).

!git config --global user.email 'Github ์ด๋ฉ”์ผ'
!git config --global user.name 'Github ์•„์ด๋””'

๊ทธ๋ฆผ 16. Git ์ ‘๊ทผ๊ถŒํ•œ ๊ฐ–๊ธฐ

Step 8. Commit ํ…Œ์ŠคํŠธ

์ด์ œ Commit ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ด…๋‹ˆ๋‹ค.

Step 8-1. ์ž„์˜์˜ ํŒŒ์ผ ์ƒ์„ฑ

์•„๋ž˜ ๊ทธ๋ฆผ 17๊ณผ ๊ฐ™์ด ์ž„์˜์˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด ๋ด…๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 17. ํ…Œ์ŠคํŠธ์šฉ ํŒŒ์ผ ์ƒ์„ฑ

Step 8-2. status ํ™•์ธ

status๋ฅผ ์ฐ์–ด๋ณด๋ฉด ํ…Œ์ŠคํŠธ ํŒŒ์ผ์ด ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ์— ์ƒ์„ฑ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆผ 18).

๊ทธ๋ฆผ 18. ํŒŒ์ผ ์ƒ์„ฑ ํ™•์ธ

Step 8-3. Commit

ํ•ด๋‹น ํŒŒ์ผ์„ ์ปค๋ฐ‹ํ•ด ๋ด…๋‹ˆ๋‹ค.

!git add test.ipynb
!git commit -m "Connect Google Colab and Drive"

ํ„ฐ๋ฏธ๋„์—์„œ ์ปค๋ฐ‹ํ•˜๋“ฏ์ด ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ถœ๋ ฅ๋ฌธ ํฌ๋งท ์—ญ์‹œ ๋™์ผํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 19).

๊ทธ๋ฆผ 19. ์ปค๋ฐ‹ํ•˜๊ธฐ

Step 8-4. Push

์ปค๋ฐ‹ํ•œ ํŒŒ์ผ์„ ํ‘ธ์‹œํ•ด ๋ด…๋‹ˆ๋‹ค(๊ทธ๋ฆผ 20).

!git push -u origin main

๊ทธ๋ฆผ 20. ํ‘ธ์‰ฌํ•˜๊ธฐ

Step 8-5. ๊ฒฐ๊ณผ ํ™•์ธ

ํ‘ธ์‰ฌ ๊ฒฐ๊ณผ๋ฅผ Github์—์„œ ํ™•์ธํ•ด ๋ณด๋ฉด ์ •์ƒ์ ์œผ๋กœ ํ‘ธ์‹œ๋œ ๊ฒƒ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆผ 21).

๊ทธ๋ฆผ 21. ์ •์ƒ ํ‘ธ์‰ฌ๋œ ๊ฒƒ ํ™•์ธ


์˜ค๋Š˜์€ ๊ตฌ๊ธ€ ์ฝ”๋žฉ&๋“œ๋ผ์ด๋ธŒ์™€ Github๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค.

ํฌ์ŠคํŒ… ๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ๋ง‰ํžˆ์‹œ๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.

๊ทธ๋Ÿผ ์˜ค๋Š˜๋„ ์ฆ๊ฒ๊ณ  ํ–‰๋ณตํ•œ ํ•˜๋ฃจ ๋ณด๋‚ด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค :)

๊ณ ๋ง™์Šต๋‹ˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•