Skip to content

โ† ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ฐ€์ด๋“œ ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

๐Ÿš Bash / Shell Script ์ƒ์„ธ ๊ฐ€์ด๋“œ โ€‹

"๊ฒ€์€ ํ™”๋ฉด(ํ„ฐ๋ฏธ๋„) ๋„ˆ๋จธ์˜ ์šด์˜์ฒด์ œ(OS) ์‹ฌ์žฅ์„ ์ง์ ‘ ํ†ต์ œํ•˜๊ณ  ์ž๋™ํ™”ํ•˜๋Š” ์—”์ง€๋‹ˆ์–ด์˜ ๋งŒ๋Šฅ ์นผ"


๐Ÿ’ก 1. 30๋…„์ฐจ ์„ ๋ฐฐ์˜ ์‰ฌ์šด ์„ค๋ช… โ€‹

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

Bash(๋ฐฐ์‹œ) / ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด ๊ฒ€์€ ์ฐฝ์—์„œ ๋ฆฌ๋ˆ…์Šค/์œ ๋‹‰์Šค ์šด์˜์ฒด์ œ(OS)์˜ ์ปค๋„์— ์ง์ ‘ ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ ์••์ถ•, ์„œ๋ฒ„ ๋ฐฐํฌ, ํ™˜๊ฒฝ ์„ค์ •, ์ฃผ๊ธฐ์ ์ธ ๋ฐฑ์—… ์ž‘์—… ๋“ฑ ์‹œ์Šคํ…œ ์ธํ”„๋ผ ์ „๋ฐ˜์„ ์ฝ”๋“œ๋กœ ์ž๋™ํ™”ํ•  ๋•Œ ๋ผˆ๋Œ€ ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

  • ๋น„์œ ํ•˜์ž๋ฉด: ๋ฌด์ „๊ธฐ๋ฅผ ๋“ค๊ณ  ๊ฑด๋ฌผ(์„œ๋ฒ„) ๋‚ด๋ถ€์˜ ๋ชจ๋“  ๊ฒฝ๋น„๋Œ€์›๊ณผ ์„ค๋น„ ์ œ์–ด์‹ค์— ์ง์ ‘ ์ง€์‹œ๋ฅผ ๋‚ด๋ ค ๊ฑด๋ฌผ ์ „์ฒด๋ฅผ ์ผ์‚ฌ๋ถ„๋ž€ํ•˜๊ฒŒ ๊ฐ€๋™ํ•˜๊ณ  ์ˆœ์ฐฐํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์‚ฌ๋ น๊ด€์˜ ์ง์ ‘ ํ†ต์‹ ๋ง๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๐Ÿ› ๏ธ 2. ์–ด๋””์— ์ฃผ๋กœ ์“ฐ์ด๋‚˜์š”? โ€‹

  1. ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„ ์ธํ”„๋ผ ์šด์˜: ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„ ์„ธํŒ…, ๊ถŒํ•œ ์กฐ์ •, ํด๋” ์ •๋ฆฌ ๋ฐ ํ”„๋กœ์„ธ์Šค ๊ฐ€๋™.
  2. CI/CD ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ์ž๋™ํ™”: GitHub Actions๋‚˜ Jenkins ๋“ฑ ๋นŒ๋“œ ์„œ๋ฒ„์—์„œ ์ฝ”๋“œ๋ฅผ ์••์ถ•ํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ๋Œ๋ฆฐ ๋’ค, ์‹ค์„œ๋ฒ„์— ์ฝ”๋“œ๋ฅผ ์ „์†กํ•˜์—ฌ ๋ฐฐํฌํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค.

โš–๏ธ 3. ์žฅ์ ๊ณผ ๋‹จ์  (์„ ๋ฐฐ์˜ ์†”์ง ํ•œ๋งˆ๋””) โ€‹

  • ์žฅ์  (๋น„๊ต ๋ถˆ๊ฐ€ํ•œ ์‹ ์†ํ•จ):
    • ์ฆ‰๊ฐ์ ์ธ ์ž๋™ํ™”: ๋ณต์žกํ•œ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜๋‚˜ ์ปดํŒŒ์ผ ์—†์ด, ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋“ค์„ ํŒŒ์ผ์— ๋ชจ์•„ ์ ์–ด๋‘๊ธฐ๋งŒ ํ•˜๋ฉด ๋ช‡ ๋งŒ ๋Œ€์˜ ์ปดํ“จํ„ฐ์—์„œ๋„ ์ฆ‰์‹œ ๋˜‘๊ฐ™์€ ์„ธํŒ…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • ์„œ๋ฒ„ ๋งˆ์Šคํ„ฐ์˜ ์ฒซ๊ฑธ์Œ: ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ์ˆœ๊ฐ„ ๋‹จ์ˆœ ์ฝ”๋”๋ฅผ ๋„˜์–ด ์‹œ์Šคํ…œ ์—”์ง€๋‹ˆ์–ด์˜ ๋ˆˆ์„ ๋œจ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹จ์  (๋น„์ง๊ด€์ ์ธ ๋””๋ฒ„๊น…):
    • ๋‚œํ•ดํ•œ ๋ฌธ๋ฒ•: ์กฐ๊ฑด๋ฌธ ๊ด„ํ˜ธ ๋„์–ด์“ฐ๊ธฐ([ $a -eq 1 ])๋‚˜ ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ ๋„์–ด์“ฐ๊ธฐ ๋ถˆํ—ˆ ๋“ฑ ํŠน์œ ์˜ ๊นŒ๋‹ค๋กญ๊ณ  ์˜ฌ๋“œํ•œ ๊ทœ์น™ ๋•Œ๋ฌธ์— ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋ฅผ ์žก๊ธฐ ๋‹ค์†Œ ๋ฒˆ๊ฑฐ๋กญ์Šต๋‹ˆ๋‹ค.

๐Ÿš€ 4. ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ์ฒซ๊ฑธ์Œ ์ฝ”๋“œ โ€‹

ํŠน์ • ํด๋”๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ ๋งŒ๋“ค๊ณ  ๋ฐฑ์—…๋ณธ์„ ๋ณต์‚ฌํ•˜๋Š” ๊ธฐ๋ณธ ์ž๋™ํ™” ์‰˜ ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค.

bash
#!/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. ์ดˆ๋ณด์ž ์ถ”์ฒœ ๊ณต๋ถ€ ๋ฐฉํ–ฅ โ€‹

  1. ์œˆ๋„์šฐ ํ™˜๊ฒฝ์ด๋ผ๋ฉด Git Bash๋‚˜ WSL(Windows Subsystem for Linux)์„ ์„ค์น˜ํ•ด ๋ฆฌ๋ˆ…์Šค ํ„ฐ๋ฏธ๋„ ํ™˜๊ฒฝ์„ ๋จผ์ € ์„ธํŒ…ํ•˜์„ธ์š”.
  2. cd, ls, mkdir, cp, mv, rm ๋“ฑ ๊ธฐ์ดˆ ์‰˜ ๋ช…๋ น์–ด 10๊ฐ€์ง€๋ฅผ ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค์ฒ˜๋Ÿผ ์™ธ์›Œ ๋ชธ์— ์ตํžˆ๋Š” ๊ฒƒ์ด ์ถœ๋ฐœ์„ ์ž…๋‹ˆ๋‹ค.
  3. ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์„ ๊นŠ์ด ํŒŒ๊ธฐ๋ณด๋‹จ, AI ์ฝ”๋”ฉ ์–ด์‹œ์Šคํ„ดํŠธ์—๊ฒŒ "A ํด๋”์˜ ํŒŒ์ผ์„ ๋‚ ์งœ๋ณ„๋กœ ์ •๋ฆฌํ•˜๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ ์งœ์ค˜"๋ผ๊ณ  ํ•œ ๋’ค ์ฝ”๋“œ๋ฅผ ๋œฏ์–ด๋ณด๋ฉฐ ์‹คํ–‰ ๊ตฌ์กฐ๋ฅผ ์—ญ์ถ”์ ํ•˜๋Š” ํ•™์Šต๋ฒ•์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. AI๊ฐ€ ์‰˜ ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ์„ ๋ฌด์ฒ™ ์ž˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ง€์‹DB โ€” ๋” ๋‚˜์€ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์œ„ํ•ด