『혼자 공부하는 네트워크』는 개발자의 필수 지식인 네트워크를 기본부터 제대로 학습할 수 있도록 돕는 입문서입니다. 다수의 네트워크 전공 서적들을 면밀히 분석하고, 방대한 컴퓨터 네트워크 이론 중에서 핵심 내용만 선별해서 담았습니다. 도서 제목 그대로 혼자 공부하는 초보자를 위해 쉬운 비유와 입문자 맞춤형 예시를 통해 재미있는 학습을 유도하고, 핵심 키워드와 네트워크 계층별 설명으로 쉽게 이해할 수 있도록 했으며, 한눈에 쏙 들어오는 친근한 일러스트를 활용하여 아리송한 개념을 머릿속에서 그려 보며 확실하게 각인할 수 있도록 합니다. 이 책의 1장에서는 네트워크를 거시적인 관점과 미시적인 관점에서 살펴보며 개발자에게 있어서 네트워크 지식의 중요성을 알아봅니다. 2~5장에서는 각 네트워크 계층을 하나씩 살펴보며 관련 개념을 학습하고, 6장에서는 실습을 통해 앞서 배운 내용을 복습합니다. 마지막으로 7장에서는 심화 주제를 다루면서 그간의 학습 내용을 정리합니다. 네트워크 지식의 필요성을 알고 있지만 어떤 내용부터 시작해야 할지 막막하다면, 한 번을 배우더라도 구조와 흐름을 제대로 배우고 싶다면, 혼자서도 쉽고 재미있게 학습하고 싶다면 지금 바로 『혼자 공부하는 네트워크』를 만나 보세요.
30명의 베타리더 검증으로 ‘함께 만든’ 입문자 맞춤형 도서 30명의 베타리더와 함께 입문자에게 꼭 맞는 난이도, 분량, 학습 요소 등을 적극 반영했습니다. 어려운 용어와 개념은 한 번 더 풀어 쓰고, 적절한 예시와 비유로 누구나 이해할 수 있도록 구성했습니다. 또한 일상에서 자주 접하는 상황에 비유해 네트워크의 핵심 구조와 원리를 재미있게 학습할 수 있도록 구성했습니다. ‘혼자 공부해 본’ 여러 입문자의 초심과 눈높이가 책 곳곳에 반영된 것이 이 책의 가장 큰 장점입니다.
저자소개
저자
강민철
강의와 책으로 지식을 나누고, 코드와 논문으로 지식을 발굴하는 개발자이자 연구자이다. 문제 해결과 집필을 즐기고, 조용한 산과 바다를 좋아한다.
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가지 키워드로 정리하는 핵심 포인트 확인 문제
정답 및 해설 찾아보기
출판사리뷰
네트워크 구조와 원리를 제대로 배우고 싶을 때 개발자에게 필요한 네트워크 지식을 얻고 싶을 때 혼자서도 쉽게 네트워크에 입문하고 싶을 때
》 하나, ‘입문자 맞춤형 7단계 구성’을 따라가며 체계적으로 반복하는 탄탄한 학습 설계! 이 책은 네트워크 핵심 구조와 원리를 7단계에 걸쳐 반복 학습하면서 자연스럽게 머릿속에 기억되도록 구성했습니다. 〈핵심 키워드〉와 〈시작하기 전에〉를 통해 각 절에서 배울 대표 개념과 핵심 학습 내용을 선행학습하고, 〈말풍선〉, <도해>, 〈좀 더 알아보기〉를 통해 배운 개념을 반복‧심화해서 학습하도록 합니다. 마지막으로 각 절 마지막 부분의 <핵심 키워드>와 <확인 문제>를 통해 배운 내용을 점검하고 입문자의 학습 장애물인 낯선 용어를 제대로 이해하도록 돕습니다.
》 둘, 네트워크 구조와 동작 원리를 눈으로 따라가며 기억하고 이해하는 학습! 네트워크는 이론 특성상 무언가를 설치하거나 코드를 작성하며 배우는 것이 아닙니다. 복잡한 이론 위주로 배우는 만큼 자칫하면 지루하거나 어렵게 느껴질 수 있는데, 이 책은 네트워크 동작 원리를 단계별 도해와 비유로 표현하여 독자가 눈으로 파악하고, 머릿속으로 그려 보며 개념을 이해할 수 있도록 구성했습니다. 또한, 마지막 고급편에서는 저자와 함께 프로그램을 통한 실습도 진행해 볼 수 있으니 놓치지 말고 도전해 보세요.
》 셋, 혼자, 때로는 함께 학습할 수 있도록 돕는 동영상 강의와 혼공 학습 사이트 지원 & 저자와 소통하는 네트워크 책만으로는 학습하기에 여전히 이해가 어려운 독자들을 위해 저자의 직강 동영상을 지원합니다. 또한 학습을 하며 궁금한 사항은 언제든지 학습 사이트를 통해 저자에게 질문할 수 있습니다. 저자의 답변을 통해 모르는 부분을 배우고, 아는 부분은 한 번 더 확실하게 이해할 수 있습니다. 더불어 혼자 공부하고 싶지만, 자신 없는 독자를 위해 혼공 학습단을 운영하고 있습니다. 혼공 학습단과 함께라면 마지막까지 포기하지 않고 완주할 수 있습니다. ▶ 학습 사이트: https://hongong.hanbit.co.kr ▶ 저자 깃허브: https://github.com/kangtegong/self-learning-cs2
》 넷, 언제 어디서든 가볍게 볼 수 있는 [혼공 용어 노트] 제공! 꼭 기억해야 할 핵심 개념과 용어만 따로 정리한 [혼공 용어 노트]를 제공합니다. 낯선 용어는 입문자의 학습 장애물입니다. 낯선 용어를 이해하고 익숙해지려면 반복 학습이 중요합니다. 『혼자 공부하는 네트워크』는 해당 절에서 배울 내용을 핵심 키워드로 짚어 주고, 본문 키워드 강조와 말풍선 요소를 활용하여 또다시 짚어 주며, 마지막에는 용어 노트로 정리하여 끝까지 반복 복습할 수 있도록 도와줍니다. 용어나 개념이 잘 생각나지 않을 때는 언제든 부담 없이 [혼공 용어 노트]를 펼쳐 보세요. 나아가 여러분만의 용어를 추가해서 자신만의 용어 노트를 완성해 보세요.
이 책은 누구를 위한 책인가요? 》 웹 개발자가 되고 싶은데 네트워크 지식을 전혀 모르는 비전공자 》 네트워크 용어가 아리송한 프로그래밍 입문자 》 네트워크 수업 내용을 따라가기 어려운 전공 학부생 》 웹 개발을 하는데 네트워크 기본 지식이 부족한 주니어 개발자
5월 한빛 리뷰어로 무상으로 받은 뒤 작성한 후기입니다. 하지만, 미리 지르려고 했던 책이기에 공짜라 친절하게 쓴건 아닙니다.
나의 사전지식
이 책을 구매하고자 하는 사람들 입장에서는 과연 나도 혼자 공부할 수 있는 난이도인가가 가장 궁금할 것이다. 우선 내 경우 그냥 아주 간단하게 인터넷에서 osi 7계층과 tcp 4계층에 대해 찾아본 정도이며 그렇다고 그 글을 한번에 이해할 수준도 아니었다. 프록시 방화벽 정도는 알고 있었고, dns 포트 포워딩 같은 용어들은 그냥 들어만 보았다고 말할 수 있는 수준이었다. 즉 네트워크에 대해서 하나도 모르는 수준이며 공부하려다가 포기한 비전공이나 마찬가지인 사전지식을 가지고 있었다.
2. 이 책의 장점
개인적으로 이 책의 장점 중 하나는 물리계층 까지 제대로 설명되어있다는 데에 있다. 예전에는 이렇게 디테일한 책들은 아직 내 수준에는 어려울 것 같다고 느꼈는데, 공부를 하면서 느끼는건 초보자일수록 전체 계층을 볼 때 완전 모르는 계층은 없어야만 한다는 것이다. 이 책은 nic 이미지나 트위스티드 페어 방식이 뭐가 좋을지 cat등급 등등에 대한 부분까지 서술되어있기 때문에 물리계층도 부족한 거는 하나도 없이 끝낼 수 있다.
4. 납득이 가능할 때까지
나는 참고로 기계치다. 그래서인지 7계층을 배울당시 1-2계층이 너무 어렵게 다가왔다. 학교 다닐 때에도 제일 힘들었던 수업이 피지컬 컴퓨팅이니 당연했던 결과였다. 그러나 이 책은 왜 쉴드가 필요한지 왜 쉴드가 있는 케이블이 더 비싼지 광케이블은 어디에 쓰는지가 다 쓰여있어서 나같은 사람도 1-2계층을 납득하고 이해하는 것이 가능하다. 납득을 해야만 공부가 가능한 성격의 사람이라면 이 책을 읽어보는 게 진짜 좋다.
5. 진짜 좋은 책이다
사실 이번 리뷰어 신청 이전에 이 책을 쿠팡 장바구니에 담아두었는데, 이유는 주변 사람들이 입문용으로 무언가를 공부할 때 잘 모르겠으면 doit 사라고 하도 말해서 그렇다. 나는 참고로 이 책을 사고나서 이게 더 마음에 들어서 그림으로 보는 네트워크는 친해진 정글 사람에게 나누어줬다.
다음 학기에 네트워크 수업을 들어야 해서, 미리 공부해볼 겸 서평 도서로 신청하여 읽게 되었다.
내가 네트워크 공부를 싫어했던 이유가, 용어들이 상당히 불친절하다고 느꼈기 때문이다. 긴 단어들을 약자만 나타내다보니, 대문자로 알파벳 몇개 나열한것이 이름이다. 그래서 예전에 NAS나 광고차단용 DNS 서버 만들 때도 직관적으로 용도를 파악하기 쉽지 않은 경우도 많고, 용어의 알파벳 하나가 더 늘어날 때 마다 단어 하나가 더 붙는 셈이니까, 구현하기위해 이해해야 할 것들은 더 늘어갔다.
이 책의 목차를 봐도 그렇다. 무슨 무슨 알파벳 알파벳 숫자 숫자 프로토콜이 잔뜩 나열되어있다. 하지만, 그 알파벳들의 의미를 아직 모르는 사람들 입장에서 앞으로 네트워크를 이해하기 위해 공부할 것들은 이 책에 포함되어있다면 어떨까.
처음 2학년 또는 3학년에 네트워크 전공 수업에 들어가면 당황함과 마주한다. 파이썬도, 머신러닝도 소스코드로 무언가 보인다는 느낌이 얼핏 들지만 네트워크는 우리 실생활 속에 깊숙히 들어 있음에도 '실체'가 없기 때문이다. 이 때문에 처음 전공 수업을 들으면 막막함 속에서 추상적인 네트워크 흐름을 머릿속으로 최대한 따라가보려 시도한다. 그러나 중반 이후가 되면 네트워크란 분야는 나랑 안맞는 친구 같은 존재가 되기 마련이다. 이 책은 추상적이고 형체 없는 사물에게 영혼을 불어 넣는 책이다. 추상적인 용어를 전체적인 그림으로 설명하여 구체적으로 이해하기 쉽게 만들어준다.
✔️ 네트워크는 어느 분야의 개발자에게나 필요한 분야다.
학부 때 네트워크를 포기하는 학생들이 많은 반면에 실제 개발이라는 분야에 나서면 네트워크와 마주하는 일이 정말 많다. 백엔드, 프런트엔드, 앱 개발 등 현재 국내 대다수 개발 분야와 직간접적으로 연결되어 있기 때문에 이미 많은 개발자들이 네트워크 지식의 필요성을 많이 느끼고 있다. 이 책은 혼자 하루에 1~2시간만 투자해서 전체적인 네트워크의 조감도를 완성할 수 있는 책이라고 할 수 있다.
✔️ 기초가 기반이 되어야 응용이 가능하다.
새로운 전공의 지식을 구글, 유튜브 만으로 부분, 부분 접하는 건 정말 위험한 일이다. 부분적인 지식을 나중에 큰 그림을 그리는데 잘못된 방향을 제공해줄 수 있다. 부분적인 지식으로 네트워크 분야를 공부하고 있다면 어느 순간 크게 막히는 일이 발생할 수 밖에 없다. 결국 다시 처음부터 기초를 따라가야만 응용에 도달하기 떄문에 시간적으로나 정신적으로나 소모가 이만 저만이 아니다. 네트워크의 기초를 탄탄히 하여 향후 넓은 범위의 응용도 쉽게 다룰 수 있도록 이 책을 추천한다.
네트워크라는 과목은 양도 방대하고, 그 지식의 깊이도 깊어 초보자가 입문하기 어려운 과목이라고 생각됩니다. 하지만, 이 책은 제목에서 볼 수 있듯이 '혼자 공부하는' 책입니다. 네트워크 과목에서 계층 구조를 따라가며 하나하나 이해하기 너무 좋은 구성으로 이루어져 있습니다. 특히, 그림과 핵심 포인트, 확인 문제를 통해서 내가 정말로 잘 이해했는지 돌이켜볼 수 있는 점이 혼자 공부하기 좋은 도서입니다.
저 또한 네트워크에서 헷갈리는 개념 및 용어들이 많았는데, 이 책을 통해서 그 기초를 잘 다질 수 있는 기회가 되었습니다.
혼공 시리즈는 앞서 컴퓨터 구조와 운영체제를 다루는 책을 통해 접했었는데, 확실히 ‘혼자 공부하는’이라는 타이틀에 걸맞게 친절한 구어체와 삽화로 이해하기 쉽게 구성되어 있음을 느꼈다. 이번 네트워크 관련 도서 역시 마찬가지로, 왜 네트워크를 공부해야 하는지에 대한 근본적인 질문부터 시작하여, 더불어 개발자가 왜 네트워크를 공부해야 하는지에 대한 설명을 이어간다. 물론 이 책을 구매한 개발자라면 이미 그 필요성을 인지하고 있을 가능성이 높겠지만, 이런 접근 방식은 학습에 대한 동기 부여를 하는 데에 효과적이라고 생각한다.
처음 API 통신을 할 때나 작년에 FLUX 패턴을 공부할 때 ‘payload’라는 단어를 접했는데, 화물이라는 이 단어를 명확히 와닿지 않아서 곤란했던 기억이 난다. 이 책에서는 그런 packet, payload, trailer와 같은 의미론적 단어를 하나씩 설명해주고 있기 때문에 더 쉽게 학습할 수 있고, 단순히 정의만 다루는 것이 아니라 책과 택배를 빗대여 설명하고 있어서 이해하기에 용이하다. 그렇다고 깊이가 얕은 것은 아닌 게 ‘좀 더 알아보기’ 코너를 통해 해당 섹션의 내용을 심화적으로 다루거나, 오해가 생길 만한 부분을 한 번 더 바로잡고 있다. 결코 피상적으로 다루고 있지 않다는 점이 인상적이었다.
개인적으로 HTTP 섹션을 좀 더 중점적으로 보게 되었는데, 실무에서 브라우저의 네트워크 탭을 통해 통신 상태를 확인하고 디버깅하는 데에 유용하기 때문이다. 사실 네트워크라는 게 대부분 그렇지만, HTTP 또한 통신을 위한 규약이기 때문에 각각의 의미를 명확히 아는 것이 중요하다. 앞서 의미론적 단어에서도 마찬가지지만 우린 영어권 국가가 아니기 때문에 자연어를 기반으로 정의되어 있더라도 영어와 영어 약어로 구성된 정의들이 쉽게 와닿지 않을 수 있다. 따라서 자주 접하면서 통신해보는 것이 도움이 되고, 그런 면에서 HTTP 섹션은 반복적으로 읽어보면서 하나씩 익숙해져 가기에 좋다는 생각이 들었다.
애초에 이 책은 비기너를 대상으로 하고 있기 때문에 더 컴팩트하거나 심화적인 내용을 원한다면 다른 책이 더 나은 선택지가 될 수도 있다. 앞서 이야기한 친절함 덕분에 대부분의 컨텐츠는 당연히 늘어날 수밖에 없기 때문이다. 하지만 상당히 부드럽게 구성된 책이기 때문에 네트워크를 듬성듬성 학습했다면, 혹은 딱딱한 책보다 상대적으로 가볍게 전체를 훑어보고 싶다면 좋은 선택이 될 책이다.
처음 네트워크에 관해서 공부해야겠다고 마음먹고 여러 서적을 찾아보았는데 나 같은 초심자도 잘 이해할 수 있을만한 마음에 드는 서적들을 찾는 게 쉽지만은 않았다. 우연히 "혼자 공부하는 네트워크" 책을 접하게 되었는데, 프로그래밍을 처음 시작했을 때 혼자 공부하는 시리즈 중 하나인 "혼자 공부하는 C 언어"를 통해 많은 도움을 받았던 경험이 있어 내심 기대를 하고 책을 펼쳐보았다. 목차를 살펴보며 네트워크에 대한 거시적, 미시적으로 먼저 설명하고, 각 네트워크 계층별로 자세히 설명해 준다는 구성이 마음에 쏙 들었다. 책을 처음부터 쭉 읽어보면서, 이 책은 정말로 초심자라도 읽게 쉽게 쓰여진 책이라는 걸 느꼈다. 여러 시각 자료와 조금이라도 어려울 수 있는 개념이 있다면 이해하기 쉽게 비유를 들어주는 점이 네트워크 개념을 좀 더 쉽게 바라볼 수 있게 만들어 준 것 같다. 이 책은 나에게 네트워크 기본서로써 업무를 하면서 네트워크 이론에 대한 리마인드가 필요할 때마다 꺼내어 보게 될 것 같다.
부족한 CS 지식을 채우고자, '혼자 공부하는 네트워크'라는 책을 읽었다. 처음 네트워크는 무엇인지부터 시작 해서 네트워크 계층의 각 단계별로 필요한 내용을 쉽게 풀어내고 있는 책이다. 특히, 다소 어려운 개념들을 비유와 도식화를 통해서 독자로 하여금 이해하기 쉽게 만들었다. 생소한 용어들도 자세히 설명하고 비교하여 처음 네트워크를 공부하는 사람들에게 매우 유용할 것 같다. 다만, 이 책은 정의와 설명에 중점을 두고 있다. 이 책은 정말로 공부를 위한 참고서나 전공서적에 더 가깝다고 느꼈으며, 단순한 입문서를 기대하고 접근한 사람에게는 적합하지 않다. 네트워크를 깊게 공부하기에 앞서 시작하기 좋은 책이라고 생각된다.
책을 읽고나서
나는 비전공자이며, 현재 머신러닝 엔지니어 직무로 일하고 있다. 업무를 수행하다 보며 자연스럽게 백엔드 쪽 업무도 많이 해오며 다양한 문제를 직면했었다. 그동안 문제를 해결하면서도 정확히 각 부분의 역할이 무엇인지 몰라 일일이 수정하며 해결하는 경우가 많았다. 이때마다 CS 지식이 부족하다는 생각이 들었고, 내가 조금 더 이런 부분들을 잘 알고 있었다면 더 빠르게 문제를 해결할 수 있지 않았을까? 하는 생각이 들었다. 막연하게 추측하며 생각하고 있던 기능들을 실제 정의와 도식화된 설명을 보면서, 지나간 일들을 다시금 생각하게 되었다. 일정이 급하다는 이유로, 문제만 해결되면 넘어가곤 했던 탓에 왜 내가 처음에 생각했던 방법은 문제를 해결하지 못했을까?라는 궁금증만 쌓여있던 차에 하나씩 되짚어 보는 시간이었다. 물론, 책 한 권을 읽었다고 내가 갑자기 네트워크의 박사가 되지는 않는다. 다만 네트워크에 대한 전반적인 이해할 수 있었고, 앞으로 업무를 수행하면서 나에게 큰 도움이 될 것이다.
네트워크 관련해서 업무를 해야 할 일이 많은데 이 책으로 어느 정도 기초를 다잡아서 도움이 많이 되었습니다. 책 전반에 걸쳐서 그림과 설명이 자세한 부분이 무엇보다 장점입니다. 네트워크에 대해 처음 접하는 비전공자 또는 학생들에게 추천하고 싶어지는 책이네요.
TCP 계층에 대한 설명을 박스에 빗대서 설명했다
전반적인 네트워크의 기본구조인 호스트, 네트워크 장비, 통신 매체 등 부터 시작해서 네트워크가 연결되는 방식이라던가 OSI, TCP/IP 모델을 다뤘고 이후에는 각 계층별로 설명이 이어진다. 내가 다 알고 있었다고 생각했던 부분들도 복습하면서 다시 기억을 되살릴 수 있어서 좋았고 무엇보다 각 계층들 부분이 쉽고 자세히 설명되어 있어서 놓치고 있던 부분들을 줍줍 할 수 있었던 게 깨알 재미였었다.
예를 들면 MTU라는게 maximum transmission unit이란 건데 얘가 어느 단계에서 사용되고 왜 필요한지 이해가 되었다. 예전에는 이 녀석이 ip단에서 쓰이는지 tcp단에서 쓰이는지에 대한 이해도 없었던 터라 기본 편에서 기본을 좀 잡았다고 생각한다.
내 경우는 tcp이하 ip, 라우터, 패킷 등과 같은 부분에서 기초를 다시 다잡게 되어서 도움이 된 책이다. 네트워크 공부를 시작한다면 다른 분들도 추천하고 싶다.
별점: ★★★★☆ 장점 1. 다수의 네트워크 전공 서적을 면밀히 분석하여, 초보자도 이해하기 쉽게 구성되어 있어서 자습에 적합합니다. 또한, 핵심 내용만을 선별하였기 때문에 복잡한 이론을 쉽게 이해할 수 있습니다.
2. 개발자를 꿈꾸는 이들에게 추천되는 책으로, 네트워크의 거시적과 미시적 관점에서 다양한 지식을 제공하여 전반적인 IT 분야에 대한 이해를 높일 수 있습니다. -> 개발 초보 (저같은) 분들에게 유익할 수 있습니다.
부족한 점 1. 특정 주제에 대한 깊은 이해를 원하는 전문가에게는 부족할 수 있습니다. 이 책은 네트워크의 전반적인 내용을 다루기 때문에, 특정 주제나 전문적인 세부 사항에 대한 내용이 제한적일 수 있습니다 > 고급 개발자들이 읽기에는 핵심 요약적인 내용만 있기 때문에 깊이가 부족할 수 있다고 보여집니다. (주의바랄게요!)
결론 다른 서적과의 비교를 통해 필요한 핵심 내용을 강조하며, 쉽게 이해할 수 있도록 구성되어 있습니다. 개발자에게 네트워크의 중요성을 강조하며, 각 네트워크 계층을 깊이 있게 다루고 있습니다. 또한, 실무에 필요한 실전 예제와 함께 제공하여 실용적인 지식 습득을 돕습니다.
" 한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공 받아 작성된 서평입니다. "
혼공 시리즈는 책을 따라가면 자연스럽게 이와 관련된 책 내용들을 쉽고 재미있게 습득할 수 있고, 여름과 겨울마다 진행하는 혼공단 활동을 통해 다같이 스터디 진행 및 기프티콘 선물, 포인트 증정 등 다양한 혜택을 받을 수 있기로 유명합니다! 저 또한 혼공파를 시작으로 혼공시리즈에 입문하였고, 이후 다양한 스터디 진행 및 베타 리더 참가, 학생들을 해당 책으로 프로그래밍 교육을 하는 등 개인적으로 인연이 깊은 시리즈라고 볼 수 있는데요.
이번에 나온 혼자서 공부하는 네트워크 책은, 입문자를 위한 네트워크 계층 구조와 단계별 설명, 그리고 이와 관련된 용어들과 컴퓨터과학 분야에 대해 자연스럽게 배울 수 있도록 유도하고 있습니다. 저자 강민철님께서 앞서 내주신 책인 혼공컴운을 통해 큰 도움이 되었는데 이렇게 다른 책을 멋지게 내주시기도 했네요!
책은 크게 컴퓨터 네트워크와 물리 계층과 데이터 링크 계층, 네트워크 계층, 전송 계층, 응용 계층, 실습으로 복습하는 네트워크, 네트워크 심화로 구성되어 있습니다. 기본 내용들이 1 ~ 5 장에 구성되어 있어 약간 실습만 따라한다면 내용을 이해하는 데에 있어 큰 어려움이 없고, 이후 고급 과정인 6 ~ 7장에서는 앞서 다루지 못한 내용들을 와이어샤크 등을 활용해 더욱 숙지할 수 있게 됩니다. 이를 통해 이론적 지식에 국한되지 않고 실무 주제 학습이 가능하단 점이 책의 큰 흐름이라 볼 수 있겠습니다.
책의 대상은 네트워크에 대해 관심이 많거나 개발자분들을 대상으로 하는데, 개발자분들 중 네트워크에 직접적인 연관이 있지 않더라도 알면 좋은 내용들이 많다고 책은 이야기 하고 있습니다. 프로그램의 안전성 확보 등을 위해 필요한 네트워크 지식으로 프로그램 생성 및 유지보수에 큰 도움이 된다고 하구요. 뿐만 아니라 네트워크 기본 구조를 통해 자료 구조 등 개념에 대해 더욱 이해하기 쉽다고 합니다.
네트워크의 개념에 대해 미시적이면서도 거시적인 관점에서 보며 어떤 느낌인지, 이를 다루기 위해선 어떤 점들을 고려하면 좋을지에 대해 책은 주로 이야기 합니다. 우리가 알고 있는 내용들이나 용어들이 네트워크에 실질적으로 어떻게 쓰이는지, 그리고 네트워크 분야에 본격적으로 입문하고 싶으신 분들께 도움이 많이 되는 내용들로 구성되어 있네요.
개인적으로 라우터와 전송 계층이라는 개념에 대해 모호했던 와중에 따로 찾아볼 생각까진 하진 않았는데, 이 책을 통해 쉽게 알 수 있어 좋았습니다! 뿐만 아니라 이미 알고 있던 TCP/IP, OSI 7 레이어 등 개념들이 무엇인지 다시 한번 숙지해보면서 네트워크의 기본기를 다잡는 데에 도움이 되었다고 느꼈네요.
정리하자면, 현직 개발자 분들이나 네트워크에 대해 다시 한번 개념을 정립해보고 싶으신 분들, 또는 네트워크에 대해 막연히 관심을 가지셨던 분들께 추천 드리는 책으로, 쉬운 예시와 간단한 예제들을 따라하다보면 네트워크의 개념에 대해 더욱 제대로 숙지할 수 있을 것으로 기대됩니다. 이번 여름 방학 때 진행될 혼공단 스터디를 이번 혼공네트로 해보시는건 어떠실까요?
개발자를 직업으로 선택했을 때 개인적으로 중요하게 생각하는 것은 업무를 진행하면서 물음표를 남기는 습관을 가지면 안된다는 것이다. 물음표는 엉킨 실의 매듭으로 비유할 수 있는데, 물음표를 하나씩 해결할 때 꼬인 매듭이 비로소 풀릴 수 있기 때문이다. 그리고, 꼬인 매듭은 실에 모두 연결되어 있다.
개발자가 다루는 프로그래밍, 컴퓨터(구조), 운영체제, 네트워크는 하나의 실과 같다. 모두가 유기적으로 연결되어 있기 때문에, 어느 하나 놓치지 않고 공부해야 한다. 그래야 매듭을 가장 잘 풀 수 있다.
혼자 공부하는 네트워크는 컴퓨터 네트워크에 관한 책이다. 이 책을 읽고 나면 LAN, WAN, OSI 7계층, TCP/IP 4계층, NIC, MAC주소, 트위스티드 페어 케이블(랜케이블), 광케이블, 허브, 스위치, IP, 라우팅, 라우팅테이블, 포트, TCP, UDP, DNS, HTTP, 이중화, 다중화, 로드 밸런싱, 프록시, L2/L3/L4/L7 스위치, HTTPS, SSL, TLS, 인증서, 무선 네트워크, WIFI, AP, SSID에 관한 물음표를 해결 할 수 있다. 아니, 자신 있게 말할 수 있게 될 것이다.
책의 구성은 크게 2개의 파트로 되어 있는데, 기본편 (1장~5장)에서는 컴퓨터 네트워크의 기본 개념과 네트워크 계층 구조를 단계별로 설명하고, 고급편(6장 ~ 7장)에서는 실습을 통해 기본편을 복습하고, 심화과정으로 네트워크 안정성과 안전화 기법 및 무선 네트워크 내용을 알려준다.
기본편 Chapter 01 '컴퓨터 네트워크 시작하기'는 컴퓨터 네트워크의 개념과 개발자와 네트워크의 상관 관계, 네트워크의 거시적인 관점, OSI 모델과 TCP/IP 모델의 미시적인 관점에 관해 알아보고,
<01-3 | 네트워크 미시적으로 살펴보기, p063>
Chapter 02 '물리 계층과 데이터 링크 계층'에서는 이더넷, NIC, 유선 통신 케이블과 허브, 스위치의 개념 및 동작방법을 설명한다.
Chapter 03 '네트워크 계층'은 IP의 기능과 형태등 IP와 관련된 전반적인 내용과 라우팅을 살펴보고,
Chapter 04 '전송 계층'에서는 포트의 개념과 TCP/UDP 구조와 동작방법에 관해 알아본다.
Chapter 05 '응용 계층'은 DNS와 URL의 동작방법과 HTTP 프로토콜의 특성과 구조에 관해 설명하며,
고급편 Chapter 06 '실습으로 복습하는 네트워크'에서는 와이어샤크 프로그램의 설치 및 사용법을 통해 기본편의 내용이 어떻게 사용되는지 사례를 통해 살펴본다.
Chapter 07 '네트워크 심화'는 안정성을 위한 이중화, 다중화 기법, 안정성을 위한 HTTPS 동작 방법, 무선 네트워크를 설명한다.
마지막으로, 혼공 용어 노트는 용어 중심으로 각 장의 내용을 다시 정리할 수 있도록 도와 준다.
각 장은 소주제 3~4개로 구성되며, 분량은 많지 않다.
먼저 '학습 목표'와 '핵심 키워드'를 제시하고 '시작하기 전에'에서는 배울 주제를 설명한다. '말풍선'과 'note'는 기억해야 할 내용이나 질문, 팁등 저자의 실무 경험을 알려 준다. '좀 더 알아보기'에서는 추가 설명이 필요한 내용을 담고 있다. 설명이 끝나면 마지막에 '마무리'로 내용을 리마인드하고 확인 문제로 마무리한다.
책을 읽으면서, 이 책이 좀 더 일찍 나왔더라면 하는 생각을 수없이 많이 했었다. 기존에 (잘못)알고 있었던 부분을 많이 수정할 수 있었으며, 대충 알고 있었던 부분도 제대로 알게 되었다.
책의 난이도는 개인적으로는 혼자 공부해도 충분할만큼 많이 쉬었다. 특히 책 중간중간 그림과 표가 많은 도움이 되었다.
책 디자인은 혼자 공부하는 시리즈답게 들고 다니면서 볼 사이즈는 아니다.(크다) ^^
개인적으로 책사이즈와 분량, 폰트와 혼공맨, 그림, 표도 모두 보기 좋았다. 시원시원하고 페이지도 잘 넘어간다. ㅎㅎ
이전에 '강민철'저자의 혼자공부하는 컴퓨터 구조+운영체제를 인상깊게 읽었었는데, 역시 선택이 틀리지 않았다. 아직 '혼자공부하는 컴퓨터 구조+운영체제'를 읽지 않았다면, 꼭 읽어보시기를 추천드린다.
저자가 생각하는 개발자 네트워크를 알아야하는 내용을 인용하면서 마무리한다.
프로그램이 네트워크를 통해 다른 장치와 상호 작용하며 실행되는 경우가 많다는 것은 그만큼 개발자가 네트워크를 이용하는 프로그램, 즉 다른 장치와 상호 작용하며 실행되는 프로그램을 개발하는 경우가 많다는 것을 의미합니다. 개발 직군이 네트워크를 제대로 이해해야 하는 것도 바로 이러한 이유 때문입니다. 01-1 컴퓨터 네트워크를 알아야 하는 이유, p029
혼자 공부하는 “혼공” 시리즈의 최신간이 나왔다. 이번 주제는 “네트워크”이다. IT업에 종사한지 꽤 오랜 시간이 지남에 따라 주변에 예비 IT 꿈나무들에게 종종 교재 추천 문의를 받곤 하는데 가장 추천하는 시리즈가 바로 이 혼공시리즈이다.
혼공시리즈는 말 그대로 혼자 공부할 수 있게 구성된 시리즈인데 “혼자”라는 말이 무색하지 않게 다양한 방법으로 혼자 공부할 수 있게 해주는 것이 특징이다.
즉, 내용이 매우 쉽게 기술되어있어 혼자할 수 있고, 심지어는 한빛미디어 채널에 유튜브 강의도 올라와있어 동영상으로도 혼자 학습할 수 있고, 페이스북 커뮤니티에 들어가면 혼공러 모임에 가입하여 동료들과 함께 학습하며 스터디 지원 혜택도 받을 수 있다.
책의 구성도 “혼자” 임하기에 적합한 데 직관적인 학습에 가장 큰 도움을 받을 수 있는 “그림”, 하나의 개념을 가장 구체적이고 가시적으로 이해할 수 있는 “예시”, 추상적 개념을 뚜렷하게 만들어 주는 “비유” 등의 장치가 섞여 있으며 나를 포함한 다양한 베타리더들이 미리 읽어보고 가독성을 높여주는 업그레이드를 거쳤으며 그 외 학습플랜, 연습문제, 용어노트 부록 등의 장치도 포함되어 있어 혼자 쉽게 공부하기에 최적의 교재라 생각한다.
추천하는 대상 독자로는 단연 IT 커리어의 꿈을 가진 꿈나무들에게 가장 추천하고 싶은 책이고, IT 분야의 범위가 매우 다양하기 때문에 특정분야의 고수라 할지라도 주 분야가 아닌 이상 초보 수준일 수 있기에 새로운 유관파트를 학습하고 싶은 IT 입문자들에게도 추천하고 싶다.
그 중 이번에 소개하는 주제는 “네트워크“편이다. 개인적으로 혼공시리즈를 너무 좋아하기에 베타리딩에 자주 참여한다. 다른 혼공시리즈들 또한 블로그에 리뷰를 남겨놓았으니 다른 시리즈의 리뷰를 확인하고 싶다면 블로그에서 검색해보면 된다.
개인적으로 네트워크 지식은 문외한에 가까운지라 이번 책이 개인적으로 네트워크 지식을 향상시키는 데 많은 도움이 되었다. 이 분야의 지식은 NW분야 종사자에게는 단연 필수 지식이겠지만 나 같은 프로그래머에게도 많은 부분에 있어 간접적으로 도움이 된다.
요즘 프로그래밍은 대부분 인터넷이나 네트워크 인프라 위에서 작동하기 때문에 프로그램 개발 시 네트워크에 대한 기본 지식이 필요하며 이는 보안 지식으로도 이어지기 떄문에 이 책으로 기본 유관지식을 튼튼히 할 수 있다는 점이 장점이다.
가장 마음에 들었던 후반 파트인 와이어샤크 편을 예로 들자면 실제 웹사이트에 접속하여 주고 받는 패킷의 형태를 볼 수 있고 주고받는 프로토콜의 특성을 직접 눈으로 확인할 수 있으니 직관적으로 이해하는데 많은 도움이 되었다.
또한 사무실에 돌아다니는 흔히 말하는 LAN선을 식별할 수 있는 능력도 갖출 수 있었다. NW 전문가 분들께 매번 카테코리6 이런 말들을 귀동냥으로 어깨너머 듣기만하다 이 책을 통해 케이블에도 다양한 종류가 있고 상품별로 어떻게 표기되는 것인지 알게되어 신기했다. 뭐든지 모를 때는 참 무서운 법인데 알고나니 별로 겁이 안난다.
내부에 숨겨진 개념들을 쉽게 이해할 수 있다는 점도 장점 중 하나이다. 코로나 이후 택배 주문 횟수가 급격히 증가하였다고 하니 택배에 대해 모르는 독자는 없을 것이다. 네트워크 패킷을 택배에 비유하여 예시를 드니 복잡한 개념도 쉽게 이해할 수 있었다.
혼공 시리즈라고 하지만 나름 전문적인 내용도 꽤 등장한다. 신문에서 주파수를 구매 공개입찰 등의 내용을 봤을 때 솔직히 전체 주파수의 체계를 알지 못했는데 대한민국 주파수 분배도표라는 것이 존재하는 줄 이 책을 통해 처음 알게 되었다.
SSL과 보안에 대한 개념도 마찬가지이다. 공개키와 개인키로 이뤄져 HTTP 내부의 패킷이 암복호화되는 과정을 매우 쉽게 전달하고 있다. 처음 CA 개념이 이해가지 않아 해메였던 대학시절을 생각하면 지금은 이렇게 좋은 교재로 쉽게 학습할 수 있는 시절이니 부럽기도 했다.
전반적으로 네트워크를 처음 배울 때 반드시 알아야 할 내용들을 압축하여 전달하는 책이다. 나아가 심화 단계로 이어질 수 있는 주제들을 후반부에 잘 소개하고 있다.
앞서 언급한 바와 같이 기본적으로 혼공시리즈들이 가지는 학습 능률 장치들이 이번 신간에도 잘 반영되어있음을 확인하였으며 네트워크 문외한인 내게 네트워크에 대한 자신감을 복돋워주고 그간 몰랐거나 아리송한 개념을 정리해 준 고마운 책이다.
눈에 보이지 않아 어려운 네트워크에 대해 눈에 보이듯 쉽게 학습하고 싶은 독자라면 이 책으로 네트워크 학습을 시작하는 것이 후회없는 선택이 될 것이라 확신한다.