이번에 새.책.뷰는 내가 쓴 추천사로 갈음한다.
"꽤 오래전, 몇 군데 이직을 고민하던 중 구글의 인터뷰를 본 적이 있습니다. 아직도 기억이 나는 질문 중 하나는 “리눅스의 inode는 무엇이며, 거기에 저장되지 않는 정보는 무엇인지 설명해보라.”는 것이었습니다. 익히 알고 있는 내용이었기에 정답을 말하긴 했지만, ‘구글 같은 첨단 소프트웨어 회사에서 이런 하찮은 질문을 묻다니 지원자에게 골탕을 먹이거나 그냥 까다롭게 하려나 보다.’라고만 생각했습니다. 그로부터 꽤 많은 시간이 흘렀고 IT는 점차 진화하여 이제는 대부분의 비즈니스 애플리케이션이 리눅스, 그리고 클라우드 네이티브 환경에서 만들어지고 유지됩니다. 개발자는 클라우드 네이티브에서 애플리케이션이 돌아갈 수 있도록 컨테이너로 만드는 부분만 관심을 가지면 자신이 만든 프로그램을 어디서든 실행할 수 있기 때문에 리눅스와 같은 운영체제에는 그다지 큰 관심을 갖지 않습니다.
그러다가 정작 성능이 원하는 만큼 나오지 않거나, 컨테이너 데몬의 버전 충돌 같은 오류를 겪고 나서야 자신들이 사용하는 애플리케이션이 돌아가는 환경에 관심을 갖기 시작합니다. 그리고 그 장애를 해결하기 위해서 각종 인터넷 자료나 블로그, 이제는 LLM(Large Language Model), 즉 컴퓨터에 대한 정보를 컴퓨터에게 물어보면서 장님이 코끼리 만지듯 문제의 원인을 찾아갑니다. 해결은 가능하겠지만 엄청난 시간과 노력이 필요합니다.
프로그래머가 구현에만 집중할 수 있도록, 나머지 환경들을 계속 추상화시켜서 추상화의 아래쪽으로 숨겨버리다 보니 정작 프로그래머가 컴퓨터 자체를 모르는 일이 자주 발생합니다. 그리고 이것은 자신이 만든 소프트웨어의 기능과 성능에 아주 좋지 않은 영향을 끼칩니다. 그래서 저도 요즈음에는 프로그래머, 아키텍트 인터뷰를 볼 때 “키보드 A를 누르면 왜 화면에 A가 찍히는지 설명해보세요.” 같은, 간단하지만 컴퓨터와 운영체제를 잘 이해해야 대답할 수 있는 질문을 합니다. 컴퓨터 시스템과 운영체제에 대한 지식이 결국 IT 서비스의 완성도를 높이는 데 아주 큰 역할을 하기 때문입니다.
이 책 『모던 리눅스 교과서』는 컴퓨터 시스템 구조를 이해하기 쉽게 알려줄 뿐만 아니라, 시스템의 다양한 측면을 알아보려 할 때 어떤 명령어를 사용해야 할지를 쉽게 이해할 수 있는 그림들과 함께 상세하게 설명합니다. 제가 질문받았던 inode에 대한 정보와 확인 방법 그리고 의미 등은 말할 것도 없구요. 이 책에 있는 다양한 내용을 기반으로 리눅스 전반에 대한 이해도를 높인다면 퍼포먼스가 높은 프로그래머가 되고, 클라우드 아키텍팅을 하는 데 큰 도움이 될 것입니다 "
갈음하려고 했다가.... ㅋ
정말로 이 책의 내용을 완벽하게 이야기 할 수 있는 사람이 몇이나 될까? 싶다. eBPF, namespace, cgoups, VMM, KVM, CoW등을 정말 몇 줄로 이야기 할 수 있는 사람이 몇이나 될까?
이 책은 정말 간단하게 이야기 한다. 정작 깊이 있게 알려주진 않는다. 하지만 용어나 단어조차 모르는 초보자들한테는 너무 좋은 책이다. 얼마전에 그룹에 있는 젊은 분들한테 VMM, hypervisor, type 0 hypervisor, memory ballooning등의 이야길 하니 나를 '전기 밥솥 쓸줄 아는 할아버지'로 보더라. 하지만 이내 곧 이 단어들을 찾아보고, 그 단어의 깊이와 광활함에 질려버리는 느낌이었다. 하지만 이 책은 굉장히 단출하게 뽑아서 이야기 하는 점이 좋다. 모든 책이 그리고 모든 제품이 엄숙하게 바이블처럼 이야기 하는 세태속에서 (특히나 커널, 시스템, 네트워크는 더 말할 것도 없다) 이 책은 중등교과서 같다. 기초이지만 쉽진 않고, 활용이지만 복잡하지 않다.
그래서 그 만큼 얇다. 가지고 다니기 편하고 서가에 비치해 두기 어렵지 않다.
내가 늘 이야기 하지만 책은 사둔것중에 하나 보는것이다. ㅋ
'O4, 새.책.뷰(새벽에 쓰는 책 리뷰)' 카테고리의 다른 글
디자인, 이것만 알면 쉬워져요. 아냐 더 있긴 해 ㅋ (2) | 2024.03.05 |
---|---|
openapi와 스웨거를 활용한 실전 api설계 (0) | 2023.12.22 |
내.책.뷰. and RIP. (2) | 2023.10.04 |
개발자 온보딩 가이드 (0) | 2023.06.01 |
제품의 탄생 (2) | 2023.05.20 |