책을 펴며
들어가며 화면 뒤에서 일어나는 일
웹페이지가 열리지 않는 날에는 컴퓨터에 붙은 이름이 모두 낯설어진다. DNS, 게이트웨이, 인증서, 캐시. 평소에는 존재하는지조차 몰랐던 것들이 오류 화면에서 한꺼번에 나타난다. 검색해서 찾은 해결법은 제각각이다. 누군가는 공유기를 껐다 켜라고 하고, 누군가는 브라우저를 바꾸라고 한다. 운 좋게 화면이 돌아와도 무엇이 고쳐졌는지는 알기 어렵다. 다음번에 같은 일이 생기면 다시 처음부터 헤맨다.
이 책은 그 막막함을 조금 줄이려고 썼다. 모든 장비의 설정 메뉴를 설명하지는 않는다. 대신 내가 누른 버튼과 상대편 서버 사이에 무슨 일이 벌어지는지, 어디까지 확인했고 어디부터 모르는지 구분할 수 있는 지도를 만든다. 지도를 가진 사람도 길을 잃는다. 다만 무작정 모든 골목으로 뛰어들지는 않는다.
IT라는 말에는 컴퓨터의 부품부터 회사의 업무 시스템까지 너무 많은 것이 들어 있다. 네트워크만 따로 공부하면 서버가 응답하지 않는 이유를 놓치고, 프로그램만 공부하면 느린 연결을 코드의 잘못으로 생각하기 쉽다. 그래서 이 책에서는 컴퓨터 한 대의 안쪽에서 시작해 집 안의 연결, 인터넷의 경로, 웹 서비스, 클라우드, 운영의 순서로 범위를 넓힌다. 뒤에 나오는 내용을 이해하는 데 필요한 질문을 앞에서 하나씩 마련한다.
읽는 동안 제품 이름보다 경계를 눈여겨보면 좋겠다. 문자와 바이트의 경계, 내 컴퓨터와 공유기의 경계, 암호화가 끝나는 지점, 요청이 데이터로 저장되는 순간. 장애는 종종 그 경계에서 생긴다. 서로 다른 담당자가 같은 단어를 다른 뜻으로 쓰거나, 한쪽은 끝났다고 생각한 일을 다른 쪽은 아직 시작하지 못했을 때다. 기술을 이해한다는 것은 이런 차이를 말로 설명할 수 있다는 뜻이기도 하다.
컴퓨터를 전공하지 않았어도 읽을 수 있도록 구성했다. 처음 보는 약어는 앞뒤 문장에서 뜻을 풀고, 계산은 단위를 붙여 따라간다. 그렇다고 모든 내용을 쉬운 비유만으로 바꾸지는 않았다. 우체국 비유가 도움이 되는 부분도 있지만, 실제 네트워크에는 편지를 복사하거나 순서를 바꾸거나 잠시 보관하는 장치가 있다. 비유가 멈추는 자리를 함께 설명해야 나중에 생기는 오해가 적다.
책 속 회사와 장애 상황, 숫자는 이해를 돕기 위해 만든 가상의 사례다. 특정 기업에서 실제로 겪은 일처럼 꾸미지 않았다. 실습은 자신의 컴퓨터 또는 명시적으로 허가받은 시험 환경에 한정한다. 회사 장비에 접속해 보거나 남의 주소에 명령을 보내는 것은 이 책의 실습이 아니다. 운영 중인 서비스를 실험대로 삼지 않는 태도도 기술의 일부다.
명령 예시는 정답을 외우기 위한 암호가 아니다. 실행 전 무엇을 읽고 무엇을 바꾸는지 설명한다. 운영체제와 도구 버전에 따라 출력은 달라질 수 있다. 화면이 책과 다를 때는 실패했다고 판단하기 전에 그 차이가 이름인지, 표시 형식인지, 실제 상태인지 구분하자. 모르는 옵션을 붙여 다시 실행하는 것보다 현재 결과를 기록하는 편이 나을 때가 많다.
공식 표준과 제작자의 문서는 각 장의 참고 자료에 연결했다. 이 책은 그 문서를 번역해 이어 붙인 책이 아니라, 독립적으로 작성한 설명과 연습으로 구성한 입문서다. 기술은 바뀐다. 특히 요금, 서비스 제한, 보안 설정의 기본값은 책 한 권으로 고정할 수 없다. 원리를 이해한 뒤 실제 환경의 문서를 확인하는 습관을 권한다. 오늘의 답을 오래 붙잡는 것보다 답을 확인할 방법을 갖추는 편이 더 오래 간다.
처음부터 끝까지 읽어도 좋고, 당장 궁금한 장을 펼쳐도 좋다. 다만 장애 진단 장이 급하더라도 주소, DNS, TCP, HTTP를 다룬 부분은 함께 읽어 두자. 그 네 가지를 서로 다른 질문으로 분리하는 것만으로도 막연한 “인터넷이 안 돼요”가 관찰 가능한 문장으로 바뀐다. 이 책의 목표는 복잡한 말을 능숙하게 하는 사람이 아니라, 다음에 무엇을 확인할지 차분하게 고를 수 있는 독자를 만드는 데 있다.