IT 기초: 네트워크
4주 과정, 하루 1시간

IT 기초: 네트워크

브라우저에 주소를 치고 화면이 뜨기까지의 여정 하나를 따라가며 주소, 경로, DNS, TCP, HTTPS, 로드밸런서를 차례로 확대해 봅니다. 마지막에는 구글 클라우드 네트워크와 연결하고 고객에게 설명하는 연습까지 합니다. 위에서부터 하나씩 체크하세요.

다음 할 일

…

실습 방법 보기
전체 진행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에서만 됩니다.

처음 보는 용어

OSI 7계층통신을 물리부터 응용까지 일곱 층으로 나눈 설명용 지도입니다. 현업에서 L4, L7 같은 말은 이 번호를 씁니다.
TCP/IP 4계층실제 인터넷이 쓰는 링크, 인터넷, 전송, 응용 네 층 구조입니다.
캡슐화데이터가 아래 계층으로 내려가며 각 계층의 머리글(헤더)이 한 겹씩 붙는 것입니다. 편지를 봉투에, 봉투를 상자에 넣는 것과 같습니다.
MAC 주소네트워크 카드에 붙은 48비트 번호로, 같은 네트워크 안에서 다음 장비까지 전달할 때 씁니다.
IP 주소네트워크를 넘어 목적지를 찾는 집 주소입니다. IPv4는 32비트, IPv6는 128비트입니다.
사설 IP10.x, 172.16~31.x, 192.168.x 처럼 내부에서만 쓰는 주소입니다. 인터넷에 나가려면 NAT가 필요합니다.
서브넷 마스크 / CIDRIP 주소 중 어디까지가 네트워크(동네 이름)인지 정하는 값입니다. /24는 앞 24비트가 네트워크라는 뜻입니다.
기본 게이트웨이내 서브넷 밖으로 가는 패킷을 모두 넘기는 첫 라우터입니다. 건물 1층 우편실과 같습니다.
ARP같은 네트워크에서 'IP가 이것인 장비의 MAC은?' 하고 물어 알아내는 방법입니다.
라우팅 표목적지 주소 범위별로 패킷을 어디로 보낼지 적은 규칙 목록입니다. 가장 구체적으로 맞는 규칙이 이깁니다.
NAT사설 IP를 공인 IP로 바꿔 내보내고 응답을 원래 기기로 돌려주는 기능입니다. 회사 대표 주소로 나가는 우편과 같습니다.
DHCP네트워크에 들어온 기기에 IP, 마스크, 게이트웨이, DNS를 기한을 정해 자동으로 나눠 주는 서비스입니다.
DNS 레코드도메인에 붙은 정보 칸입니다. A(IPv4), AAAA(IPv6), CNAME(별명), MX(메일), TXT(메모), NS(담당 서버)가 대표적입니다.
TTLDNS 답을 캐시해도 되는 시간(초)입니다. IP 패킷의 TTL은 거칠 수 있는 라우터 수라는 다른 뜻입니다.
포트한 컴퓨터 안에서 프로그램을 구분하는 창구 번호입니다. 웹은 80(HTTP), 443(HTTPS)을 씁니다.
3-way handshakeTCP가 데이터를 보내기 전에 SYN, SYN-ACK, ACK 세 번을 주고받아 연결을 만드는 절차입니다.
TLS 인증서이 서버가 그 도메인의 진짜 주인임을 인증 기관이 서명으로 보증하는 문서입니다. 유효 기간이 있습니다.
리버스 프록시서버 앞에서 손님 요청을 받아 뒤쪽 서버에 전달하는 앞문입니다. 인증서 처리나 캐시를 대신 맡기도 합니다.
L4 / L7 로드밸런서L4는 IP와 포트만 보고, L7은 HTTP 내용까지 읽고 요청을 여러 서버에 나눠 주는 안내 데스크입니다.
CDN콘텐츠 복사본을 사용자 가까운 곳곳의 캐시 서버에 두고 대신 응답해 주는 동네 창고망입니다.

계속 쓰게 될 자료