네트워크에 약한 프론트엔드 개발자의 일독
저는 프론트엔드 개발자이지만 현업에서 네트워크를 이해하지 못해 혼란을 겪었던 일이 많았어요. 클라우드 환경을 사용하는 것만 익숙했기 때문에, 부끄럽게도 사내 로컬 환경을 사용해야 하는 특정 프로젝트에서 난항을 많이 겪었었죠. 로컬 서버 ip만 알려주었는데 어떻게 접근이 가능한지, 내부에 있는 DB를 어떻게 접근하는지, 로컬 서버 호스팅은 어떻게 가능한 건지 등 모르는 것이 너무 많았습니다. 때문에 네트워크를 이제는 알아야만 하겠다는 계기가 생겼었죠.
웹 개발을 하는 것이 주 업무임에도 네트워크에 대한 지식이 전무했어요. 저는 비전공자이기 때문에 관련 지식을 익힌 적이 없어, 더더욱 가볍게 설명해 주는 도서로 첫 접근을 하고 싶었습니다. 마침 모두의 네트워크 기초를 알게 되었고, 저의 상황에 안성맞춤이라 생각 들었습니다!
‘모두의 네트워크 기초’는 구어체로 이야기를 들려주는 듯한 편안한 구성입니다. 실무에서 가장 흔하게 나오는 프로토콜부터 3방향 핸드셰이크, OSI 계층 등을 접할 때마다 저는 위키피디아를 가장 많이 들여다보았었어요. 사실 정의를 열심히 읽어도 머릿속에 와닿지는 않아 매번 다시 찾아보아야 했습니다. 전문적인 용어로만 딱딱하게 작성된 문어체였기 때문이죠. 하지만 ‘모두의 네트워크 기초’에서는 모든 개념을 이야기로 풀어서 설명합니다. 심지어 이더넷의 CSMA/CD 방식을 설명하기 위해 컴퓨터끼리 눈치 게임을 한다는 표현을 할 정도로, 일상적인 언어를 사용하여 풀어내니 장벽 없이 머릿속으로 전달되었어요.
한 장이 끝나면 복습하기, 즉 괄호 속 용어 문제로 마무리합니다. 그런데 정답 부분의 용어에 대해 본문에서 딱 나누어서 정리해두진 않았어요. 때문에 기억이 나지 않아 내용들을 돌아볼 때도 헤매다가, 결국 관련 내용을 다 읽어볼 때가 많았습니다. 그렇게 문제를 끝내면 뒤이어 용어 정리를 보여주는 구성입니다. 이 흐름이 오히려 학습에 더욱 도움이 되었습니다. 한번 막혀서 다시 짚어보게 만들어 더욱 기억이 오래 남을 것 같아요!
첫 장에서는 네트워크가 무엇인가부터, 네트워크가 필요한 이유, 네트워크를 구성하는 장비 등의 네트워크에 대한 기초 지식을 간단하게 설명해 줍니다. 뜬금없이 어려운 용어나 내용이 나타나지 않고 쉬운 단어로 이루어진 이야기기 때문에 이탈하지 않고 금방 읽어나갈 수 있었어요.
다음 장부터는 OSI 계층에 대해 전체적으로 설명한 후, 한 계층 씩 깊게 들어가는 구성입니다. 저는 항상 OSI 계층은 각각 계층의 단어들만 봐왔지, 그 계층을 왜 나누어야 하는지, 또 의미하는 바는 무엇인지 전혀 이해할 수 없었어요. 그런데 이번에는 가장 하드웨어에 가까운 1 계층인 물리 계층부터, 7 계층인 응용 계층까지의 흐름대로 짚어가니 이해가 잘되었습니다.
모두의 네트워크 기초는 각 개념을 설명할 때 사람들 간에 일어나는 일들로 비유하며 주요 개념을 설명합니다. 가령 프로토콜의 예시가 있습니다. 웹 개발을 할 때 프로토콜이란 용어는 정말 일상적이라 생각해요. 새로운 개념을 접할 때 프로토콜이 나오면 저는 부끄럽게도, 대강 통신 규약이라고만 치환해서 생각했었어요. 틀린 말은 아니지만, 그렇게 문장을 이어서 보면 의미를 정확히 이해하지 못한 영단어를 번역해서 읽는 정도의 받아들임이었습니다. 하지만 대화를 하려는 두 사람으로 비유하여 설명하니 단번에 이해가 되었습니다. 특정 URL에 접근할 때 내가 사용하는 컴퓨터와 해당 URL 간에 미리 정해진 약속이 지켜져야만 접근이 허용되는 거였어요. 단지 서로 다른 주체끼리 대화하기 위해 정해진 약속이라 생각하면 복잡할 것 없더라고요.
또한 모든 설명은 반드시 시각적으로도 함께 이야기를 뒷받침해줍니다. 여기서 좋았던 점은 전문적인 지식을 담고 있음에도 그 표현을 구태여 딱딱하게 하지 않는다는 것이에요. 첨부된 도식화는 컴퓨터끼리의 서로 대화를 주고받는 듯한 표현을 많이 하는데, 덕분에 머릿속에서 한번 더 연산을 거쳐 정리할 필요 없이 단번에 받아들일 수 있습니다.
각 파트에서 가장 핵심적인 용어는 정리가 꼭 마무리 파트에 담겨있지만, 그에 비해 중요도가 덜한 몇 가지 용어들은 비유 혹은 대화를 하는 방식으로 설명이 끝나는 경우가 있었습니다. 덕분에 이해는 쉬웠지만, 이야기 식으로만 머리에 남을 것이 우려되었어요. 맥락은 정립되었어도, 이후 정확히 해당 용어의 정의를 말하기 어려울 수도 있겠다는 생각이 들었습니다. 때문에 본문에서 볼드체로 설명된 모든 용어가 마지막 정리에서 다뤄졌으면 좋을 것 같았습니다.
IP 주소와 MAC 주소, TCP, DNS 등 컴퓨터에서 확인하는 방법과 함께 설명되는 파트에서 모두 윈도우의 방식만 첨부되어 있어 다소 아쉬웠어요. 물론 검색을 통해 찾을 수도 있지만, 맥에서 확인하는 방법도 함께 담겨 있으면 좋겠다는 생각이 들었습니다.
저에게는 완독 이후에도 마음 편히 펼쳐볼 수 있는 네트워크 핸드북이 될 것 같습니다. 개발을 비롯해서 어떤 분야의 전문적인 지식을 담은 서적은 한번 읽었다고 해서 모든 내용을 완벽히 습득할 수 없기 때문에, 결국 두고두고 찾아봐야 하죠. 때문에 저는 이렇게 마음 편히 다시 펼칠 수 있는 책에 장점이 크다 생각해요. 때때로 깊고 풍부한 고중량의 책들은 주위에 두고 펼쳐보기 쉽지 않고 부담스럽기도 합니다. 이 책은 접근성이 무엇보다 장점이고, 또한 대화하는 듯한 문장으로 이루어져 있으니 언제 봐도 부담이 없을 것 같아요!