โ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฐ์ด๋ ๋ชฉ๋ก์ผ๋ก ๋์๊ฐ๊ธฐ
๐ Bash / Shell Script ์์ธ ๊ฐ์ด๋ โ
"๊ฒ์ ํ๋ฉด(ํฐ๋ฏธ๋) ๋๋จธ์ ์ด์์ฒด์ (OS) ์ฌ์ฅ์ ์ง์ ํต์ ํ๊ณ ์๋ํํ๋ ์์ง๋์ด์ ๋ง๋ฅ ์นผ"
๐ก 1. 30๋ ์ฐจ ์ ๋ฐฐ์ ์ฌ์ด ์ค๋ช โ
๋ง์ ์ด๋ณด ๊ฐ๋ฐ์๋ค์ด ๋ง์ฐ์ค๋ก ์๋์ฐ ์ฐฝ์ ํด๋ฆญํด๊ฐ๋ฉฐ ํด๋๋ฅผ ๋ง๋ค๊ณ ํ์ผ์ ์ฎ๊ธฐ๊ณ ๋น๋ ํ๋ก๊ทธ๋จ์ ์คํํฉ๋๋ค. ํ์ง๋ง ์๋ฒ ์ปดํจํฐ๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์์๋ ๋์ ๋ณด์ด๋ ๋ง์ฐ์ค๋ GUI ํ๋ฉด์ด ์์ต๋๋ค. ์ค์ง ๊ฒ์ ํฐ๋ฏธ๋ ์ฐฝ๊ณผ ํค๋ณด๋ ํ์ดํ๋ง ์กด์ฌํฉ๋๋ค.
Bash(๋ฐฐ์) / ์ ์คํฌ๋ฆฝํธ๋ ์ด ๊ฒ์ ์ฐฝ์์ ๋ฆฌ๋ ์ค/์ ๋์ค ์ด์์ฒด์ (OS)์ ์ปค๋์ ์ง์ ๋ช ๋ น์ ๋ด๋ฆฌ๋ ์คํฌ๋ฆฝํ ์ธ์ด์ ๋๋ค. ํ์ผ ์์ถ, ์๋ฒ ๋ฐฐํฌ, ํ๊ฒฝ ์ค์ , ์ฃผ๊ธฐ์ ์ธ ๋ฐฑ์ ์์ ๋ฑ ์์คํ ์ธํ๋ผ ์ ๋ฐ์ ์ฝ๋๋ก ์๋ํํ ๋ ๋ผ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค.
- ๋น์ ํ์๋ฉด: ๋ฌด์ ๊ธฐ๋ฅผ ๋ค๊ณ ๊ฑด๋ฌผ(์๋ฒ) ๋ด๋ถ์ ๋ชจ๋ ๊ฒฝ๋น๋์๊ณผ ์ค๋น ์ ์ด์ค์ ์ง์ ์ง์๋ฅผ ๋ด๋ ค ๊ฑด๋ฌผ ์ ์ฒด๋ฅผ ์ผ์ฌ๋ถ๋ํ๊ฒ ๊ฐ๋ํ๊ณ ์์ฐฐํ๊ฒ ๋ง๋๋ ์ฌ๋ น๊ด์ ์ง์ ํต์ ๋ง๊ณผ ๊ฐ์ต๋๋ค.
๐ ๏ธ 2. ์ด๋์ ์ฃผ๋ก ์ฐ์ด๋์? โ
- ๋ฆฌ๋ ์ค ์๋ฒ ์ธํ๋ผ ์ด์: ํด๋ผ์ฐ๋ ์๋ฒ ์ธํ , ๊ถํ ์กฐ์ , ํด๋ ์ ๋ฆฌ ๋ฐ ํ๋ก์ธ์ค ๊ฐ๋.
- CI/CD ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ์๋ํ: GitHub Actions๋ Jenkins ๋ฑ ๋น๋ ์๋ฒ์์ ์ฝ๋๋ฅผ ์์ถํ๊ณ , ํ ์คํธ๋ฅผ ๋๋ฆฐ ๋ค, ์ค์๋ฒ์ ์ฝ๋๋ฅผ ์ ์กํ์ฌ ๋ฐฐํฌํ๋ ์ผ๋ จ์ ๊ณผ์ ์ ์ ์คํฌ๋ฆฝํธ๋ก ์๋ํํฉ๋๋ค.
โ๏ธ 3. ์ฅ์ ๊ณผ ๋จ์ (์ ๋ฐฐ์ ์์ง ํ๋ง๋) โ
- ์ฅ์ (๋น๊ต ๋ถ๊ฐํ ์ ์ํจ):
- ์ฆ๊ฐ์ ์ธ ์๋ํ: ๋ณต์กํ ํ๋ก๊ทธ๋จ ์ค์น๋ ์ปดํ์ผ ์์ด, ๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ค์ ํ์ผ์ ๋ชจ์ ์ ์ด๋๊ธฐ๋ง ํ๋ฉด ๋ช ๋ง ๋์ ์ปดํจํฐ์์๋ ์ฆ์ ๋๊ฐ์ ์ธํ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์๋ฒ ๋ง์คํฐ์ ์ฒซ๊ฑธ์: ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค๋ฃฐ ์ ์๊ฒ ๋๋ ์๊ฐ ๋จ์ ์ฝ๋๋ฅผ ๋์ด ์์คํ ์์ง๋์ด์ ๋์ ๋จ๊ฒ ๋ฉ๋๋ค.
- ๋จ์ (๋น์ง๊ด์ ์ธ ๋๋ฒ๊น
):
- ๋ํดํ ๋ฌธ๋ฒ: ์กฐ๊ฑด๋ฌธ ๊ดํธ ๋์ด์ฐ๊ธฐ(
[ $a -eq 1 ])๋ ๋ณ์ ์ ์ธ ์ ๋์ด์ฐ๊ธฐ ๋ถํ ๋ฑ ํน์ ์ ๊น๋ค๋กญ๊ณ ์ฌ๋ํ ๊ท์น ๋๋ฌธ์ ๋ฌธ๋ฒ ์ค๋ฅ๋ฅผ ์ก๊ธฐ ๋ค์ ๋ฒ๊ฑฐ๋กญ์ต๋๋ค.
- ๋ํดํ ๋ฌธ๋ฒ: ์กฐ๊ฑด๋ฌธ ๊ดํธ ๋์ด์ฐ๊ธฐ(
๐ 4. ์ด๋ณด์๋ฅผ ์ํ ์ฒซ๊ฑธ์ ์ฝ๋ โ
ํน์ ํด๋๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ๋ง๋ค๊ณ ๋ฐฑ์ ๋ณธ์ ๋ณต์ฌํ๋ ๊ธฐ๋ณธ ์๋ํ ์ ์คํฌ๋ฆฝํธ์ ๋๋ค.
#!/bin/bash
# 1. ๋ฐฑ์
ํ ๋์ ํด๋ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค.
TARGET_DIR="./docs"
BACKUP_DIR="./backup_folder"
# 2. ๋ง์ฝ ๋ฐฑ์
ํ ํด๋๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด(! -d) ์๋ก ์์ฑํฉ๋๋ค.
if [ ! -d "$BACKUP_DIR" ]; then
echo "โ ๏ธ ๋ฐฑ์
ํด๋๊ฐ ์์ต๋๋ค. ์๋ก ์์ฑํฉ๋๋ค..."
mkdir -p "$BACKUP_DIR"
fi
# 3. ๋์ ํด๋ ์์ ๋ชจ๋ ๋งํฌ๋ค์ด ํ์ผ์ ๋ฐฑ์
ํด๋๋ก ๋ณต์ฌํฉ๋๋ค.
cp $TARGET_DIR/*.md $BACKUP_DIR/
echo "โ
๋ฐฑ์
์ด ์ ์ ์๋ฃ๋์์ต๋๋ค: $(date)"๐ฏ 5. ์ด๋ณด์ ์ถ์ฒ ๊ณต๋ถ ๋ฐฉํฅ โ
- ์๋์ฐ ํ๊ฒฝ์ด๋ผ๋ฉด Git Bash๋ WSL(Windows Subsystem for Linux)์ ์ค์นํด ๋ฆฌ๋ ์ค ํฐ๋ฏธ๋ ํ๊ฒฝ์ ๋จผ์ ์ธํ ํ์ธ์.
cd,ls,mkdir,cp,mv,rm๋ฑ ๊ธฐ์ด ์ ๋ช ๋ น์ด 10๊ฐ์ง๋ฅผ ํค๋ณด๋ ๋จ์ถํค์ฒ๋ผ ์ธ์ ๋ชธ์ ์ตํ๋ ๊ฒ์ด ์ถ๋ฐ์ ์ ๋๋ค.- ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ๊น์ด ํ๊ธฐ๋ณด๋จ, AI ์ฝ๋ฉ ์ด์์คํดํธ์๊ฒ "A ํด๋์ ํ์ผ์ ๋ ์ง๋ณ๋ก ์ ๋ฆฌํ๋ ์ ์คํฌ๋ฆฝํธ ์ง์ค"๋ผ๊ณ ํ ๋ค ์ฝ๋๋ฅผ ๋ฏ์ด๋ณด๋ฉฐ ์คํ ๊ตฌ์กฐ๋ฅผ ์ญ์ถ์ ํ๋ ํ์ต๋ฒ์ ์ถ์ฒํฉ๋๋ค. AI๊ฐ ์ ์คํฌ๋ฆฝํธ ์์ฑ์ ๋ฌด์ฒ ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.