(주절거리는 내용이 많아서 스킵하셔도 됩니다)
도움을 많이 받은 고마운 책이라 추천하고자 글을 쓰게 되었다.
개발자 CS 3대장으로는 운영체제, 네트워크, 데이터베이스가 있다. 글쓴이가 컴퓨터공학과를 다니면서 전공수업을 들을 때 운영체제, 데이터베이스 과목의 경우 내용이 어려워도 재미있게 배웠고, 이후에 도서를 참고하여 공부할 때에도 스트레스 없이 재미있게 공부했다.
하지만 네트워크는 항상 재미도 없고 어려웠던 기억이 있다. 전체적인 흐름 파악도 어려웠고 키워드 자체도 어려워서 다가가기 쉽지 않았다. (OSI 7계층을 먼저 공부하고, 어려운 네트워크 책으로 시작하려고 했던 게 컸던 것 같다) 어려우니 재미도 없고, 재미가 없다보니 자연스럽게 공부도 안하게 돼서 부끄럽지만 작년까지는 거의 네트워크 지식이 없었다.
그러다 이 책을 만나게 되었는데.. 너무 재미있었다. 책을 쓰신 분이 내용을 쉽고 명확하게 전달해주셔서 내용 이해도 너무 잘됐고, 흐름 파악도 쉽게 할 수 있었다. 물론 더 자세한 내용은 더 찾아봐야했지만, 네트워크를 처음 접하거나 너무 어려워서 어떻게 공부해야할지도 모르는 작년의 나같은 사람들이라면 입문하기 최고로 좋은 책이라고 생각했다.
네트워크 노베이스, 네트워크 포기자 수준에서 벗어날 수 있었던 건 이 책 덕분이라고 생각한다. 너무 도움이 많이 돼서 주변 사람들에게 엄청 추천을 하고 다니고 있다. 물론 굉장히 유명한 책이긴 하지만, 더 많은 사람들이 읽었으면 좋겠어서 블로그에도 글을 쓴다.
내용 자체가 쉽고, 비유도 많이 들어서 설명해주시기 때문에 네트워크를 잘 모르거나 처음인 사람들에게 굉장히 큰 도움이 될 거라고 생각한다. 하지만 전체적인 흐름도 알고, 기본적인 내용도 다 알아서 또 배우기 재미없고, 더 상세한 내용이 궁금한 사람들의 경우는 그렇게 추천하지는 않는다.
목차는 다음과 같다.
Chapter 01 컴퓨터 네트워크 시작하기
01-1 컴퓨터 네트워크를 알아야 하는 이유
01-2 네트워크 거시적으로 살펴보기
01-3 네트워크 미시적으로 살펴보기Chapter 02 물리 계층과 데이터 링크 계층
02-1 이더넷
02-2 NIC와 케이블
02-3 허브
02-4 스위치Chapter 03 네트워크 계층
03-1 LAN을 넘어서는 네트워크 계층
03-2 IP 주소
03-3 라우팅Chapter 04 전송 계층
04-1 전송 계층 개요: IP의 한계와 포트
04-2 TCP와 UDP
04-3 TCP의 오류·흐름·혼잡 제어Chapter 05 응용 계층
05-1 DNS와 자원
05-2 HTTP
05-3 HTTP 헤더와 HTTP 기반 기술Chapter 06 실습으로 복습하는 네트워크
06-1 와이어샤크 설치 및 사용법
06-2 와이어샤크를 통한 프로토콜 분석Chapter 07 네트워크 심화
07-1 안정성을 위한 기술
07-2 안전성을 위한 기술
07-3 무선 네트워크
(목차 출처: 한빛출판네트워크 도서구매 사이트)
책 내용은 TCP/IP 계층을 기준으로, 하위계층부터 상위계층으로 내용이 진행된다. 다른 책 중에는 상위->하위계층으로 내용이 적혀있는 경우도 많은데, 나는 하위계층부터 올라가는 게 더 이해가 쉬웠다. (작은 LAN 내부에서 시작해서 세계로 뻗어나가는 느낌) 물론 이건 취향에 따라 선호도가 다를 것 같다.
네트워크가 무엇인지, 범위/메시지 교환 방식에 따라 네트워크를 어떻게 분류하는지 등 네트워크 기본 지식을 알 수 있는 챕터다. LAN/WAN, 회선교환방식/패킷교환방식, 멀티캐스트, 프로토콜 등 키워드를 정리할 수 있다.
또한 OSI 모델과 TCP/IP모델에 대해 알 수 있었다. OSI 모델과 같은 네트워크참조 모델은 지켜야할 규칙이 아니라고 설명되어있었던 부분이 특히 기억에 남았다.
가장 하위 계층인 물리계층과 데이터링크 계층에 대해 설명한다. LAN내부의 통신이라고 생각하면 된다. 여기서 유선 LAN 환경에서 사용되는 이더넷 기술에 대해 알 수 있다.
그리고 허브와 CSMA/CD, NIC에 부여되는 MAC주소와 MAC주소를 학습하는 스위치, VLAN에 대해 배울 수 있다.
내용이 조금 로우레벨이라고 느낄 수 있지만, 핵심만 설명해주기 때문에 가볍게 읽어둬도 좋을 것 같다.
네트워크에서 정말 핵심적인 내용들이 많이 들어있어있는 챕터다. 여기서는 LAN을 넘어 다른 네트워크와 IP주소를 기반으로 통신하는 네트워크 계층에 대해 설명한다.
네트워크 계층에서 사용되는 IP프로토콜(IPv4, IPv6)에 대해 알 수 있고, MAC주소를 찾아오는 ARP 프로토콜을 배울 수 있다. IP주소를 아껴쓰기 위한 기술인 DHCP 동작 과정도 잘 설명되어있다.
그리고 IP주소를 찾아가는 과정에서 라우터들 끼리 라우팅되는 방식(라우팅 프로토콜)에 대해서도 알 수 있다.
챕터3과 더불어 네트워크에서 가장 중요한 챕터라고 생각한다. 4장은 대망의 TCP/UDP를 설명해주는 챕터다. TCP가 어떻게 신뢰할 수 있는 통신을 진행할 수 있는지 잘 설명해준다. 3-way handshake, 흐름제어, 혼잡제어 모두 굉장히 쉽게 배울 수 있다.
그리고 전송계층은 포트번호를 사용하여 원하는 애플리케이션을 찾아가는데, 이 포트가 뭔지에 대해서도 배울 수 있다.
나는 혼잡 제어라는 개념이 너무 어려웠는데, 책에서 너무 쉽게 설명해줘서 빠르게 이해할 수 있었다.
DNS, HTTP에 대한 핵심개념을 굉장히 쉽게 설명해주는 챕터다. TLS, HTTP헤더, 쿠키, 웹캐시 등 개념을 모두 정리하고 갈 수 있다.
챕터6은 직접 와이어샤크를 통해 패킷을 분석할 수 있고, 챕터7은 가용성, 무선네트워크 등의 지식을 간략하게 보고 넘어갈 수 있다.
이 책을 다 읽었다고 네트워크를 마스터했다고 말할 수는 없겠지만, 적어도 전체적인 흐름을 파악하고 다음을 공부하게 해주는 발판이 되어줄 수 있다고 생각한다. 최고의 책이다!
나도 이 책의 저자처럼 설명을 잘하고 싶다. 설명을 잘하는 것도 재능이라고 생각한다. 좋은 책이니 많은 사람들이 읽어줬으면 좋겠다.