책소개
혼자 해도 충분하다!
1:1 과외하듯 배우는 네트워크 자습서
[혼자 공부하는 네트워크』는 개발자의 필수 지식인 네트워크를 기본부터 제대로 학습할 수 있도록 돕는 입문서입니다. 다수의 네트워크 전공 서적들을 면밀히 분석하고, 방대한 컴퓨터 네트워크 이론 중에서 핵심 내용만 선별해서 담았습니다. 도서 제목 그대로 혼자 공부하는 초보자를 위해 쉬운 비유와 입문자 맞춤형 예시를 통해 재미있는 학습을 유도하고, 핵심 키워드와 네트워크 계층별 설명으로 쉽게 이해할 수 있도록 했으며, 한눈에 쏙 들어오는 친근한 일러스트를 활용하여 아리송한 개념을 머릿속에서 그려 보며 확실하게 각인할 수 있도록 합니다.
이 책의 1장에서는 네트워크를 거시적인 관점과 미시적인 관점에서 살펴보며 개발자에게 있어서 네트워크 지식의 중요성을 알아봅니다. 2~5장에서는 각 네트워크 계층을 하나씩 살펴보며 관련 개념을 학습하고, 6장에서는 실습을 통해 앞서 배운 내용을 복습합니다. 마지막으로 7장에서는 심화 주제를 다루면서 그간의 학습 내용을 정리합니다.
네트워크 지식의 필요성을 알고 있지만 어떤 내용부터 시작해야 할지 막막하다면, 한 번을 배우더라도 구조와 흐름을 제대로 배우고 싶다면, 혼자서도 쉽고 재미있게 학습하고 싶다면 지금 바로 [혼자 공부하는 네트워크』를 만나 보세요.
30명의 베타리더 검증으로
‘함께 만든’ 입문자 맞춤형 도서
30명의 베타리더와 함께 입문자에게 꼭 맞는 난이도, 분량, 학습 요소 등을 적극 반영했습니다. 어려운 용어와 개념은 한 번 더 풀어 쓰고, 적절한 예시와 비유로 누구나 이해할 수 있도록 구성했습니다. 또한 일상에서 자주 접하는 상황에 비유해 네트워크의 핵심 구조와 원리를 재미있게 학습할 수 있도록 구성했습니다. ‘혼자 공부해 본’ 여러 입문자의 초심과 눈높이가 책 곳곳에 반영된 것이 이 책의 가장 큰 장점입니다.
네트워크 구조와 원리를 제대로 배우고 싶을 때
개발자에게 필요한 네트워크 지식을 얻고 싶을 때
혼자서도 쉽게 네트워크에 입문하고 싶을 때
) 하나, ‘입문자 맞춤형 7단계 구성’을 따라가며 체계적으로 반복하는 탄탄한 학습 설계!
이 책은 네트워크 핵심 구조와 원리를 7단계에 걸쳐 반복 학습하면서 자연스럽게 머릿속에 기억되도록 구성했습니다. 〈핵심 키워드〉와 〈시작하기 전에〉를 통해 각 절에서 배울 대표 개념과 핵심 학습 내용을 선행학습하고, 〈말풍선〉, <도해>, 〈좀 더 알아보기〉를 통해 배운 개념을 반복?심화해서 학습하도록 합니다. 마지막으로 각 절 마지막 부분의 <핵심 키워드>와 <확인 문제>를 통해 배운 내용을 점검하고 입문자의 학습 장애물인 낯선 용어를 제대로 이해하도록 돕습니다.
) 둘, 네트워크 구조와 동작 원리를 눈으로 따라가며 기억하고 이해하는 학습!
네트워크는 이론 특성상 무언가를 설치하거나 코드를 작성하며 배우는 것이 아닙니다. 복잡한 이론 위주로 배우는 만큼 자칫하면 지루하거나 어렵게 느껴질 수 있는데, 이 책은 네트워크 동작 원리를 단계별 도해와 비유로 표현하여 독자가 눈으로 파악하고, 머릿속으로 그려 보며 개념을 이해할 수 있도록 구성했습니다. 또한, 마지막 고급편에서는 저자와 함께 프로그램을 통한 실습도 진행해 볼 수 있으니 놓치지 말고 도전해 보세요.
) 셋, 혼자, 때로는 함께 학습할 수 있도록 돕는 동영상 강의와 혼공 학습 사이트 지원 & 저자와 소통하는 네트워크
책만으로는 학습하기에 여전히 이해가 어려운 독자들을 위해 저자의 직강 동영상을 지원합니다. 또한 학습을 하며 궁금한 사항은 언제든지 학습 사이트를 통해 저자에게 질문할 수 있습니다. 저자의 답변을 통해 모르는 부분을 배우고, 아는 부분은 한 번 더 확실하게 이해할 수 있습니다. 더불어 혼자 공부하고 싶지만, 자신 없는 독자를 위해 혼공 학습단을 운영하고 있습니다. 혼공 학습단과 함께라면 마지막까지 포기하지 않고 완주할 수 있습니다.
▶ 학습 사이트: https://hongong.hanbit.co.kr
▶ 저자 깃허브: https://github.com/kangtegong/self-learning-cs2
) 넷, 언제 어디서든 가볍게 볼 수 있는 [혼공 용어 노트] 제공!
꼭 기억해야 할 핵심 개념과 용어만 따로 정리한 [혼공 용어 노트]를 제공합니다. 낯선 용어는 입문자의 학습 장애물입니다. 낯선 용어를 이해하고 익숙해지려면 반복 학습이 중요합니다. [혼자 공부하는 네트워크』는 해당 절에서 배울 내용을 핵심 키워드로 짚어 주고, 본문 키워드 강조와 말풍선 요소를 활용하여 또다시 짚어 주며, 마지막에는 용어 노트로 정리하여 끝까지 반복 복습할 수 있도록 도와줍니다. 용어나 개념이 잘 생각나지 않을 때는 언제든 부담 없이 [혼공 용어 노트]를 펼쳐 보세요. 나아가 여러분만의 용어를 추가해서 자신만의 용어 노트를 완성해 보세요.
이 책은 누구를 위한 책인가요?
) 웹 개발자가 되고 싶은데 네트워크 지식을 전혀 모르는 비전공자
) 네트워크 용어가 아리송한 프로그래밍 입문자
) 네트워크 수업 내용을 따라가기 어려운 전공 학부생
) 웹 개발을 하는데 네트워크 기본 지식이 부족한 주니어 개발자
목차
Chapter 01 컴퓨터 네트워크 시작하기
01-1 컴퓨터 네트워크를 알아야 하는 이유
네트워크의 네트워크, 인터넷
개발자가 컴퓨터 네트워크를 알아야 하는 이유
- 프로그램을 만드는 업무에서 네트워크 지식을 활용하는 경우
- 프로그램을 유지 보수하는 업무에서 네트워크 지식을 활용하는 경우
2가지 키워드로 정리하는 핵심 포인트
확인 문제
01-2 네트워크 거시적으로 살펴보기
네트워크의 기본 구조
- 호스트
- 네트워크 장비
- 통신 매체
- 메시지
범위에 따른 네트워크 분류
- LAN
- WAN
메시지 교환 방식에 따른 네트워크 분류
- 회선 교환 방식
- 패킷 교환 방식
[좀 더 알아보기] 주소와 송수신지 유형에 따른 전송 방식
6가지 키워드로 정리하는 핵심 포인트
확인 문제
01-3 네트워크 미시적으로 살펴보기
프로토콜
네트워크 참조 모델
- OSI 모델
- TCP/IP 모델
캡슐화와 역캡슐화
- 캡슐화
- 역캡슐화
PDU
[좀 더 알아보기] OSI 7계층, TCP/IP 4계층은 사실 아무것도 해 주지 않는다
[좀 더 알아보기] 트래픽과 네트워크 성능 지표
- 처리율
- 대역폭
- 패킷 손실
7가지 키워드로 정리하는 핵심 포인트
확인 문제
Chapter 02 물리 계층과 데이터 링크 계층
02-1 이더넷
이더넷 표준
통신 매체 표기 형태
통신 매체 종류
이더넷 프레임
- 프리앰블
- 수신지 MAC 주소와 송신지 MAC 주소
- 타입/길이
- 데이터
- FCS
[좀 더 알아보기] 토큰 링
4가지 키워드로 정리하는 핵심 포인트
확인 문제
02-2 NIC와 케이블
NIC
- NIC의 생김새
- NIC의 역할
트위스티드 페어 케이블
- 트위스티드 페어 케이블의 생김새
- 실드에 따른 트위스티드 페어 케이블의 분류
- 카테고리에 따른 트위스티드 페어 케이블의 분류
광섬유 케이블
- 광섬유 케이블의 생김새
- 싱글 모드 광섬유 케이블
- 멀티 모드 광섬유 케이블
5가지 키워드로 정리하는 핵심 포인트
표로 정리하는 핵심 포인트
확인 문제
02-3 허브
주소 개념이 없는 물리 계층
허브
- 허브의 특징
- 콜리전 도메인
CSMA/CD
5가지 키워드로 정리하는 핵심 포인트
확인 문제
02-4 스위치
스위치
- 스위치의 특징
MAC 주소 학습
VLAN
- 포트 기반 VLAN
- MAC 기반 VLAN
4가지 키워드로 정리하는 핵심 포인트
확인 문제
Chapter 03 네트워크 계층
03-1 LAN을 넘어서는 네트워크 계층
데이터 링크 계층의 한계
인터넷 프로토콜
- IP 주소 형태
- IP의 기능
- IPv4
- IPv6
ARP
[좀 더 알아보기] IP 단편화를 피하는 방법
7가지 키워드로 정리하는 핵심 포인트
확인 문제
03-2 IP 주소
네트워크 주소와 호스트 주소
클래스풀 주소 체계
클래스리스 주소 체계
- 서브넷 마스크
- 서브네팅: 비트 AND 연산
- 서브넷 마스크 표기: CIDR 표기법
공인 IP 주소와 사설 IP 주소
- 공인 IP 주소
- 사설 IP 주소와 NAT
정적 IP 주소와 동적 IP 주소
- 정적 할당
- 동적 할당과 DHCP
[좀 더 알아보기] 예약 주소: 0.0.0.0 vs 127.0.0.1
9가지 키워드로 정리하는 핵심 포인트
확인 문제
03-3 라우팅
라우터
라우팅 테이블
정적 라우팅과 동적 라우팅
- 정적 라우팅
- 동적 라우팅
라우팅 프로토콜
- IGP: RIP와 OSPF
- EGP: BGP
5가지 키워드로 정리하는 핵심 포인트
확인 문제
Chapter 04 전송 계층
04-1 전송 계층 개요: IP의 한계와 포트
신뢰할 수 없는 통신과 비연결형 통신
IP의 한계를 보완하는 전송 계층
응용 계층과의 연결 다리, 포트
- 포트의 정의
- 포트의 분류
포트 기반 NAT
- NAT 변환 테이블
- NAPT
[좀 더 알아보기] 포트 포워딩
[좀 더 알아보기] ICMP
6가지 키워드로 정리하는 핵심 포인트
확인 문제
04-2 TCP와 UDP
TCP 통신 단계와 세그먼트 구조
- 제어 비트
- 순서 번호와 확인 응답 번호
TCP 연결 수립과 종료
- 연결 수립: 쓰리 웨이 핸드셰이크
- 연결 종료
TCP 상태
- 연결이 수립되지 않은 상태
- 연결 수립 상태
- 연결 종료 상태
UDP 데이터그램 구조
9가지 키워드로 정리하는 핵심 포인트
확인 문제
04-3 TCP의 오류-흐름-혼잡 제어
오류 제어: 재전송 기법
- 오류 검출과 재전송
- ARQ: 재전송 기법
- Stop-and-Wait ARQ
- Go-Back-N ARQ
- Selective Repeat ARQ
흐름 제어: 슬라이딩 윈도우
혼잡 제어
[좀 더 알아보기] ECN: 명시적 혼잡 알림
6가지 키워드로 정리하는 핵심 포인트
확인 문제
Chapter 05 응용 계층
05-1 DNS와 자원
도메인 네임과 네임 서버
계층적 네임 서버
자원을 식별하는 URI
- URL
- URN
[좀 더 알아보기] DNS 레코드 타입
7가지 키워드로 정리하는 핵심 포인트
확인 문제
05-2 HTTP
HTTP의 특성
- 요청-응답 기반 프로토콜
- 미디어 독립적 프로토콜
- 스테이트리스 프로토콜
- 지속 연결 프로토콜
HTTP 메시지 구조
HTTP 메서드
- GET - 가져다주세요
- HEAD - 헤더만 가져다주세요
- POST - 처리해 주세요
- PUT - 덮어써 주세요
- PATCH - 일부 수정해 주세요
- DELETE - 삭제해 주세요
HTTP 상태 코드
- 200번대: 성공 상태 코드
- 300번대: 리다이렉션 상태 코드
- 400번대: 클라이언트 에러 상태 코드
- 500번대: 서버 에러 상태 코드
[좀 더 알아보기] HTTP의 발전: HTTP/0.9에서 HTTP/3.0까지
4가지 키워드로 정리하는 핵심 포인트
확인 문제
05-3 HTTP 헤더와 HTTP 기반 기술
HTTP 헤더
- 요청 시 활용되는 HTTP 헤더
- 응답 시 활용되는 HTTP 헤더
- 요청과 응답 모두에서 활용되는 HTTP 헤더
캐시
쿠키
콘텐츠 협상과 표현
4가지 키워드로 정리하는 핵심 포인트
확인 문제
Chapter 06 실습으로 복습하는 네트워크
06-1 와이어샤크 설치 및 사용법
와이어샤크 설치
- 윈도우
- 맥OS
와이어샤크 사용법
- 패킷 캡처
- 와이어샤크 화면 구성
- 패킷 필터링
- 캡처 파일 저장과 열기
2가지 키워드로 정리하는 핵심 포인트
확인 문제
06-2 와이어샤크를 통한 프로토콜 분석
IP 분석
- IPv4 단편화 + ICMP
- IPv6 단편화 + UDP
TCP 분석
- TCP 연결 수립
- TCP 연결 종료
- TCP 재전송
HTTP 분석
5가지 키워드로 정리하는 핵심 포인트
확인 문제
Chapter 07 네트워크 심화
07-1 안정성을 위한 기술
가용성
이중화
로드 밸런싱
[좀 더 알아보기] 포워드 프록시와 리버스 프록시
4가지 키워드로 정리하는 핵심 포인트
확인 문제
07-2 안전성을 위한 기술
암호와 인증서
- 대칭 키 암호화 방식과 공개 키 암호화 방식
- 인증서와 디지털 서명
HTTPS: SSL과 TLS
8가지 키워드로 정리하는 핵심 포인트
확인 문제
07-3 무선 네트워크
전파와 주파수
와이파이와 802.11
AP와 서비스 셋
9가지 키워드로 정리하는 핵심 포인트
확인 문제
정답 및 해설
찾아보기