서버 쉽게 이해하고 싶다면? <그림으로 이해하는 서버 구조와 기술>

길벗 출판사에서 책을 제공 받아 작성한 서평입니다

부담 없이 읽는 서버 이야기

이 책의 가장 좋은 점은 읽는 데 부담이 없다는 것이다. 한 챕터가 짧아서 틈틈이 읽기도 좋고, '언제 다 읽지...'라는 생각보다는 틈틈이 읽다 보면 완독하겠네! 라는 생각이 든다. 그리고 무엇보다 설명이 참 이해가 잘 된다. 먼저 일상적인 것들에 빗대어 설명하고, 그 다음에 기술적인 내용을 차근차근 설명하는 방식이라 이해가 수월하다. '그림으로 이해하는' 시리즈인 만큼 그림도 상세하게 나와 있어서 고개를 끄덕이면서 읽었다.

책의 구성

이 책은 서버 기초 지식부터 시작해 네트워크에 대해서 조금 길게 다루다가, 서버 형태, 보안, 운용에 대해서 다룬다.

네트워크 계층(2장) 내용이 조금 길어서 약간 지루할 뻔 했지만! 꼭 알고 있어야 할 중요한 내용이어서 다시 읽고 싶어질 정도로 설명이 잘 되어 있다. 

책의 목차는 다음과 같다. 각 챕터는 대략 20~40페이지 분량이다. 각 챕터마다 6개에서 10개의 소챕터로 구성되어 있다.

1. 서버 기초 지식 (21페이지)
2. 네트워크 기초 지식 (45페이지)
3. 서버 형태를 알아보자 (31페이지)
4. 외부용 서버를 알아보자 (21페이지)
5. 내부용 서버를 알아보자 (21페이지)
6. 서버 보안을 알아보자 (25페이지)
7. 서버 장애에 대비하자 (29페이지)
8. 서버 운용을 알아보자 (23페이지)

필요한 내용만 이해하기 쉽게

서버 지식 중 필요한 내용만 농축해서 적어놓은 느낌이다. 각 소챕터가 거의 다 2~4페이지로 짧은 편인데도 필요한 내용은 다 담겨있고 이해도 쉽게 잘 되는 편이다. 특히 좋았던 부분은 가상화에 대한 부분이었다. 최근에 Docker를 공부하기 시작하며 가상화에 대해서 제대로 이해하고 있지 못했다는 생각이 들었는데 마침 이 책을 읽고 가상화에 대해 제대로 이해하게 되었다. 적절한 그림도 이해를 돕는 데 큰 역할을 한 것 같다. 

특히 서버 가상화와 서버 컨테이너 방법을 비교해 설명하는 부분이 이해가 잘 되었다.

셰어하우스 장점

서버 컨테이너를 주거 형태에 비유하면 셰어하우스라고 할 수 있습니다. 셰어 하우스는 주방이나 욕실 등 공용 부분을 혼자거 사용할 수 없는 대신, 청소의 번거로움이나 리모델링 비용을 고려했을 떄 입주자가 직접 할 일은 많지 않습니다.

OS는 같아도 되지만, 미들웨어나 앱은 따로 준비하고 싶다

기존 서버 가상화는 호스트 한 대에 가상 머신 여러 대를 구축하여 비용 절감 및 운영 효율화 등을 실현했습니다. 가상 머신은 OS, 미들웨어, 애플리케이션을 모두 탑재해서 기기 자체를 가상화합니다. 예를 들어 다른 OS를 사용하고 싶거나 OS 레벨에서 설정을 커스터마이징하고 싶을 떄 매우 유용한 방법이라고 할 수 있습니다.
반면 OS는 같이 써도 미들웨어나 애플리케이션은 독립적인 환경으로 준비하고 싶을 때가 있습니다. 이 경우 가상 머신에 OS를 탑재하지 않고 미들웨어와 애플리케이션만 따로 떼어 가상화할 수 있습니다. 이런 기술을 서버 컨테이너라고 합니다. 
서버 컨테이너 방식을 사용해도 서버 가상화로 얻을 수 있는 비용 절감, 운영 효율화 등의 장점은 동일하게 누릴 수 있습니다. 서버 가상화와 차이점은 게스트에 OS를 탑재하는 여부입니다. 참고로 서버 컨테이너에서는 '가상 머신'에 해당하는 것을 컨테이너라고 부릅니다.

설명 방식의 매력

먼저 일상적인 것들에 빗대어 설명한 뒤 다음에 기술적인 내용을 설명하는 구성도 가끔 있었는데 이 점도 마음에 들었다. 예를 들어 DMZ에 대해서 설명할 때,

여러분은 눈이 많이 오는 지역에 집 구조가 어떤지 알고 있나요?
눈이 많이 오는 지역에서는 현관문 바로 밖에 지붕으로 덮인 포치(porch)를 만듭니다. 이 포치는 집 안과 밖을 완충하는 역할을 하며, 현관문을 열 때 강한 바람이나 눈이 집 안으로 들어오는 것을 막아줍니다.
(중략)
눈이 많이 오는 지역에 있는 현관 포치처럼 IT 세계에서도 네트워크에 완충지대를 둘 때가 많습니다. 이 완충 지대를 DMZ라고 합니다.

이런 식으로 맨 처음에 환기하면서 글을 시작해서 그런지 전체적으로 읽는 데 부담이 적었다.

 

또한 예를 들어 ARP가 어떻게 MAC 주소를 찾는지에 대해서 설명할 때 다음과 같이 일상적인 예시를 들어 설명한다.

여러분이 모르는 사람을 찾는다고 가정해 봅시다.
예를 들어 회사에서 한 번도 만난 적 없는 영업부 직원 A를 찾을 때는 이렇게 행동할 것입니다.

1. 영업부가 있는 1층에 가서 그 층의 모든 직원에게 "A 있나요?"라고 묻습니다.
2. "제가 A입니다!"라고 대답합니다.
3. A의 특징을 기억합니다.
(그림)

ARP가 IP 주소로 MAC 주소를 검색하는 과정도 마찬가지로 다음과 같이 세 단계를 거칩니다.
이 세 단계를 각각 ARP 요청, ARP 응답, ARP 캐싱이라고 합니다.
1. 같은 네트워크 기기를 전체 호출합니다. (ARP 요청)
...(생략)...

마치며

더도 말고 덜도 말고 딱 필요한 내용만 있는 느낌이라 좋았다. 생소한 개념도 많았지만, 이 책 덕분에 서버 구조를 개괄적으로 이해할 수 있었던 것 같다. 다만 한 가지를 깊게 파고들지는 않는다는 게 장점이자 단점인 것 같다. 여러 가지 개념을 필수적인 내용만큼만 설명하기 때문에 정보량이 많아 한 번에 모든 내용을 기억하기는 어렵다는 생각이 들었다. 

그럼에도 불구하고 이 책을 다 읽으면 네트워크부터 시작해 서버 형태, 운용, 보안까지 폭넓게 공부할 수 있다. 사실 서버에 대해 정리되어 있는 글은 많지만, 이렇게 '서버' 하나의 주제에 집중한 읽는 것은 또 다른 것 같다. 들어만 봤지만 애매하게 알고 있었던 지식들도 조금 정리가 되었다. 서버에 대한 폭넓은 기초 지식을 쌓고 싶다면 강추한다!