인터넷의 동작 원리를
패킷과 코드로 이해합니다
컴퓨터네트워크 수업은 DNS, IP, TCP, TLS, HTTP가 실제 웹 접속 과정에서 어떻게 연결되는지 직접 관찰하고 구현하는 실습 중심 과목입니다.
GET /cn/ HTTP/2
Host: hyuekjae.github.io
Status: 200 OK
웹페이지 하나로 네트워크 전체 흐름을 설명합니다
학생이 이 페이지에 접속하는 순간, 브라우저 내부에서는 DNS 조회, TCP 연결, TLS 보안 연결, HTTP 요청, HTML/CSS 렌더링이 순서대로 일어납니다.
DNS
도메인 이름을 실제 접속 가능한 IP 주소로 바꾸는 과정을 이해합니다.
TCP/IP
브라우저와 서버가 데이터를 안정적으로 주고받는 기본 통신 구조를 배웁니다.
HTTPS/TLS
인증서, 암호화, 안전한 웹 통신이 어떻게 이루어지는지 단계적으로 살펴봅니다.
이 수업에서 배우는 핵심 주제
단순 암기가 아니라, 실제 명령어와 패킷 분석을 통해 네트워크 개념을 눈으로 확인합니다.
IP 주소와 포트
컴퓨터는 IP 주소로 찾고, 프로그램은 포트 번호로 구분한다는 개념을 배웁니다.
패킷과 캡슐화
데이터가 작은 패킷으로 나뉘고 계층별 헤더가 붙는 과정을 이해합니다.
라우팅과 NAT
패킷이 여러 네트워크를 거쳐 목적지까지 이동하는 방식을 살펴봅니다.
Wireshark 분석
DNS, TCP, HTTP 패킷을 직접 캡처하여 네트워크의 실제 동작을 확인합니다.
소켓 프로그래밍
UDP Echo, TCP 채팅 서버를 만들어 클라이언트/서버 구조를 체험합니다.
웹서버 구조
브라우저가 GET 요청을 보내고 서버가 HTML을 응답하는 과정을 구현합니다.
학생이 이 페이지에 접속할 때 일어나는 일
주소창에 https://hyuekjae.github.io/cn/을 입력하면 아래 순서로 통신이 진행됩니다.
URL 해석
브라우저가 https, 도메인, 경로를 분리합니다.
DNS 조회
hyuekjae.github.io를 IP 주소로 변환합니다.
TCP 연결
SYN, SYN-ACK, ACK로 연결을 만듭니다.
TLS 보안
인증서 확인 후 암호화 통신을 준비합니다.
HTTP 요청
GET /cn/ 요청으로 index.html을 요청합니다.
화면 표시
브라우저가 HTML/CSS/JS를 해석해 화면을 그립니다.
수업 시간에 바로 해볼 수 있는 실습
이 홈페이지 자체를 실습 대상으로 사용하면 학생들이 네트워크 흐름을 실제로 확인할 수 있습니다.
nslookup hyuekjae.github.io
# HTTP 응답 헤더 확인
curl -I https://hyuekjae.github.io/cn/
# 브라우저에서 확인
F12 → Network → 새로고침
DNS 조회 실습
도메인 이름이 여러 IPv4, IPv6 주소로 바뀌는 과정을 확인합니다.
개발자도구 Network 분석
GET 요청, 200 OK, Content-Type, 응답 크기와 시간을 확인합니다.
IP 직접 접속 비교
도메인 접속과 IP 직접 접속의 차이를 Host 헤더 관점에서 설명합니다.
간단한 웹서버 만들기
Python 또는 Node.js로 로컬 웹서버를 만들고 IP 주소로 접속해 봅니다.
주차별 수업 계획
네트워크 개념을 쉬운 예제에서 시작해 실제 프로그래밍과 패킷 분석으로 확장합니다.
수업 자료 안내
아래 항목은 실제 강의자료, GitHub 실습 코드, LMS 과제 제출 링크로 연결해 사용할 수 있습니다. 현재는 예시 버튼이며, 나중에 실제 주소로 바꾸면 됩니다.