IT 기초: 서버와 리눅스
4주 과정, 하루 1시간

IT 기초: 서버와 리눅스

서버가 무엇으로 이루어져 있는지부터 시작해, WSL2 Ubuntu에서 리눅스 명령어로 파일, 권한, 프로세스, 서비스, 로그를 직접 다루고, 마지막에 구글 클라우드 VM과 연결해 고객에게 설명할 수 있을 때까지 갑니다. 위에서부터 하나씩 체크하세요.

다음 할 일

…

실습 방법 보기
전체 진행0 / 0
진행 상황: 이 브라우저에 저장

공부하는 방법

매일 1시간몰아서 8시간보다 매일 1시간이 오래 남습니다. 과제마다 예상 시간이 적혀 있습니다.
읽기 20%, 손 80%개념을 읽었으면 바로 WSL 터미널에서 직접 쳐 보고, 결과를 예상 결과와 비교합니다.
일부러 부수기설정을 틀리게 바꾸고, 에러 메시지만 보고 원인을 찾습니다.
소리 내 설명하기단계 끝의 자가 점검에 답을 보지 않고 말해 봅니다. 막히면 그 과제로 돌아갑니다.
맥북에서 실습하기Windows에서 한다면 건너뛰세요

맥에서는 Ubuntu 가상 머신(VM)을 하나 띄워 그 안에서 실습합니다. 그러면 이 사이트의 명령을 Windows(WSL)와 똑같이 쓸 수 있습니다. 사이트에 "WSL Ubuntu 터미널"이라고 나오면 "VM 터미널"로 읽으세요.

  1. Homebrew 설치 (맥용 설치 관리자)회사 맥이면 설치 전에 IT팀 승인을 확인하세요.
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. Ubuntu 가상 머신 만들고 들어가기Multipass는 무료입니다. 이 VM이 Windows의 WSL 역할을 합니다.
    brew install --cask multipass                                  # 가상 머신 관리 도구 설치
    multipass launch --name ubuntu --cpus 2 --memory 4G --disk 20G  # Ubuntu VM 만들기 (쿠버네티스는 --memory 8G 권장)
    multipass shell ubuntu                                          # VM 터미널로 들어가기
    # 여기서부터 사이트의 "WSL Ubuntu 터미널" 명령을 그대로 실행
  3. 맥 브라우저에서 VM 안의 서비스 열기WSL과 달리 localhost가 자동으로 연결되지 않습니다.
    multipass info ubuntu | grep IPv4  # VM의 IP 확인 (예: 192.168.64.5)
    # 브라우저에서 localhost 대신 http://<VM IP>:<포트> 로 접속
    # kubectl port-forward 는 --address 0.0.0.0 을 붙여야 맥에서 열림
  4. 끝나면 정리VM은 켜 두면 맥의 메모리를 계속 씁니다.
    multipass stop ubuntu            # VM 끄기 (내용은 남음)
    multipass start ubuntu           # 다시 켜기
    multipass delete --purge ubuntu  # 완전히 삭제

Git과 Python은 VM 없이 맥에서 바로 해도 됩니다 (xcode-select --install, brew install python). 서버, 네트워크, DB처럼 리눅스 명령이 나오는 사이트는 VM에서 하세요.

WSL 설치, PowerShell 명령건너뜁니다. 위 2번 VM이 대신합니다.
Apple Silicon(M1 이후) 맥VM에서 uname -m이 aarch64면 다운로드 주소의 amd64를 arm64로 바꿉니다. arm64 버전이 없는 이미지는 exec format error가 날 수 있습니다.
Docker Desktop맥도 큰 회사는 유료입니다. VM 안의 Docker Engine을 쓰고, 맥에서 직접 쓰려면 무료인 Colima를 씁니다.
파일 주고받기multipass transfer 파일 ubuntu: 또는 multipass mount ~/study ubuntu:/home/ubuntu/study
브라우저로 열기localhost 대신 VM IP를 씁니다 (위 3번).

VM 없이 맥에서 바로 하고 싶다면 brew install kubectl kind helm colima docker 로 도구를 깔 수 있습니다. 단, 리눅스 내부(namespace, cgroup, systemd, iptables)를 들여다보는 실습은 VM에서만 됩니다.

처음 보는 용어

서버네트워크로 들어오는 요청에 24시간 응답하도록 켜 둔 컴퓨터. 부품은 PC와 같지만 안정성과 원격 관리에 초점을 둡니다.
CPU와 코어CPU는 계산을 하는 부품이고, 코어는 그 안에서 동시에 일하는 계산 단위입니다. 코어가 많을수록 여러 일을 한꺼번에 처리합니다.
메모리(RAM)지금 실행 중인 프로그램과 데이터를 올려 두는 빠른 공간. 전원이 꺼지면 내용이 사라집니다.
HDD와 SSD둘 다 전원이 꺼져도 남는 저장 장치. HDD는 회전 원판이라 싸고 느리고, SSD는 반도체라 빠르고 비쌉니다.
NIC(네트워크 카드)서버를 네트워크에 연결하는 부품. 리눅스에서는 eth0 같은 이름으로 보입니다.
가상화와 하이퍼바이저물리 서버 한 대를 여러 VM으로 나누는 기술과, 그 나누기를 맡는 소프트웨어입니다. 클라우드 VM의 바탕입니다.
커널하드웨어, 메모리, 프로세스를 직접 관리하는 운영체제의 핵심 부분입니다.
배포판리눅스 커널에 명령어와 패키지 관리자 등을 묶어 바로 쓸 수 있게 만든 완성품. Ubuntu, Debian, Rocky Linux 등이 있습니다.
셸(bash)사용자가 입력한 명령어를 해석해 운영체제에 전달하는 프로그램. Ubuntu의 기본 셸이 bash입니다.
절대 경로와 상대 경로/ 로 시작해 루트부터 적는 전체 주소가 절대 경로, 현재 폴더를 기준으로 적는 것이 상대 경로입니다.
파이프(|)앞 명령의 출력을 뒤 명령의 입력으로 넘겨 여러 명령을 이어 붙이는 기호입니다.
권한(rwx)파일마다 주인, 그룹, 나머지 사람에게 읽기, 쓰기, 실행을 허락하는 규칙. chmod로 바꿉니다.
sudo일반 사용자가 관리자(root) 권한으로 명령 하나를 실행하게 해 주는 명령입니다.
프로세스와 PID실행 중인 프로그램 하나가 프로세스이고, 운영체제가 붙인 번호가 PID입니다.
시그널프로세스에 보내는 짧은 신호. SIGTERM(15)은 정리 후 종료, SIGKILL(9)은 강제 종료입니다.
부하 평균(load average)1분, 5분, 15분 동안 CPU를 쓰거나 기다린 평균 작업 수. 코어 수와 비교해 읽습니다.
서비스(데몬)와 systemd배경에서 늘 대기하는 프로그램이 서비스이고, 이를 켜고 끄고 자동 시작을 관리하는 것이 systemd(systemctl 명령)입니다.
패키지 관리자(apt)검증된 저장소에서 프로그램을 설치, 업데이트, 삭제하는 도구. Ubuntu는 apt를 씁니다.
SSH암호화된 통로로 원격 서버에 접속해 명령을 내리는 방법. 암호 대신 키 한 쌍으로 인증하는 것이 안전합니다.
cron정해진 시간마다 명령이나 스크립트를 자동으로 실행하는 예약 도구입니다.

계속 쓰게 될 자료