꽤 오래전, 몇 군데 이직을 고민하던 중 구글의 인터뷰를 본 적이 있습니다. 아직도 기억이 나는 질문 중 하나는 “리눅스의 inode는 무엇이며, 거기에 저장되지 않는 정보는 무엇인지 설명해보라.”는 것이었습니다. 익히 알고 있는 내용이었기에 정답을 말하긴 했지만, ‘구글 같은 첨단 소프트웨어 회사에서 이런 하찮은 질문을 묻다니 지원자에게 골탕을 먹이거나 그냥 까다롭게 하려나 보다.’라고만 생각했습니다. 그로부터 꽤 많은 시간이 흘렀고 IT는 점차 진화하여 이제는 대부분의 비즈니스 애플리케이션이 리눅스, 그리고 클라우드 네이티브 환경에서 만들어지고 유지됩니다. 개발자는 클라우드 네이티브에서 애플리케이션이 돌아갈 수 있도록 컨테이너로 만드는 부분만 관심을 가지면 자신이 만든 프로그램을 어디서든 실행할 수 있기 때문에 리눅스와 같은 운영체제에는 그다지 큰 관심을 갖지 않습니다. 그러다가 정작 성능이 원하는 만큼 나오지 않거나, 컨테이너 데몬의 버전 충돌 같은 오류를 겪고 나서야 자신들이 사용하는 애플리케이션이 돌아가는 환경에 관심을 갖기 시작합니다. 그리고 그 장애를 해결하기 위해서 각종 인터넷 자료나 블로그, 이제는 LLM(Large Language Model), 즉 컴퓨터에 대한 정보를 컴퓨터에게 물어보면서 장님이 코끼리 만지듯 문제의 원인을 찾아갑니다. 해결은 가능하겠지만 엄청난 시간과 노력이 필요합니다. 프로그래머가 구현에만 집중할 수 있도록, 나머지 환경들을 계속 추상화시켜서 추상화의 아래쪽으로 숨겨버리다 보니 정작 프로그래머가 컴퓨터 자체를 모르는 일이 자주 발생합니다. 그리고 이것은 자신이 만든 소프트웨어의 기능과 성능에 아주 좋지 않은 영향을 끼칩니다. 그래서 저도 요즈음에는 프로그래머, 아키텍트 인터뷰를 볼 때 “키보드 A를 누르면 왜 화면에 A가 찍히는지 설명해보세요.” 같은, 간단하지만 컴퓨터와 운영체제를 잘 이해해야 대답할 수 있는 질문을 합니다. 컴퓨터 시스템과 운영체제에 대한 지식이 결국 IT 서비스의 완성도를 높이는 데 아주 큰 역할을 하기 때문입니다. 이 책 『모던 리눅스 교과서』는 컴퓨터 시스템 구조를 이해하기 쉽게 알려줄 뿐만 아니라, 시스템의 다양한 측면을 알아보려 할 때 어떤 명령어를 사용해야 할지를 쉽게 이해할 수 있는 그림들과 함께 상세하게 설명합니다. 제가 질문받았던 inode에 대한 정보와 확인 방법 그리고 의미 등은 말할 것도 없구요. 이 책에 있는 다양한 내용을 기반으로 리눅스 전반에 대한 이해도를 높인다면 퍼포먼스가 높은 프로그래머가 되고, 클라우드 아키텍팅을 하는 데 큰 도움이 될 것입니다.
- 공용준 (카카오 서비스플랫폼 부사장, 『카프카, 데이터 플랫폼의 최강자』 저자)
클라우드 컴퓨팅 시대와 더불어 리눅스는 운영체제의 대세가 된 것으로 보입니다. 클라우드 VM에서는 대부분 리눅스로 서비스를 운영하며, 리눅스와 비슷한 개발 환경을 사용하기 위해 개발자들은 맥을 사용하고, 심지어 마이크로소프트는 WSL(리눅스용 윈도우 하위 시스템)을 통해 윈도우에 리눅스 환경을 구현해 놓았습니다. 클라우드뿐만 아니라, 임베디드 시스템에서도 리눅스가 대세가 된 지 오래입니다. 스마트폰에 널리 쓰이는 안드로이드와 스마트 TV의 기반 OS인 WebOS와 타이젠, 안드로이드 TV 모두 리눅스 기반이며, 요즘은 자동차에도 리눅스 기반 OS가 채택되는 추세입니다. 리눅스에 대한 여러 책들을 번역한 역자로서, 여러 가지 리눅스 배포판과 명령어에 대한 전반적인 사항을 모두 다루면서도 두껍지 않아 부담도 덜한 책이 새롭게 출간되어 반갑습니다. 저와 함께 여러 리눅스 책들을 번역한 송지연 선생님이 작업하신 책이라 번역의 품질도 믿을 수 있습니다. 이 책은 현업에서 꼭 필요한 내용을 스피디하게 모두 다루며, 풍부하게 제공되는 예제를 따라 하며 쉽게 익힐 수 있습니다. 특히 3장에서 소개하는 jq 명령은 JSON 형식의 데이터를 많이 다루는 요즘 익혀두면 매우 편리할 것입니다. 컨테이너와 쿠버네티스, 프로메테우스와 그라파나 등 ‘모던 리눅스’에서 중요한 새로운 기술을 설명하며, 클라우드 시대의 모던 리눅스에서 여전히 중요한 네트워킹 등의 고전적인 주제도 충실히 다룹니다. 게다가 각각의 주제를 더 깊이 공부하고 싶은 사람을 위해 추가 자료를 자세히 알려줍니다. 리눅스를 처음 접하는 분들이나 오랫동안 사용했지만 최신 정보가 궁금한 분들, 누구보다도, 클라우드 환경이나 임베디드 환경에서 개발하기 위해 리눅스를 빨리 익혀야 하는 분들께 이 책을 추천합니다.
- 김기주 (엘라스틱 Education Architect, 『리눅스 API의 모든 것』 역자)
1991년 탄생한 리눅스는 역사와 전통을 자랑하는 운영체제이며, 우리가 보이는 곳이나 보이지 않는 곳에서 묵묵하게 자신의 맡은 임무를 수행하고 있다. 주변을 잠시 둘러보자. 임베디드에 특화된 리눅스 커널이 셋톱박스부터 스마트폰에 이르기까지 임베디드 장비에 설치되어 있고, 리눅스 기반의 가상 환경이 여러 앱과 웹을 지탱하는 상당수의 클라우드 서버에 배포되어 있다. 이런 상황에서 앱과 서비스를 제대로 개발하고 운영하려면 리눅스 지식이 필요하기 마련이다. 이 책 『모던 리눅스 교과서』는 현대적인 관점에서 리눅스를 조망한다. 잘 사용되지 않거나 더 이상 유효하지 않은 지식은 과감하게 버리고 과거와 현재를 관통하는 핵심적인 기술을 추려주며, 복잡해진 환경에 맞춰 진화된 현대적인 기능을 추가해 클라우드 시대에 대응하게 만들고, 기존에 사용하던 명령어와 현대적인 명령어를 비교해 리눅스의 발전된 모습을 이해할 수 있게 돕는다. 모든 명령어와 옵션을 다루는 대신 필수 명령어와 옵션을 중심으로 조감하고, 필요할 때 살펴볼 수 있는 참고 자료를 제시하므로 업무에 바쁜 개발자들이 빠르게 감을 잡고 실무에 활용할 수 있게 배려한다. 거의 대다수 리눅스 배포판은 하위 호환성을 무척 중요하게 생각하기에 과거에 배운 지식만으로도 레거시 시스템을 방어할 수는 있지만, 하드웨어와 가상화 기술의 발전과 함께 복잡해진 애플리케이션 의존성과 배포 모델의 변화로 인해 어느 시점에 다다르면 현대적인 기술에 관심을 기울이지 않을 수 없다. 스마트폰과 클라우드 시대를 맞이하여 리눅스 기술을 새롭게 익히려는 신입 개발자뿐만 아니라, 기존에 리눅스를 충분히 경험한 개발자들도 이 책에서 배울 내용이 많을 것이다. 높은 생산성을 발휘하기 위한 도구로서 리눅스의 가치는 앞으로도 지속될 것이므로 더도 덜도 말고 최소한 이 책에 나온 개념과 명령어를 자연스럽게 활용 가능한 수준으로 익혀 두면 좋겠다.
- 박재호 (채널박재호 유튜브, 『클린 코드, 이제는 파이썬이다』 역자)
기다리고 기다리던 ‘리눅스 교과서’가 출간되었습니다! 무릇 교과서라 함은 “무조건 봐야 하는 책”을 뜻하는 단어로 바로 이런 책을 말합니다. 클라우드, 빅데이터를 거쳐 인공지능뿐만 아니라 안드로이드와 사물인터넷까지, 대부분 급부상하는 기술들에는 오픈소스 소프트웨어의 대명사라고 할 수 있는 리눅스가 어디에나 사용되고 있습니다. 그럼에도 리눅스를 제대로 배울 수 있는 책들이 많지 않고, 무엇보다 이 책처럼 ‘사용자’ 위주로 서술된 책은 거의 드물기에 감히 교과서라 불러도 손색이 없어 보입니다. 특정 리눅스 배포판의 명령어들만 나열하거나 특정 프로그래밍 기술에만 국한된 책이 아니라, 리눅스의 처음과 끝, 알파이자 오메가를 다루는 책으로, 리눅스를 구성하는 커널부터 리눅스를 사용하고 운용하기 위한 셸 스크립팅과 애플리케이션들의 실행 환경인 파일시스템까지 방대하게 다루며 친절하고 구체적인 예제들과 함께 리눅스를 통으로 배울 수 있는 참 반가운 책입니다. 특히 책에 나오는 예제들은 특정 리눅스 배포판에 국한되지 않고 표준적으로 사용할 수 있는 예제들이기에 자신이 선호하는 종류의 리눅스로 처음부터 끝까지 학습할 수 있는 것도 이 책의 많은 장점 중 하나입니다. 클라우드와 인공지능의 인기 상승으로 인해 리눅스 개발자뿐만 아니라 엔지니어들까지 그야말로 리눅스 전성시대와는 다르게 리눅스를 통째로 알려주는 책들이 귀해진 요즘, 정말 보석 같은 교과서가 나온 것 같아 리눅스로 밥 먹고 살아가는 사람으로서 반가움을 넘어 고마운 마음이 가득한 책입니다.
- 유명환 (한국 최초 ARM 서버 개발 기업, 엑세스랩 대표 )
IT 환경은 이미 기존 레거시 환경에서 가상화를 거쳐 클라우드 환경과 컨테이너 환경으로 계속해서 변화하며, 진화하고 있습니다. 이러한 변화무쌍한 상황 속에서 운영체제인 리눅스는 클라우드 환경과 컨테이너 환경을 구성하고, 다양한 가상화 자원이 하드웨어 자원을 잘 사용할 수 있도록 지원합니다. 마이클 하우센블라스의 『모던 리눅스 교과서』에는 이렇듯 급변하는 기술 트렌드에 발 맞춰 개발자들이 필수로 알아야 할 운영체제의 개념과 명령어 들이 잘 정리되어 있습니다. 그렇다 보니 이 책은 리눅스 배포판 종류와 상관없이 잘 정리된 리눅스 잡학백과를 읽고 있는 듯한 느낌을 줍니다. 리눅스 운영환경을 사용하거나, 리눅스 위에서 클라우드 환경이나 컨테이너 환경을 사용하는 엔지니어라면 이 책을 통해 리눅스가 어떤 아키텍처로 구성되고 어떤 순서에 의해 실행되는지는 물론, 리눅스의 개념 하나 하나까지 잘 이해할 수 있을 것입니다.
- 장현정 (한국 레드햇 시니어 컨설턴트, 『처음 배우는 셸 스크립트』 저자)
구식의 리눅스 배포 관리자로 활약해온 나이기에, 클라우드 네이티브 기술이 부상하면서 대부분의 개발자들이 리눅스 시스템과 인터페이스하는 방식은 완전히 바뀌었다. 컨테이너부터 eBPF, 그리고 그 이상까지 모던 리눅스의 다양한 측면으로 개발자를 안내해주는 이 책을 강력히 추천한다.
- 크리스 아니슈치크 (클라우드 네이티브 컴퓨팅 재단(CNCF) CTO )