SEB FE / Section1 / Unit8 / Linux/Git ๊ธฐ์ด
๐ Today I Learned
- ํฐ๋ฏธ๋๊ณผ CLI
- ํจํค์ง์ ํจํค์ง๋งค๋์
- Node.Js
- Git
ํฐ๋ฏธ๋์ CLI(Command-Line Interface)
์ด๋ค. ์
๋ ฅํ๋ ๊ธ์์ ์ถ๋ ฅ๋๋ ๊ธ์๋ก ์ปดํจํฐ์ ์ํตํ ์ ์๋ค.
ํค๋ณด๋์ ์
๋ ฅ์ ํ์ธํ๊ณ ํธ์งํ ์ ์๋ ํ ์ค์ ๊ณต๊ฐ์ด๋ค. ์
๋ ฅํ ๋ช
๋ น์ด๋ฅผ ์คํํ๋ ค๋ฉด Enter
๋ฅผ ๋๋ฌ ์คํ์ํจ๋ค.
pwd: ํ์ฌ ์์น ํ์ธํ๊ธฐ
GUI์์๋ "ํ์ฌ ํด๋๊ฐ ์์นํ ๊ฒฝ๋ก"๋ฅผ ํ์ธํ๊ธฐ ์ํด ํ์๊ธฐ์ ์๋จ์ ํด๋ฆญํด์ ํ์ธํฉ๋๋ค.
CLI์ธ ํฐ๋ฏธ๋์์๋ ๊ฐ๋จํ๊ฒ pwd๋ฅผ ํ๋กฌํํธ์ ์
๋ ฅํ๊ณ , Enter(์ํฐ ํค)
๋ฅผ ๋๋ฅด๋ฉด ํ์ฌ ๊ฒฝ๋ก๊ฐ ๋ํ๋ฉ๋๋ค.
pwd
username pwd
/Users/username
pwd
๋ print working directory
์ ์ฝ์๋ค. ์ฌ๊ธฐ์ ๋งํ๋ ๋๋ ํ ๋ฆฌ(directory)๋ ํด๋๋ค.
mkdir: ์๋ก์ด ํด๋ ์์ฑํ๊ธฐ
CLI์์ ํด๋๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ช
๋ น์ด์ธ mkdir
์ make directories
์ ์ฝ์๋ก, ํด๋๋ฅผ ๋ง๋ค๋ผ๋ ๋ช
๋ น์ ์ปดํจํฐ์ ์ ๋ฌํ๋ค. ๋ช
๋ น์ด mkdir
์ ์์ฑํ ํด๋์ ์ด๋ฆ์ ํจ๊ป ์
๋ ฅํด์ผ ํ๋ค. CLI์์๋ ๋ช
๋ น์ด์ ํด๋์ ์ด๋ฆ์ Space(์คํ์ด์ค ํค)๋ก ๊ตฌ๋ถํ๋ค.
mkdir helloWorld
๋ช
๋ น์ด ls
๋ list
์ ์ฝ์๋ก, ํน์ ํด๋์ ํฌํจ๋ ํ์ผ์ด๋ ํ์ ํด๋์ ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ค. ๋ช
๋ น์ด ls
๋ฅผ ์ด์ฉํด ๋ช
๋ น์ด mkdir
์ ํตํด ์์ฑํ ํด๋ "helloWorld"๋ฅผ ํ์ธํ ์ ์๋ค.
ls
๋ช
๋ น์ด ls
์๋ ์์ฃผ ์ฌ์ฉํ๋ ์ต์
l
๊ณผ a
๊ฐ ์๋ค. CLI์์ ํน์ ๋ช
๋ น์ด์ ์ต์
์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ -
๋ฅผ ์ด์ฉํด ์ต์
์ ์
๋ ฅํ๋ค๊ณ ์ปดํจํฐ์ ์ ๋ฌํ๋ค.
* ์์ ์ธ ๋ฒ์งธ ์์์์, ์ต์
์ ๋ปํ๋ ๋์ฌ(dash, -) ๋ค์ ์ค๋ ์ต์
์ ์์๋ ๊ธฐ๋ฅ์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค.
๋ช
๋ น์ด ls
์ ์ต์
a
๋ "all"
์ด๋ผ๋ ์๋ฏธ๋ค. ์จ์ด์๋ ํด๋๋ ํ์ผ์ ํฌํจํ ๋ชจ๋ ํญ๋ชฉ์ ํฐ๋ฏธ๋์ ์ถ๋ ฅํ๋ค๋ค.
์ต์
a
์ ํจ๊ป, ์์ฃผ ์ฌ์ฉํ๋ ์ต์
l
์ ํด๋๋ ํ์ผ์ ํฌ๋งท์ ์ ๋ถ ํํํ๋ผ๋ ์๋ฏธ
๋ค. ํ๋์ ํ์ผ ๋๋ ํ๋์ ํด๋๋ ํ ์ค์ ์ถ๋ ฅ๋๋ค.
์ถ๋ ฅ๋๋ ํด๋๋ ํ์ผ์ ํฌ๋งท ์ค์์ ๊ฐ์ฅ ๋จผ์ ๋ฑ์ฅํ๋ d
๋๋ -
๋ก ์์ํ๋ ๋ถ๋ถ์ ์ดํด๋ณด์.
# ๋ช
๋ น์ด ls์ ์ต์
l์ ํจ๊ป ์ฌ์ฉํ ๊ฒฝ์ฐ ํ์ธํ ์ ์๋ ํฌ๋งท
drwxr-xr-x
-rw-r--r--
d
๋ก ์ถ๋ ฅ๋ ๊ฒฝ์ฐ๋ ํด๋
๋ฅผ, -
๋ก ์ถ๋ ฅ๋ ๊ฒฝ์ฐ๋ ํ์ผ
์ ๋ํ๋ธ๋ค.
๋ช
๋ น์ด๋ฅผ ์ด์ฉํด ํด๋๋ฅผ GUI์ ํ์๊ธฐ๋ก ์คํํ๊ธฐ
์ฌ๋ฌ๋ถ์ด ์ปดํจํฐ๋ฅผ ์ผ๊ณ , ๋ชจ๋ํฐ์ GUI๊ฐ ๋ํ๋๋ฉด ๊ฐ์ฅ ๋จผ์ ๋ง๋๋ ํ๋ฉด์ ๋ฐํํ๋ฉด์
๋๋ค. ๋ฐํํ๋ฉด์ด ํ๋์ ํด๋์ธ ๊ฑธ ์๊ณ ์๋์? ํฐ๋ฏธ๋์์ ์๋์ ๋ช
๋ น์ด๋ฅผ ์ด์์ฒด์ ์ ๋ง๊ฒ ์
๋ ฅํ์ธ์. ์ฌ๊ธฐ์ ์ฌ์ฉํ๋ ๋ช
๋ น์ด๋ ์ด์์ฒด์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฌ๋ ๋ช
๋ น์ด์
๋๋ค. ํฐ๋ฏธ๋์ ํ์ฌ ์์น๋ฅผ GUI์ ํ์๊ธฐ(ํ์ธ๋)๋ก ์ด ์ ์์ต๋๋ค.
open .
cd: ํด๋์ ์ง์ ํ๊ธฐ
๋ช
๋ น์ด cd
๋ change directory
์ ์ฝ์๋ก, ํ๋กฌํํธ๋ก ์ํธ์์ฉํ๋ ํด๋๋ฅผ ๋ค๋ฅธ ํด๋๋ก ๋ณ๊ฒฝํ๋ค๋ ์๋ฏธ์ด๋ค. ๋ช
๋ น์ด pwd
๋ฅผ ์ฌ์ฉํด ํ์ฌ ์์น๋ฅผ ํ์ธํ๊ณ , ๋ช
๋ น์ด ls
๋ฅผ ์ด์ฉํด helloWorld ํด๋๋ฅผ ํ์ธํ ๋ค์, ๋ช
๋ น์ด cd
๋ฅผ ์ด์ฉํด helloWorld
ํด๋๋ก ์ง์
ํ๋ค.
pwd
# /Users/[์ฌ์ฉ์๋ช
]
ls
# cd๋ฅผ ์ด์ฉํด ํด๋ helloWorld๋ก ์ง์
ํฉ๋๋ค.
cd helloWorld
# pwd๋ฅผ ์ด์ฉํด ํ์ฌ ์์น๋ฅผ ํ์ธํฉ๋๋ค.
pwd
touch: ํ์ผ ์์ฑํ๊ธฐ
ํ์ผ์ ๋ง๋ค๊ธฐ ์ํด touch๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
touch hi.txt
cat: ํ์ผ์ ๋ด์ฉ์ ํฐ๋ฏธ๋์ ์ถ๋ ฅํ๊ธฐ
๋ช
๋ น์ด cat
์ ํ์ผ์ ๋ด์ฉ์ ํฐ๋ฏธ๋์ ์ถ๋ ฅํ๋ ๋ช
๋ น์ด๋ค.
cat hi.txt
ํด๋ ๋๋ ํ์ผ์ ์ด๋ฆ์ ๊ณต๋ฐฑ(๋์ด์ฐ๊ธฐ)์ด๋ ํน์๋ฌธ์๊ฐ ์์ผ๋ฉด, ๋ฐฑ์ฌ๋์()๋ฅผ ์ด์ฉํด ์ ์ฉํ๋ค.
rm: ํด๋๋ ํ์ผ ์ญ์ ํ๊ธฐ
๋ช
๋ น์ด rm
์ ๋ป์ remove(์ญ์ ํ๋ค)
์ด๋ค. ๋ช
๋ น์ด rm์ผ๋ก ์ญ์ ํ ํด๋๋ ํ์ผ์, ํด์งํต์ ๊ฑฐ์น์ง ์๊ณ ์ญ์ ๋๋ค.
๋ช
๋ น์ด rm์ ๋จ์ผ ํ์ผ์ ์ญ์ ํ ์ ์๋ค. ํด๋๋ฅผ ์ญ์ ํ๋ ค๋ฉด ์ต์
์ ์ด์ฉํด์ผ ํ๋ค. ๋ช
๋ น์ด ls
์ ์ต์
์ฒ๋ผ ๋์(-)
๋ฅผ ์ฌ์ฉํ์ฌ ์ต์
์ ์
๋ ฅํ๋ค. ์ฌ์ฉํ ์ ์๋ ์ต์
์ r
๊ณผ f
์
๋๋ค.
์ต์
r
์ "recursive"
๋ฅผ ๋ปํ๊ณ , ์ต์
f
๋ "force"๋ฅผ ๋ปํฉ๋๋ค.
r
์ ํด๋๋ฅผ ์ง์ธ ๋ ์ฌ์ฉf
๋ ์ง๋ฌธ์ ๋ฐ์ง ์๊ณ ์ง์ธ ๋ ์ฌ์ฉ์ฐ๋ฆฌ๋ ํด๋๋ ํ์ผ์ ์ญ์ ํ ๋ ๋ ์ต์ ์ ๊ฐ์ด ์ฌ์ฉํ ๊ฒ์ด๋ค.
mv: ํด๋๋ ํ์ผ์ ์ด๋ฆ์ ๋ณ๊ฒฝ, ๋๋ ํด๋๋ ํ์ผ์ ์์น ์ฎ๊ธฐ๊ธฐ
๋ช
๋ น์ด mv
๋ move
์ ์ฝ์๋ก, ํด๋๋ ํ์ผ์ ์ด๋ํ ๋ ์ฌ์ฉํ๋ค.
mkdir bye
# bye ํด๋๋ฅผ ์์ฑํ๋ค.
touch bye.txt
# bye.txt ํ์ผ์ ์์ฑํ๋ค.
mv bye.txt bye/
# ํ์ผ bye.txt์ bye ํด๋๋ก ์ด๋์ํจ๋ค.
ls
๋ช
๋ น์ด mv
๋ฅผ ์ด์ฉํ๋ฉด, ํด๋๋ ํ์ผ์ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์๋ค.
ls
# bye.txt
mv bye.txt helloWorld.txt
# ํ์ผ๋ช
์ด(bye.txt -> helloWorld.txt)๋ณํ๋๋ค
ls
# helloWorld.txt ํ์ผ์ด ์ถ๋ ฅ๋๋ค.
cp: ํด๋๋ ํ์ผ์ ๋ณต์ฌํ๊ธฐ
๋ช
๋ น์ด cp
๋ copy
์ ์ฝ์๋ก, ํด๋๋ ํ์ผ์ ๋ณต์ฌํ ๋ ์ฌ์ฉํ๋ค.
ํ์ผ์ ๋ณต์ฌํ๊ธฐ ์ํด ๋ช
๋ น์ด cp๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋, cp [์๋ณธ ํ์ผ ์ด๋ฆ]
[๋ณต์ฌํ ํ์ผ ์ด๋ฆ]
์ ํ๋กฌํํธ์ ์
๋ ฅํ๋ค๋ค.
ls
# helloWorld.txt ๊ฐ ์ถ๋ ฅ๋๋ค.
cp helloWorld.txt hiComputer.txt
ls
# helloWorld.txt hiComputer.txt ๊ฐ ์ถ๋ ฅ๋๋ค.
- CLI์์
.
์ ํ์ฌ ํด๋๋ฅผ ๋ํ๋ ๋๋ค...
์ ํ์ฌ ํด๋(.)
์ ๊ธฐ์ค์ผ๋ก, ์์.
์ด ํ๋ ๋ ๋ถ์ต๋๋ค. ์ด๋ ๊ฒ ๋ง๋ค์ด์ง..
์ ํ์ฌ ํด๋๋ณด๋ค ์์ ์๋ ํด๋๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
- ๊ฐ ๋ช ๋ น์ด์ ํฌํจ๋ ์ต์ ์ ๋ช ๋ น์ด ์ด๋ฆ๋ง ์ ๋ ฅํ๊ฑฐ๋ -h ๋๋ --help์ ๊ฐ์ ์ต์ ์ ํตํด ํ์ธํ ์ ์์ต๋๋ค.
์ ๋ ๊ฒฝ๋ก์ ๊ธฐ์ค์ ์ธ ๋ฃจํธ ํด๋(/)๋ Linux์ ๊ด๋ฆฌ์ ์์ญ์ด๋ค. ์ผ๋ฐ ์ฌ์ฉ์์ ๊ถํ์ผ๋ก๋ ์ด๋ค ํด๋๋ ํ์ผ๋ ์์ฑ, ๋ณ๊ฒฝ, ์ญ์ ํ ์ ์๋ค.
ํ์ฌ ๋ก๊ทธ์ธ๋ ์ฌ์ฉ์๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด๊ฐ ์๋ค.
whoami
# [username]
sudo: ๊ด๋ฆฌ์ ๊ถํ์ ํ๋ํ๋ ๋ช ๋ น์ด
๋ช
๋ น์ด sudo
๋ ์ฌ์ฉ์ ํ๊ฒฝ์์, ๊ด๋ฆฌ์ ๊ถํ์ ํ๋ํ๋ ๋ช
๋ น์ด๋ค.
๊ธฐ๋ณธ์ ์ธ CLI ๋ช
๋ น์ด์ ์์ ์์ฑํ๋ค. ํ์์ ์ผ๋ก๋๋ง ๊ด๋ฆฌ์ ๊ถํ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ํญ์ ๋น๋ฐ๋ฒํธ์ ํจ๊ป ์ฌ์ฉํ๋ค. ๋น๋ฐ๋ฒํธ๋ ํ๋ฉด์ ์ถ๋ ฅ๋์ง ์์ง๋ง, ํฐ๋ฏธ๋์ ์ ์์ ์ผ๋ก ์
๋ ฅ๋๊ณ ์๋ค. ๋น๋ฐ๋ฒํธ๋ฅผ ์ ํํ๊ฒ ์
๋ ฅํ๊ณ Enter(์ํฐ ํค)๋ฅผ ๋๋ ๋ค๋ฉด, ํด๋๊ฐ ์ ์์ ์ผ๋ก ์์ฑ๋๋ค.
mkdir justMkdir
sudo mkdir sudoMkdir
password:
# ํ์ดํ์ ํด๋ ์ถ๋ ฅ์ด ์๋ค. ๋น๋ฐ๋ฒํธ๊ฐ ์ถ๋ ฅ๋์ง ์๋๋ผ๋, ์
๋ ฅ์ด ์ ์์ ์ผ๋ก ์ด๋ค์ง๊ณ ์๋ค.
ls
# justMkdir sudoMkdir helloWorld.txt hi.txt
์ (.)
์ ํ์ฌ ํด๋๋ฅผ, ์ฌ๋์(/)
๋ ํด๋ ๋ด๋ถ๋ฅผ ๋ํ๋ธ๋ค. ./
๋ "ํ์ฌ ํด๋ ์๋์"๋ผ๋ ๋ป์ด๋ค.
./hi
๋ ํ์ฌ ํด๋ ์๋์ ํด๋ hi๋ฅผ ๋ํ๋ธ๋ค.
pwd
# /Users/[username]/helloWorld/hello/hi
mv helloWorld.txt ../../
# ๋ด ํด๋(hi)์ ์์(hello)๋ก ์ด๋ + ๋ด ํด๋(hello)์ ์์(helloworld)๋ก ์ด๋
ls
# hiComputer.txt
cd ../../
pwd
# /Users/[username]/helloWorld/
ls
# hello helloWorld.txt hi.txt
~/
๋ก ํ์๋ฉ๋๋ค. ๋ฌผ๊ฒฐ ๊ธฐํธ(~)
๋ ๋ฃจํธํด๋(/)
๋ก๋ถํฐ ์ฌ์ฉ์ ํด๋(username)๊น์ง์ ๊ฒฝ๋ก๋ฅผ ์ถ์ฝํ ํํ์
๋๋ค.CLI ํ๊ฒฝ์ ์๋ํฐ์ด๋ค. ํฐ๋ฏธ๋์์ ์์ ์์ฌ๋ก ๋ค๋ฃฐ ์ ์๋ ์๋ํฐ๊ฐ ํ๋์ฏค์ ์์ด์ผ ํ๋ค.
nano hello.js
# hello.js ๋ฅผ nano์์ ์ฐ๋ค.
nano
# ๊ทธ๋ฅ ์คํํ ์๋ ์๋ค.
nano ํ๋ฉด ์ค๋ช
(A) ํ์ผ ์ด๋ฆ ์๋ด
(B) ํ์ผ ํธ์ง ํ๋ฉด, ์ค์ ๋ก ์ฌ๊ธฐ์ ํ
์คํธ ํ์ผ์ ํธ์งํ ์ ์๋ค.
(C) ์ฌ์ฉ์ ํ์ํ ๊ฐ์ข
๋จ์ถํค
์ฌ์ค์ ์ฌ๊ธฐ์ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๋ํ ๋์์ ์ป์ ์ ์๋ค. ํ๋ฉด์ ํ์๋ ^X ์ ๊ฐ์ ๋ด์ฉ์ Ctrl + X ํค ์กฐํฉ์ ์๋ฏธํ๋ค.
JavaScript ๋ฐํ์(runtime)์ค ํ๋์ธ Node.js
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๊ตฌ๋๋๋ ํ๊ฒฝ, ์ฆ ์ด๋ค ํ๋ก๊ทธ๋จ์ด ๋์ํ ๋, ํ๋ก๊ทธ๋จ์ด ๋์ํ๋ ๊ณณ์ด ๋ฐ๋ก ๋ฐํ์์ด๋ค. ํฌ๋กฌ, ์ฌํ๋ฆฌ์ ๊ฐ์ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ํ์ ์ธ JavaScript ๋ฐํ์์ด๋ค. ๊ทธ๋์ JavaScript์ ์ฃผ๋ ์ฉ๋๋ ์น ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด์์ต๋๋ค.
nvm
์ ๋ค์ํ Node.js version๋ฅผ ์ค์นํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ํ๋ก๊ทธ๋จ์ด๋ค.
nvm ls
๊ทธ๋ผ ํ์ฌ nvm์ ํตํด ์ค์นํ Node.js version๋ค์ด ๋์จ๋ค. ํน์ ๋ฒ์ ์ Node.js๋ฅผ ์ค์นํ๊ณ ์ถ์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅํด์ผ ํ๋ค.
nvm install 12.18.3
์ด๋ ๊ฒ ํ๋ฉด ์ด๋ฏธ ์ค์น๋ ๋ฒ์ ์ ์ญ์ ํ์ง ์๊ณ , ์ฐ๋ฆฌ๊ฐ ์ํ๋ Node.js version์ ์ค์นํ ์ ์๋ค. ์ฌ์ฉ ์ค์ธ Node.js version์ ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝํ๊ณ ์ถ์ ๋์๋ ์๋์ ๋ช ๋ น์ด๋ง ์ ๋ ฅํ๋ฉด ๋๋ค.
nvm use ๋ฒ์ ๋๋ฒ
# ์๋ฅผ ๋ค์ด, nvm use 12.18.3, nvm use 14.15.5
nvm์ผ๋ก Node.js์ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ฉด, Node.js๋ฅผ ์ค์นํ๊ณ version์ ๋ฐ๊พธ๋ ์ผ์ด ํธ๋ฆฌ๋ค.
npm
์node package manager
๋ฅผ ๋งํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ ํ๋ก์ ํธ๋ฅผ ํ ๋ ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋์์ ์ฌ์ฉ๋ ํจํค์ง๋ฅผ npm์ ์ฌ์ฉํด์ ์ค์น๋ฅผ ํ ์ ์์ต๋๋ค. ์น์ฌ์ดํธ, ์น์ฑ, ๋ ธ๋๋ฅผ ์ฌ์ฉํ ์๋ฒ์ฌ์ด๋ ๋ฑ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ํ๋ก์ ํธ์์ npm์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๋ค ์ฌ๋์ด
npm
์๋ฐฐํฌํ ์ฝ๋
๋ฅผ ๋งํฉ๋๋ค.
์์๋ก๋angular
,react
,jQuery
,Express
,Socket.io
๊ฐ ์์ต๋๋ค. ๋ชจ๋npmjs.com
์์ ์ฐพ์ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ ๋ด์์ npm์ ์ฌ์ฉํ๋ ค๋ฉด ํ๋ก์ ํธ ๋ด์ package.json ํ์ผ์ด ์์ด์ผ ํฉ๋๋ค. package.json์ ์ฌ์ฉํ๊ธฐ๋ก ํ ํจํค์ง๋ค์ ์ด๋ฆ, ๊ทธ๋ฆฌ๊ณ ํจํค์ง์ ๋ฒ์ ์ ๋ฆฌ์คํธ๋ฅผ ์ ์ด๋ ๊ฒ์ ๋๋ค.
์ด๋ package.json์ด ์กด์ฌํ์ง ์์ผ๋ฉด
npm init
์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด package.json ํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฏธ package.json์ด ์๋ ํ๋ก์ ํธ์ด๋ฉด ์ด๋ฏธ npm์ด ์ธํ ๋์ด์๋ค๋ ๋ป์ ๋๋ค.
npm ์ฐธ์กฐ
https://yumyumcoding.tistory.com/28
Git
์ด๋ ๊ฐ๋ฐ์์ ์ฝ๋๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด์ ๊ฐ๋ฐ๋ โ๋ถ์ฐํ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
โ
์
๋๋ค.
์ด ๊ทธ๋ฆผ์ฒ๋ผ ํ๋ํ๋ ๋ ์ง๋ณ๋ก ์ด๋ค ํ์ผ์ด ์ด๋ป๊ฒ ๋ฐ๋์๋์ง ํ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ ๊ฒ ํน์ ์์ ์ ์์ฑ๋ ๋ฐฑ์ ๋ณต์ฌ๋ณธ์ ์ค๋ ์ท์ด๋ผ๊ณ ํ๋๋ฐ์. ์ด๋ ๊ฒ ํ๋ํ๋ ์ค๋ ์ท์ ๋ง๋ค์ด ์ฃผ๋ ์์ ์ commit์ด๋ผ๊ณ ํฉ๋๋ค.
commit์ด๋ผ๋ ๊ธฐ๋ฅ์ ํตํด์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์ค๋ ์ท์ด ๋ง๋ค์ด์ง๊ณ ์ด์ ์ ๊ธฐ๋ก๋ค์ ๋ํ ์ถ์ ์ด ๊ฐ๋ฅํ๋ค๋ฉด ๋ฒ์ ๊ด๋ฆฌ๋ฟ๋ง ์๋๋ผ ํ์ฌ์์ ํ์ ์ ํ ๋๋ ๊ต์ฅํ ์ ์ฉํ๊ฒ ์ฃ ?
๋ง์ฝ ์ฌ๋ฌ ์ฌ๋์ด ๊ฐ์ ํ์ผ๋ก ๋์์ ์์
ํ๊ฑฐ๋, ์ด์ ์ํ๋ก ๋ค์ ๋๋๋ ค์ผ ํ ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค๋ฉด ์ด๋๋ถํฐ ์์ ๋์ผ ํ ์ง ๊ฐ์ ์ก๊ธฐ ํ๋ค ๊ฑฐ์์.
๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋ค๋ฉด, ์์ฝ๊ฒ ์ด์ ์ํ๋ก ๋์๊ฐ ์ ์์ต๋๋ค.
๊ฐ ๋ฒ์ ๋ณ๋ก ๋ณ๊ฒฝ๋ ์ด๋ ฅ๋ค์ ์ ์ฅํ๋ ์์ ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๋ค์ ์ด์ ๋ฒ์ ์ผ๋ก ๋๋์๊ฐ์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ ๊ฒฝ์ฐ ์ด์ ์ ๋ณ๊ฒฝ ์ด๋ ฅ๋ค์ด ๊ธฐ๋ก๋์ด ์์ผ๋ ๋๋์๊ฐ๋ ๊ฒ์ด ๊ฐ๋ฅํ๊ฒ ์ฃ ?
๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ ๋๋ ์ด๋ค ์ฌํญ์ด ๋ณ๊ฒฝ๋์๋์ง ์ฝ๋ฉํธ๋ฅผ ๊ผญ ์์ฑ์ ํด์ผ ํ๋๋ฐ์.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋๊ฐ ์ด๋ค ํ์ผ์ ์ถ๊ฐ, ์์ , ์ญ์ ํ๋์ง๋ ํ์ธ์ด ๊ฐ๋ฅํ๋ค๋ ์ ๋ ์ค์ํ ์ฅ์ ์
๋๋ค.
Git์ผ๋ก ๊ด๋ฆฌ๋๋ ํ์ผ์ Github, GitLab, Bitbucket ๋ฑ์ ์ฌ๋ฌ ๊ฐ์ง ์๊ฒฉ ์ ์ฅ์๋ฅผ ์ด์ฉํด์ ๋ฐฑ์ ๊ณผ ํ์ ์ ํ ์ ์์ต๋๋ค.
Git
์ ์์ค ์ฝ๋ ๊ธฐ๋ก์ ๊ด๋ฆฌํ๊ณ ์ถ์ ํ ์ ์๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์
๋๋ค.
Github
์ Git Repository
๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋น์ค์
๋๋ค.
Git repository
๋ Remote Repository
์ Local Repository
๋ ์ข
๋ฅ์ ์ ์ฅ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
React ํ๋ก์ ํธ์ contribute์ ํ๊ธฐ ์ํด์๋ ๋จผ์ React ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ด ์๊ฒฉ ์ ์ฅ์๋ก ๊ฐ์ง๊ณ ์ค๋ ์์
์ด ํ์ํฉ๋๋ค.
์ด์ Fork ๋ฅผ ํ๊ณ ๋ ๋ฉด ๋์ Remote Repository์ React ์ฝ๋๋ฅผ ์ฎ๊ฒจ์จ ์ํ์
๋๋ค.
์ด ์ฝ๋๋ฅผ ์์ ํ๊ธฐ ์ํด์๋ ๋ด ์ปดํจํฐ๋ก ๊ฐ์ ธ์ค๋ ์์
์ด ๋ ํ์ํฉ๋๋ค.
๊ทธ ๊ณผ์ ์ Clone ์ด๋ผ๊ณ ํฉ๋๋ค. Remote Repository์ ์๋ ์ฝ๋๋ฅผ Clone ํด์ ๋ด ์ปดํจํฐ๋ก ๊ฐ์ง๊ณ ์ฌ ์ ์์ด์.
๋ด ์ปดํจํฐ์์ React ์์ค์ฝ๋ ๋ณ๊ฒฝ ์์
์ ์๋ฃํ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด ๋ณ๊ฒฝ๋ ๋ด์ฉ์ commit์ ํตํด ์ ์ฅํด ์ค ๋ค, Remote Repository์ ๋ฐ๋๋ก ์ฌ๋ ค์ฃผ๋ ์์
์ด ํ์ํฉ๋๋ค.
์ด ๊ณผ์ ์ Push ๋ผ๊ณ ํฉ๋๋ค. Local Repository์ ๊ธฐ๋กํด ๋์ commit์ Remote Repository๋ก ์
๋ก๋ํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ Push๋ฅผ ์๋ฃํ๊ณ ๋๋ฉด GitHub์๋ Pull request๋ผ๋ ๊ธฐ๋ฅ์ด ์์ด์, ๋ด๊ฐ ์ ์ํ ์ฝ๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ํด ๋ฐ์ ์ฌ๋ถ๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค.
ํ๋ฃจ๊ฐ ์์ฃผ ๋นก๋นกํ๊ฒ ๋์๊ฐ๋ค. ์ด๋ฐ์ CLI๋ ์ด๋ ์ ๋ ์ ์์ด ๋์์ผ๋ ํจํค์ง์ node.js๋ถํฐ ํท๊ฐ๋ ธ๋ค. npm์ ๊ณผ์ ๋ฅผ ์ ์ถํ๋ฉด์ ํ์คํ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๊ฒ ๋์๋ค. ํฐ๋ฏธ๋ ์ฌ์ฉ์ด ์กฐ๊ธ ๋ ์ต์ํด์ ธ์ผ ํ ๋ฏ ์ถ๋ค.