๋ฆฌ๋
์ค ๊ธฐ๋ฐ ์๋ฒ ์ด์ ๊ธฐ์ด
๊ฐ์
๋ฆฌ๋
์ค(Linux)๋ ์๋ฒ ์ด์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์คํ์์ค ์ด์์ฒด์ ๋ก, ์ ์ธ๊ณ ์น ์๋ฒ์ ์ฝ 80% ์ด์์ด ๋ฆฌ๋
์ค ๊ธฐ๋ฐ์ผ๋ก ์ด์๋๋ค.
์น ์๋ฒ๋ฅผ ์ด์ํ๋ ค๋ฉด ๊ฒฐ๊ตญ ๋ฆฌ๋
์ค๋ฅผ ๋ค๋ฃฐ ์ค ์์์ผ ํด์. Windows์์ ๊ฐ๋ฐํ๋ ๊ฑด ์ต์ํ๊ฒ ์ง๋ง, ์ค์ ์๋น์ค๋ฅผ ๋ฐฐํฌํ๊ณ ์ด์ํ๋ ์๋ฒ๋ ๊ฑฐ์ ๋๋ถ๋ถ ๋ฆฌ๋
์ค๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์.
์ ๋ฆฌ๋
์ค์ผ๊น์? ๋ฌด๋ฃ์ด๊ณ , ๊ฐ๋ณ๊ณ , ์์ ์ ์ด๊ณ , ์๋ฒ์ ์ต์ ํ๋์ด ์๊ธฐ ๋๋ฌธ์ด์์. AWS, GCP ๊ฐ์ ํด๋ผ์ฐ๋์์ ์๋ฒ๋ฅผ ๋ง๋ค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฆฌ๋
์ค(Ubuntu, Amazon Linux ๋ฑ)๊ฐ ๊น๋ ค ์์ด์.
์๋ฒ OS ๋น๊ต
ํญ๋ชฉ | Linux (Ubuntu/CentOS) | Windows Server | macOS Server |
๋น์ฉ | ๋ฌด๋ฃ (์คํ์์ค) | ์ ๋ฃ ๋ผ์ด์ ์ค | ํ๋์จ์ด ์ข
์ |
์์ ์ฑ | ๋์ | ๋์ | |
์๋ฒ ์ ์ ์จ | ์ฝ 80%+ | ์ฝ 15% | ๊ทน์์ |
๋ฆฌ์์ค ์ฌ์ฉ | ๋งค์ฐ ์ ์ (GUI ์์ด ์ด์) | ๋ง์ | ๋ณดํต |
์๊ฒฉ ์ ์ | SSH (ํฐ๋ฏธ๋) | RDP (์๊ฒฉ ๋ฐ์คํฌํฑ) | SSH |
ํจํค์ง ๊ด๋ฆฌ | apt, yum, dnf | MSI, chocolatey | brew |
Nginx ํธํ | ์ง์ํ๋ ์ ํ์ | ์ง์ |
๋ฆฌ๋
์ค ์๋ฒ ์ ์ ๊ตฌ์กฐ
graph LR
A[๐ป ๋ด ์ปดํจํฐ<br/>Windows/Mac] -->|SSH ์ ์<br/>ํฌํธ 22| B[๐ฅ๏ธ ๋ฆฌ๋
์ค ์๋ฒ<br/>Ubuntu 22.04]
B --> C[๐ ํ์ผ ์์คํ
]
B --> D[โ๏ธ Nginx]
B --> E[๐ง ์์คํ
์๋น์ค]
B --> F[๐๏ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค]
style A fill:#87CEEB
style B fill:#90EE90Mermaid
๋ณต์ฌ
์ค์ ์๋ฒ๋ฅผ ์ด์ํ ๋๋ ๋ชจ๋ํฐ ์์ด ํฐ๋ฏธ๋๋ก๋ง ์ ์ํด์ ๊ด๋ฆฌํด์. SSH(Secure Shell)๋ผ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ ๋ด ์ปดํจํฐ์์ ์๊ฒฉ์ผ๋ก ์๋ฒ์ ์ ์ํ๋ ๊ฑฐ์์. ๋ง์น ์ ํ๋ก ์๊ฒฉ ์ง์๋ฅผ ๋ด๋ฆฌ๋ ๊ฒ๊ณผ ๋น์ทํด์!
Shell?
์(Shell)์ ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๋ช
๋ น์ ํด์ํด ๋ฆฌ๋
์ค ์ปค๋์ ์ ๋ฌํ๊ณ , ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋ณด์ฌ์ฃผ๋ โ๋ช
๋ น์ด ์ธํฐํ์ด์คโ์์. ๋ณดํต ํฐ๋ฏธ๋์์ bash, zsh ๊ฐ์ ์์ ์ฌ์ฉํ๋ฉฐ, ํ์ผ ๊ด๋ฆฌ, ํ๋ก๊ทธ๋จ ์คํ, ์๋ํ ์คํฌ๋ฆฝํธ ์์ฑ ๋ฑ ์๋ฒ ์ด์ ์์
์ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ํ ์ ์๊ฒ ํด์ค๋๋ค.
๋ฆฌ๋
์ค ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
๋ฆฌ๋
์ค์ ํ์ผ ์์คํ
์ Windows์ ์์ ํ ๋ฌ๋ผ์. C:\\, D:\\ ๊ฐ์ ๋๋ผ์ด๋ธ๊ฐ ์๊ณ , ๋ชจ๋ ๊ฒ์ด /(๋ฃจํธ)์์ ์์ํด์.
graph TD
ROOT["/ (๋ฃจํธ)"] --> etc["/etc<br/>์ค์ ํ์ผ"]
ROOT --> var["/var<br/>๊ฐ๋ณ ๋ฐ์ดํฐ"]
ROOT --> home["/home<br/>์ฌ์ฉ์ ํ"]
ROOT --> usr["/usr<br/>ํ๋ก๊ทธ๋จ"]
ROOT --> tmp["/tmp<br/>์์ ํ์ผ"]
ROOT --> opt["/opt<br/>์ถ๊ฐ ์ํํธ์จ์ด"]
etc --> nginx_conf["/etc/nginx/<br/>Nginx ์ค์ โญ"]
var --> log["/var/log/<br/>๋ก๊ทธ ํ์ผ"]
var --> www["/var/www/<br/>์น ํ์ผ โญ"]
log --> nginx_log["/var/log/nginx/<br/>Nginx ๋ก๊ทธ โญ"]
home --> user["/home/ubuntu/<br/>์ฌ์ฉ์ ๋๋ ํ ๋ฆฌ"]
style nginx_conf fill:#FFD700
style www fill:#FFD700
style nginx_log fill:#FFD700Mermaid
๋ณต์ฌ
๋๋ ํ ๋ฆฌ | ์ฉ๋ | Nginx ๊ด๋ จ |
/etc/ | ์์คํ
์ค์ ํ์ผ | /etc/nginx/nginx.conf โ Nginx ๋ฉ์ธ ์ค์ |
/var/www/ | ์น ์ฝํ
์ธ ์ ์ฅ | /var/www/html/ โ ๊ธฐ๋ณธ ์น ๋ฃจํธ |
/var/log/ | ๋ก๊ทธ ํ์ผ | /var/log/nginx/ โ ์ ๊ทผ/์๋ฌ ๋ก๊ทธ |
/home/ | ์ฌ์ฉ์ ํ ๋๋ ํ ๋ฆฌ | ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ๋ฑ |
/usr/ | ์ค์น๋ ํ๋ก๊ทธ๋จ | Nginx ๋ฐ์ด๋๋ฆฌ ์์น |
/tmp/ | ์์ ํ์ผ (์ฌ๋ถํ
์ ์ญ์ ) | โ |
Nginx๋ฅผ ๋ค๋ฃจ๋ฉด์ ๊ฐ์ฅ ์์ฃผ ๊ฐ๊ฒ ๋ ๋๋ ํ ๋ฆฌ 3๊ณณ์
ํ์ํ ๊ณณ์ด์์!
ํ์ ๋ฆฌ๋
์ค ๋ช
๋ น์ด
ํ์ผ/๋๋ ํ ๋ฆฌ ๊ด๋ฆฌ
๋ช
๋ น์ด | ์ค๋ช
| ์ฌ์ฉ ์์ |
ls | ํ์ผ ๋ชฉ๋ก ๋ณด๊ธฐ | ls -la /etc/nginx/ |
cd | ๋๋ ํ ๋ฆฌ ์ด๋ | cd /etc/nginx/ |
pwd | ํ์ฌ ์์น ํ์ธ | pwd |
mkdir | ๋๋ ํ ๋ฆฌ ์์ฑ | mkdir -p /var/www/mysite |
cp | ํ์ผ ๋ณต์ฌ | cp nginx.conf nginx.conf.backup |
mv | ํ์ผ ์ด๋/์ด๋ฆ ๋ณ๊ฒฝ | mv old.conf new.conf |
rm | ํ์ผ ์ญ์ | rm -rf /tmp/test/ |
cat | ํ์ผ ๋ด์ฉ ๋ณด๊ธฐ | cat /etc/nginx/nginx.conf |
nano / vim | ํ์ผ ํธ์ง | sudo nano /etc/nginx/nginx.conf |
tail | ํ์ผ ๋๋ถ๋ถ ๋ณด๊ธฐ | tail -f /var/log/nginx/access.log |
์์คํ
๊ด๋ฆฌ
๋ช
๋ น์ด | ์ค๋ช
| ์ฌ์ฉ ์์ |
sudo | ๊ด๋ฆฌ์ ๊ถํ ์คํ | sudo systemctl restart nginx |
systemctl | ์๋น์ค ๊ด๋ฆฌ | systemctl status nginx |
ps | ํ๋ก์ธ์ค ํ์ธ | ps aux \| grep nginx |
top / htop | ์์คํ
๋ฆฌ์์ค ๋ชจ๋ํฐ๋ง | htop |
df | ๋์คํฌ ์ฌ์ฉ๋ | df -h |
free | ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ | free -m |
uname | ์์คํ
์ ๋ณด | uname -a |
๋คํธ์ํฌ ๊ด๋ฆฌ
๋ช
๋ น์ด | ์ค๋ช
| ์ฌ์ฉ ์์ |
curl | HTTP ์์ฒญ ๋ณด๋ด๊ธฐ | curl <http://localhost> |
wget | ํ์ผ ๋ค์ด๋ก๋ | wget <https://example.com/file.zip> |
netstat / ss | ํฌํธ ํ์ธ | ss -tlnp |
ping | ๋คํธ์ํฌ ์ฐ๊ฒฐ ํ์ธ | ping google.com |
ip addr | IP ์ฃผ์ ํ์ธ | ip addr show |
ufw | ๋ฐฉํ๋ฒฝ ๊ด๋ฆฌ | sudo ufw allow 80 |
ํจํค์ง ๊ด๋ฆฌ (Ubuntu/Debian ๊ธฐ์ค)
flowchart LR
A[ํจํค์ง ๋ชฉ๋ก ์
๋ฐ์ดํธ<br/>apt update] --> B[ํจํค์ง ์ค์น<br/>apt install]
B --> C[ํจํค์ง ์ญ์ <br/>apt remove]
A --> D[์ ์ฒด ์
๊ทธ๋ ์ด๋<br/>apt upgrade]
style A fill:#87CEEB
style B fill:#90EE90
style C fill:#FFB3B3
style D fill:#FFD700Mermaid
๋ณต์ฌ
๋ช
๋ น์ด | ์ค๋ช
| ์์ |
sudo apt update | ํจํค์ง ๋ชฉ๋ก ์ต์ ํ | ์ค์น ์ ์ ํญ์ ์คํ! |
sudo apt install | ํจํค์ง ์ค์น | sudo apt install nginx |
sudo apt remove | ํจํค์ง ์ญ์ | sudo apt remove nginx |
sudo apt upgrade | ์ค์น๋ ํจํค์ง ์
๋ฐ์ดํธ | sudo apt upgrade |
sudo apt autoremove | ๋ถํ์ํ ํจํค์ง ์ ๋ฆฌ | sudo apt autoremove |
ํจํค์ง ๊ด๋ฆฌ์๋ ์ค๋งํธํฐ์ ์ฑ์คํ ์ด ๊ฐ์ ๊ฑฐ์์! apt install nginx๋ผ๊ณ ์น๋ฉด, ์ธํฐ๋ท์์ Nginx๋ฅผ ์๋์ผ๋ก ๋ค์ด๋ก๋ํ๊ณ ์ค์นํด์ฃผ๊ณ , ํ์ํ ์์กด์ฑ๋ ๋ค ์์์ ์ฒ๋ฆฌํด์ค์.
SSH ์ ์ํ๊ธฐ
# ๊ธฐ๋ณธ ์ ์ (๋น๋ฐ๋ฒํธ ์ธ์ฆ)
ssh username@์๋ฒIP์ฃผ์
# ํค ํ์ผ๋ก ์ ์ (AWS EC2 ๋ฑ)
ssh -i ~/.ssh/my-key.pem ubuntu@54.180.123.45
# ํน์ ํฌํธ๋ก ์ ์
ssh -p 2222 username@์๋ฒIP์ฃผ์
Bash
๋ณต์ฌ
SSH ์ ์์ ์๋ฒ ์ด์์ ์ฒซ ๊ฑธ์์ด์์. AWS EC2๋ฅผ ๋ง๋ค๋ฉด .pem ํค ํ์ผ์ ์ฃผ๋๋ฐ, ์ด ํ์ผ์ด ์ด์ ์ญํ ์ ํด์. ์ด ์ด์ ๊ฐ ์์ด์ผ๋ง ์๋ฒ์ ๋ค์ด๊ฐ ์ ์์ด์. ๋น๋ฐ๋ฒํธ๋ณด๋ค ํจ์ฌ ์์ ํ ๋ฐฉ์์ด์ฃ !
ํ์ผ ๊ถํ ์์คํ
๋ฆฌ๋
์ค์์๋ ๋ชจ๋ ํ์ผ๊ณผ ๋๋ ํ ๋ฆฌ์ ๊ถํ(Permission)์ด ์์ด์. ๋๊ฐ ์ฝ๊ณ , ์ฐ๊ณ , ์คํํ ์ ์๋์ง๋ฅผ ์ ํด๋๋ ๊ฑฐ์์.
๊ธฐํธ | ์ซ์ | ์๋ฏธ |
r | 4 | ์ฝ๊ธฐ (Read) |
w | 2 | ์ฐ๊ธฐ (Write) |
x | 1 | ์คํ (Execute) |
๊ถํ ํ๊ธฐ | ์ซ์ ํ๊ธฐ | ์๋ฏธ |
rwxr-xr-x | 755 | ์์ ์: ๋ชจ๋ ๊ฐ๋ฅ / ๊ทธ๋ฃน,๊ธฐํ: ์ฝ๊ธฐ+์คํ |
rw-r--r-- | 644 | ์์ ์: ์ฝ๊ธฐ+์ฐ๊ธฐ / ๊ทธ๋ฃน,๊ธฐํ: ์ฝ๊ธฐ๋ง |
rwx------ | 700 | ์์ ์๋ง ๋ชจ๋ ๊ฐ๋ฅ |
rw------- | 600 | ์์ ์๋ง ์ฝ๊ธฐ+์ฐ๊ธฐ (SSH ํค ํ์ผ์ ์ฌ์ฉ) |
# ๊ถํ ๋ณ๊ฒฝ
chmod 755 /var/www/html
chmod 644 /var/www/html/index.html
# ์์ ์ ๋ณ๊ฒฝ
chown www-data:www-data /var/www/html -R
Bash
๋ณต์ฌ
Nginx๊ฐ ์น ํ์ผ์ ์ฝ์ผ๋ ค๋ฉด ํด๋น ํ์ผ์ ์ฝ๊ธฐ ๊ถํ์ด ์์ด์ผ ํด์. ๊ถํ์ด ์์ผ๋ฉด 403 Forbidden ์๋ฌ๊ฐ ๋์!
# ์ฌ๋ณผ๋ฆญ ๋ชจ๋ (+)
chmod u+r file.txt # ์์ ์์๊ฒ ์ฝ๊ธฐ ๊ถํ ์ถ๊ฐ
chmod g+r file.txt # ๊ทธ๋ฃน์๊ฒ ์ฝ๊ธฐ ๊ถํ ์ถ๊ฐ
chmod o+r file.txt # ๊ธฐํ ์ฌ์ฉ์์๊ฒ ์ฝ๊ธฐ ๊ถํ ์ถ๊ฐ
chmod a+r file.txt # ๋ชจ๋์๊ฒ ์ฝ๊ธฐ ๊ถํ ์ถ๊ฐ
chmod u+x script.sh # ์์ ์์๊ฒ ์คํ ๊ถํ ์ถ๊ฐ
chmod a+x script.sh # ๋ชจ๋์๊ฒ ์คํ ๊ถํ ์ถ๊ฐ
# ์ฌ๋ฌ ๊ถํ์ ํ ๋ฒ์ ์ถ๊ฐ
chmod u+rx script.sh # ์์ ์์๊ฒ ์ฝ๊ธฐ+์คํ ์ถ๊ฐ
chmod a+rx dir/ # ๋ชจ๋์๊ฒ ์ฝ๊ธฐ+์คํ ์ถ๊ฐ (๋๋ ํ ๋ฆฌ ์ ๊ทผ์ ์ ์ฉ)
# ๊ถํ ์ ๊ฑฐ/์ค์
chmod o-r file.txt # ๊ธฐํ ์ฌ์ฉ์ ์ฝ๊ธฐ ๊ถํ ์ ๊ฑฐ
chmod a=r file.txt # ๋ชจ๋์ ๊ถํ์ '์ฝ๊ธฐ๋ง'์ผ๋ก ์ค์
# ์ฌ๊ท ์ ์ฉ
chmod -R a+rX /var/www/html # ๋๋ ํ ๋ฆฌ๋ X๋ก ์คํ(์ ๊ทผ)๋ง, ํ์ผ์ x ์ ์ง
Bash
๋ณต์ฌ
chmod +r file.txt = chmod a+r file.txt ์ ๋์ผํ๊ฒ ๋์
user(u) / group(g) / other(o) ๋ชจ๋์๊ฒ ์ฝ๊ธฐ ๊ถํ์ด ์ถ๊ฐ๋จ
ํต์ฌ ์ ๋ฆฌ
๋ฆฌ๋
์ค๋ ์๋ฒ ์ด์์ ํ์ค OS โ ๋ฌด๋ฃ, ๊ฐ๋ณ๊ณ , ์์ ์
SSH๋ก ์๊ฒฉ ์ ์ํ์ฌ ํฐ๋ฏธ๋๋ก ์๋ฒ๋ฅผ ๊ด๋ฆฌ
ํต์ฌ ๋๋ ํ ๋ฆฌ:
/etc/nginx/ (์ค์ ), /var/www/ (์น ํ์ผ), /var/log/nginx/ (๋ก๊ทธ)
apt๋ก ํจํค์ง ์ค์น/๊ด๋ฆฌ, systemctl๋ก ์๋น์ค ๊ด๋ฆฌ
ํ์ผ ๊ถํ(chmod)๊ณผ ์์ ์(chown) ์ค์ ์ ์๋ฒ ๋ณด์์ ๊ธฐ๋ณธ!




