[TIL] Day10
[SEB FE] Day10
pwd
(print working directory): ํ์ฌ ์์น ํ์ธmkdir
(make directories): ์๋ก์ด ํด๋ ์์ฑ (์์ฑํ ํด๋์ ์ด๋ฆ์ ํจ๊ป ์
๋ ฅ)mkdir helloWorld
\
)๋ฅผ ์ด์ฉํด ์ ์ฉls
(list): ํน์ ํด๋์ ํฌํจ๋ ํ์ผ์ด๋ ํด๋ ํ์ธls -l
: ํด๋๋ ํ์ผ์ ํฌ๋งท์ ์ ๋ถ ํํdrwxr-x-x
: ์ฒซ๋ฒ์งธ ๊ธ์๊ฐ d
์ธ ๊ฒฝ์ฐ โํด๋โ (cd
๋ช
๋ น์ด๋ฅผ ํตํด ์ง์
๊ฐ๋ฅ)-rw-rโrโ
: ์ฒซ๋ฒ์งธ ๊ธ์๊ฐ -
์ธ ๊ฒฝ์ฐ โํ์ผโ (์ง์
๋ถ๊ฐ๋ฅ)ls -a
: all / ์จ์ด์๋ ํด๋๋ ํ์ผ์ ํฌํจํ ๋ชจ๋ ํญ๋ชฉ ์ถ๋ ฅls -al
/ ls -la
-
) ๋ค์ ์ค๋ ์ต์
์ ์์๋ ๊ธฐ๋ฅ์ ์ํฅ์ ๋ฏธ์น์ง ์์open .
: GUI ํ์๊ธฐ๋ก ํด๋ ์ด๊ธฐ
cd
(change directory): ํ๋กฌํํธ๋ก ์ํธ์์ฉํ๋ ํด๋๋ฅผ ๋ค๋ฅธ ํด๋๋ก ๋ณ๊ฒฝ
cd ~/helloWorld/hello
โ ํ์ฌ ์งํ ์ค์ธ ํด๋๋ก ํ ๋ฒ์ ์ด๋touch
: ํ์ผ ์์ฑ
touch hi.txt
cat
: ํ์ผ ๋ด์ฉ์ ํฐ๋ฏธ๋์ ์ถ๋ ฅ
rm
(remove): ํด๋๋ ํ์ผ ์ญ์ (๋จ์ผ ํ์ผ ์ญ์ ๊ฐ๋ฅ) (ํด์งํต์ ๊ฑฐ์น์ง ์๊ณ , ์ฆ์ ์ญ์ )
rm -rf
: ํด๋ ์ญ์ ๊ฐ๋ฅr
: recursive, ํด๋๋ฅผ ์ง์ธ ๋ ์ฌ์ฉf
: force, ์ง๋ฌธ์ ๋ฐ์ง ์๊ณ ์ง์ธ ๋ ์ฌ์ฉmv
: ํด๋๋ ํ์ผ ์ด๋ฆ ๋ณ๊ฒฝ / ํด๋๋ ํ์ผ ์์น ์ฎ๊ธฐ๊ธฐ
mv [ํด๋/ํ์ผ ์ด๋ฆ] [๋ณ๊ฒฝํ๊ณ ์ ํ๋ new ํ์ผ ์ด๋ฆ]
mv [ํด๋/ํ์ผ ์ด๋ฆ] [๋์ฐฉ ํด๋ ์ด๋ฆ]
cp
(copy): ํด๋/ํ์ผ ๋ณต์ฌ
cp [์๋ณธ ํ์ผ ์ด๋ฆ] [๋ณต์ฌํ ํ์ผ ์ด๋ฆ]
cp -rf
: ํด๋ ๋ณต์ฌcp -rf myFolder ../
: ์์ ํด๋๋ก ๋ณต์ฌ.
: ํ์ฌ ํด๋ / ..
: ํ์ฌ ํด๋(.
)๋ณด๋ค ์์ ์๋ ํด๋ย /
)์ผ๋ก๋ถํฐ์ ์ ๋์ ์ธ ์์น๋ก์จ, ํน์ ํด๋๋ ํ์ผ์ด ๋ฃจํธ ํด๋๋ก๋ถํฐ ์ด๋ค ํด๋๋ก ์ง์
ํ๋ ๊ฒฝ์ฐ ๋ง๋ ์ ์๋์ง ๋ํ๋ /Users/bean/helloWorld/hello
cd ./hello
: ./
๋ โํ์ฌ ํด๋ ์๋์'๋ผ๋ ๋ป. ์ฆ, ํ์ํด๋๋ก ์ด๋cd ~/helloWorld/hello
cd hello
์ ๋ ๊ฒฝ๋ก์ ๊ธฐ์ค์ ์ธ ๋ฃจํธ ํด๋(/
)๋ Linux์ ๊ด๋ฆฌ์ ์์ญ โ ์ฌ์ฉ์ ๊ถํ์ผ๋ก๋ ํ ์ ์๋ ์ผ์ด ์์
whoami
: ํ์ฌ ๋ก๊ทธ์ธ๋ ์ฌ์ฉ์ ํ์ธ
์ฌ์ฉ์ ๊ถํ์ username ํด๋ ๋ด์์๋ง ์์ ๋กญ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ
๊ด๋ฆฌ์ ๊ถํ์ ์ด์ฉํ๋ฉด, ๋ค๋ฅธ ์ฌ์ฉ์ ํด๋์๋ ์ํฅ์ ๋ผ์น ์ ์์. ์์คํ ์์ฒด์๋ ์ ๊ทผ ๊ฐ๋ฅ
์ฌ์ฉ์ ํด๋์ ๊ฒฝ๋ก(Path): ~/
๋ก ํ์ (~๋ ๋ฃจํธํด๋(/
)๋ก๋ถํฐ ์ฌ์ฉ์ ํด๋(username)๊น์ง์ ๊ฒฝ๋ก ์ถ์ฝ ํํ
sudo
๋ช
๋ น์ด ์ฌ์ฉsudo
๋ฅผ ์ด์ฉํด ์์ฑํ ํด๋์ ์์ ์๋ root
โ ์ฌ์ฉ์ ๊ถํ์ด ์๋, ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์์ฑls -l
๋ช
๋ น์ด๋ฅผ ํตํด ํด๋/ํ์ผ ๊ถํ ํ์ธ ๊ฐ๋ฅย โย ๊ฒฝ๋ก /etc/
๋ ๋ฃจํธํด๋ ์๋์ ํด๋๋ก ์ฌ์ฉ์ ๊ถํ์ ๋ฒ์ด๋ ์์น์์ ์๋ก์ด ํ์ผ์ ์์ฑํ๋ฏ๋ก, ๋ฐ๋์ ๊ด๋ฆฌ์ ๊ถํ ํ์
: CLI ํ๊ฒฝ์์ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ์๋ํฐ
ํ์ผ ์ด๊ธฐ
nano hello.js. # hello.js๋ฅผ nano editor์์ ์ด๊ธฐ
nano # nano editor ๊ทธ๋ฅ ์คํ
ํ์ผ ํธ์ง ํ ์ข ๋ฃ
^X
= control
+ X
ํ์ผ ์ ์ฅ
^0 WriteOut
: ํจํค์ง์ ์ค์น, ๋ณ๊ฒฝ, ์ญ์ ๋ฑ ๊ด๋ฆฌ๋ฅผ ํธ๋ฆฌํ๊ฒ ํด์ฃผ๋ ๋๊ตฌ
brew update
: brew ์์ฒด ์
๋ฐ์ดํธbrew outdated
: ์
๋ฐ์ดํธ ํ์ํ ํ์ผ ์กฐํbrew upgrade [ํ๋ก๊ทธ๋จ ์ด๋ฆ]
: ํ๋ก๊ทธ๋จ ์
๊ทธ๋ ์ด๋(์
๋ฐ์ดํธ)brew search [๊ฒ์์ด]
: ํ๋ก๊ทธ๋จ ๊ฒ์brew info [ํ๋ก๊ทธ๋จ ์ด๋ฆ]
: ํ๋ก๊ทธ๋จ ์ ๋ณด ํ์ธbrew install [ํ๋ก๊ทธ๋จ ์ด๋ฆ]
: ํ๋ก๊ทธ๋จ ์ค์นbrew uninstall [ํ๋ก๊ทธ๋จ ์ด๋ฆ]
: ํ๋ก๊ทธ๋จ ์ญ์ brew list
: ์ค์น๋ ํ๋ก๊ทธ๋จ ๋ณด๊ธฐwget
: URL์ ํตํด ํ์ผ์ ๋ค์ด๋ก๋ํ๋ ํ๋ก๊ทธ๋จbrew install wget # wget ์ค์น
wget -O goodjob.txt <https://bit.ly/37sJqCo> # goodjob.txt ํ์ผ ์์ฑ
: JavaScript runtime(ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์คํ๋๋ ํ๊ฒฝ์ผ๋ก ์ฆ, ์ด๋ค ํ๋ก๊ทธ๋จ์ด ๋์ํ ๋, ํ๋ก๊ทธ๋จ์ด ๋์ํ๋ ๊ณณ) ์ค ํ๋
โ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ๊ณณ์์๋ JS ์คํ ๊ฐ๋ฅ โ ์๋ฒ ๊ตฌ์ถ ๋ฑ ํ์ฉํญ ํฌ๊ฒ ํ์ฅ
โย JavaScript ๋ฐํ์ ์ข ๋ฅ: Chrome, Safari, FireFox ๋ฑ์ ์น ๋ธ๋ผ์ฐ์
# nvm์ผ๋ก lts ๋ฒ์ ์ Node.js ์ค์น
nvm install --lts
# Node.js ๋ฒ์ ํ์ธ
node -v
# JS ํ์ผ์ Node.js๋ก ์คํ
node <file_name>
โย LTS(Long-Term Support): Node.js์์ ์ง์ํ๋ ๊ธฐ๊ฐ์ด ๊ธด ๊ฒ์ ์๋ฏธ
nvm
(Node Version Manager): node.js์ ๋ค์ํ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํจ# Wget ๋ช
๋ น์ด๋ก nvm ์ค์น
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
# nvm ๋ฒ์ ํ์ธ
nvm --version
# nvm์ ํตํด ์ค์นํ Node.js version ํ์ธ
nvm ls
# ํน์ ๋ฒ์ ์ Node.js ์ค์น
nvm install <version number(12.18.3)>
# ์ฌ์ฉ ์ค์ธ Node.js version์ ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝ
nvm use <version number>
: Node Package Manager
โย Linux์ Package Manager: apt
/ macOS์ Package Manager: brew
: node.js
์์ ๋จ์ด ๋ง๋ค์ด๋ฃ์ ๋ชจ๋ โ ์ด์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์๋ ๊ณณ์ด package.json
# npm script
npm run <script name>
npm run start
: npm ๋ชจ๋์ ํ์ฉํ๊ธฐ ์ํด ํด๋น ๋ชจ๋์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ ํ์ผ
โ ํ๋ก์ ํธ ์ ๋ฐ์ ๊ดํ ์ ๋ณด๊ฐ ๋ค์ด์์
node_modules
ํด๋์ ๋ฐ๋ก ์ ์ฅ๋จpackage.json
์๋ ์ด๋ค ๋ชจ๋์ธ์ง๋ง ์ ํ ์์package.json
์ด ์๋ node_modules
ํด๋์ ์ ์ฅ๐๐ป npm install
โ package.json
์์ ํ์ํ๋ค๊ณ ํ๋ ๋ชจ๋ ๋ค์ด๋ก๋ โ node_modules
๋๋ ํ ๋ฆฌ ์์ฑ
dependency
(์์กด์ฑ ๋ชจ๋): ๊ฐ๋ฐ์ด๋ ์คํ์ ํด๋น ๋ชจ๋์ โ์์กดโ (ํ๋ก๊ทธ๋จ ์คํ๊ณผ ๊ด๊ณ์๋ ์ค๋ก์ง ๊ฐ๋ฐ์ ์ํด ํ์ํ โ์์กด์ฑ ๋ชจ๋')dependencies
: ์ง์ ์คํ๊ณผ ๊ด๋ จ ์๋ dependencydevDependencies
: ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ๋ ํ๊ฒฝ์์ ํ์ํ ๋ชจ๋๋ค์ด ๋ฌด์์ธ์ง ์ ํ ์์# --save-dev ์ต์
๊ณผ ํจ๊ป ์ค์นํ๋ฉด, ์๋์ผ๋ก devDependencies์ ์ถ๊ฐ๋จ
npm install mocah --save-dev
node.js | npm | nvm |
---|---|---|
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐํ์ ํ๊ฒฝ | node.js ํจํค์ง ๋งค๋์ | node.js ๋ฒ์ ๋งค๋์ |
: ๊ฐ๋ฐ์์ ์ฝ๋๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ถ์ฐํ ๋ฒ์ ๊ด๋ฆฌ ์์คํ (Version Control System)
๐๐ปย ์์ค ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋ ์ด๋ ฅ์ ์ฝ๊ฒ ํ์ธ ๊ฐ๋ฅ / ํน์ ์์ ์ ์ ์ฅ๋ ๋ฒ์ ๊ณผ ๋น๊ตํ๊ฑฐ๋ ํน์ ์์ ์ผ๋ก ๋๋์๊ฐ ์ ์์
โ
Git: ์์ค ์ฝ๋ ๊ธฐ๋ก์ ๊ด๋ฆฌํ๊ณ ์ถ์ ํ ์ ์๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
โ
Github: Git Repository(์ ์ฅ์)๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋น์ค
โ ์คํ ์์ค(์์ค ์ฝ๋๊ฐ ๊ณต๊ฐ๋ SW)๋ ๋๊ตฌ๋ ์์ ๋กญ๊ฒ ํด๋น ๊ธฐ๋ฅ์ ์ถ๊ฐ/๊ฐ์ ๊ฐ๋ฅ โ ๊ธฐ์ฌํ๋ค(contribute)
Git ๋ช ๋ น์ด
commit
: ํน์ ์์ ์ ์์ฑ๋ ๋ฐฑ์ ๋ณต์ฌ๋ณธ(=์ค๋ ์ท)์ ๋ง๋ค์ด ์ฃผ๋ ์์fork
: ์คํ ์์ค ์ฝ๋๊ฐ ์ ๋ก๋ ๋์ด ์๋ ์๊ฒฉ ์ ์ฅ์์์ ๋ด ์๊ฒฉ ์ ์ฅ์๋ก ๊ฐ์ง๊ณ ์ค๋ ์์clone
: ์๊ฒฉ ์ ์ฅ์(Remote)์ ์๋ ์ฝ๋๋ฅผ ๋ด ์ปดํจํฐ(Local)๋ก ๊ฐ์ ธ์ค๋ ์์push
: ๋ด ์ปดํจํฐ(Local)์์ ์์ ํ ์์ค์ฝ๋ ๋ณ๊ฒฝ ์์ ์ commit์ ํตํด ์ ์ฅํด์ค ๋ค, ์๊ฒฉ ์ ์ฅ์(Remote)์ ๋ฐ์ํ๋ ์์
(Local Repository์ ๊ธฐ๋กํด ๋์ commit์ Remote Repository๋ก ์ ๋ก๋)pull request
: ๋ด๊ฐ ์ ์ํ ์ฝ๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ํด ๋ฐ์ ์ฌ๋ถ ์์ฒญpull
: ์๊ฒฉ ์ ์ฅ์์์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๊ฒผ์ ๋, ๋ณ๊ฒฝ๋ ์ฌํญ์ ๋ก์ปฌ ์ ์ฅ์์ ๋ฐ์ํ๋ ์์
์ฌ์ฉ์ ์ ๋ณด ๋ฑ๋ก
$ git config --global user.name "Beanxx"
$ git config --global user.email "tnqls1211v@gmail.com"
โย โglobal
์ต์
: ์ฌ์ฉ์ ํ์ ์ ์ฅ๋๋ฏ๋ก git ์ค์ ์ ์ฒ์์ ํ ๋ฒ๋ง ์
๋ ฅํด๋ ๋จ
์ถ๊ฐ ์ธ์ฆ ๋ฐฉ๋ฒ
# 1. SSH ํค ์์ฑ
ssh-keygen
# ssh keypair: id_rsa(Private Key/Secret Key), id_rsa.pub(Public Key) ์์ฑ
# 2. Public Key(๊ณต๊ฐํค) ๋ณต์ฌ
cat ~/.ssh/id_rsa.pub
# 3. Github์ ๊ณต๊ฐํค ๋ฑ๋ก
# Settings -> SSH and GPG keys -> New SSH key -> Add SSH key
# 4. SSH key ์ฌ์ฉ
git clone <code์ SSH ํญ์ ๋ํ๋ ๋ฌธ์์ด ๋ณต์ฌ>
Github CLI๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ์ธ์ฆ ๊ณผ์
$ brew install gh # Github CLI ์ค์น
$ gh auth login # Login ์๋
โ Pair Programming
- range module๋ฅผ ํ์ฉํ์ฌ
์ง์ ์์ฑ๊ธฐ
์์ฑassignment-manager
๋ก ์ ์ถcalculator sprint
๊ณผ์ ์ฌ์ ์ถ