이것이 리눅스다 with Rocky Linux 9 도서 리뷰

Ryan Kim
6 min readMar 26, 2023

현업의 기본이 되는 리눅스 공부하기

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

중간쯤 읽었을 때 네트워크 구성 방법에 대한 페이지 소개

지난 1년 동안의 MLOps 엔지니어로서 수행한 업무들을 곰곰히 생각해보면, 모든 업무의 기본은 Linux였다.

개발하면서 당연한 얘기인데, 무슨 말이냐? 싶겠지만 현대의 운영체제 소프트웨어 상업용 시장에서 리눅스가 독식을 했고, 대기업 등에서 새롭게 출시하는 OS들의 거의 대부분이 리눅스를 커스터 마이징해서 릴리즈하기 때문에 개발자가 커리어를 향상시키면서 사용하는 운영체제는 아마 거의 리눅스만을 사용하는 것이 대부분일 것이다.

그래서 개발에 있어 가장 기본적인 배경 지식을 쌓아야하는 분야지만, 최근 개발자들이 부트캠프나 대학교 동아리 등을 통해서 취업 시장의 문을 두드리는 만큼 리눅스 자체에 대해서는 깊이 있게 공부할 수 있는 기회가 많이 없을 것이다.

나도 비슷한 상황이었고, 대학교 동아리와 부트캠프를 모두 참여 했음에도 리눅스에 대해서는 깊이 있게 알 방법이 없어 이번 한빛 미디어 도서 리뷰 선정 목록에서 “이것이 리눅스다 with Rocky Linux 9”를 선택하게 되었다.

1. Rocky Linux란?

Rocky Linux는 기존에 CentOS의 새로운 버전의 업데이트가 중단되면서 해당 OS의 호환 및 업데이트 목적으로 출시된 linux로 RHEL (Red Hat Enterprise Linux)와 완전 호환되는 버전의 리눅스라고 볼 수 있다.

즉, 기본적으로 RHEL과 CentOS는 같은 리눅스다.

Rocky Linux가 출시된 배경에는 Red Hat이 CentOS 를 인수하고, 이후에 IBM이 Red Hat 을 인수하면서 발생했는데, RHEL이 CentOS와 동일한 버전인데 유료라 판매가 부진해지자 CentOS의 버전 업데이트를 중지하자 이를 대체할 리눅스를 개발했고, 그것이 Rocky Linux에 이른 것이다.

2. 책 난이도 — 최소한의 개발 지식은 있는 상태에서 보자

사실 이 책을 개발 경험이 없는 초심자가 “좋아! 난 이제 개발자가 될꺼니까 지금부터 개발 지식의 베이스가 되는 리눅스를 공부해보자!”라는 식으로 접근하여 본다면 무척 어려울 것이다.

그도 그럴만한 게, 책에서 Rocky Linux를 작업하기 위해 구성하는 환경이 기본적으로 2개의 서버, 리눅스 클라이언트와 윈도우 클라이언트로 가상 환경을 통해 클러스터를 구축하는 형태라 개발과 관련한 기본 지식이 없으면 습득하기 어렵고, 가상 머신 구축도 VM ware를 사용하여 진행하고 있다.

책 서두에 저자가 초심자보다는 개발 경험이 있는 사람들을 대상으로 집필했다고 하는만큼, 개발 지식이 있으면 (최소 프로그래밍 언어 하나 정도는 알고 있다면) 책을 빠르게 읽고 넘어갈 수 있을 것으로 보이고 비로소 리눅스를 배우기 위한 설정들을 해 볼 수 있을 것이라 할 수 있다.

3. 현업에 대한 다양한 지식을 습득 가능

이 책을 읽으면서 얻을 수 있는 지식은 가상 환경에서 실습함에도 거의 대부분 현업에서 활용 가능하다.

예를 들면, 최근에 회사에서 스토리지 서버 구매를 위해 RAID에 대해 많은 이야기를 주고 받았는데, 이 부분에 대한 설명 외에도 구성하는 방법에 대해 안내한다.

운영 체제 관련한 책을 읽으면 RAID에 대해 설명은 이해할 수 있겠지만, 요즘엔 클라우드에서 서비스를 띄우기 때문에 직접 RAID를 구성할 일은 거의 없고, 대체로 GUI나 CLI를 통해 손쉽게 managed되어 있는 서비스에서 구성 가능하기 때문에 경험해 보기 어렵다.

하지만, 이 책에선 가상 환경을 통해 실습하기 때문에 이러한 지식들을 배우고 넘어갈 수 있고, 사용하기에 따라 IaC 툴인 Chef나 Ansible, Puppet 등으로 클러스터 구성을 자동화 시키는 방법에도 응용해서 리눅스를 배포할 수 있기 때문에 본인이 갖고 있는 지식을 마음껏 조합해 볼 수 있다.

그리고 책에서는 짧게 설명하고 넘어가지만 보안 및 소프트웨어 자동 업데이트를 모두 꺼주는 것에 대해 언급한다.

나는 책에서 사실 이 부분이 많이 언급되고 넘어가야하는 내용이라 생각하는데, 클러스터 운영하다보면 분명 새로 반영한 사항이 아무것도 없는데 클러스터 접속이 안되거나 모듈에 이상이 있는 상황이 발생한다.

이 같은 경우, 대체로 찾아보면 보안 및 소프트웨어 업그레이드가 “자동” 모드로 되어 있어 개발자가 퇴근하거나 휴가일 때, 운 안좋게(?) 새 버전으로 업데이트 되면서 기존 모듈과 충돌이 발생해 일어나는 케이스라 볼 수 있다.

나의 경우, 회사 클러스터에서 사용하는 GPU 우분투 서버들이 있는데 갑자기 서버가 꺼지거나 GPU가 CLI에 반응을 안하는 케이스를 종종 목격했다.

이 때 보안이나 소프트웨어 업그레이드(특히 gpu는 nvidia driver 자동 업데이트)가 멋대로 되면서 발생한 이슈였고, 이를 Rollback하느라 무척 당황했던 경험을 했다.

또한 리눅스를 사용하면서 꼭 배우고 넘어가야할 부분이 네트워크 부분이다.

회사에서 IDC를 관리하면서 스위치 이중화, 방화벽 설치, Vlan 구성 및 NFS 마운트 등을 해봤었는데 이 책에서는 NFS 마운트 등을 다루는 사항도 포함되어 있다.

(스위치 이중화나, 방화벽 설치 등은 보통 하드웨어가 있을 때 해주는 부분이라 이건 리눅스라는 주제 하나로 다루기에는 범위가 넘어서 있다.)

그 외에도 네임 서버, 캐싱 서버, DHCP 서버 등을 구성하는 것에 대해 배우는데 하나같이 실제 쓰이는 개념들을 알뜰하게 포함하고 있어 읽고, 실습하고 넘어갈 것들이 무척 많다.

4. 후기

개발하면서 리눅스에 대해 구글링을 통해 파편화되어 배웠던 지식들을 덩어리로 배워가는 느낌이다.

실습 환경을 되도록이면 VMware보다 VirtualBox를 사용해서 구성하려고 했는데 잔잔하게 설정 찾기 어려운 부분이 있다보니 결국엔 VMware를 사용해서 구성했다.

다음 주 중에 새로 구매한 Data Warehouse 서버가 와서 RAID 구성을 해줄 예정인데, 현업에서 실습을 다시하게 될 것 같다.

책 저술하신 분이 한빛 미디어에서 50권 이상 집필하거나 번역하신 능력자 분이시던데, 두꺼워도 좋은 책을 무료로 읽을 기회를 얻어서 무척 기분이 좋다.

5월 달에 집을 이사할 예정인데, 당분간 도서 리뷰 책은 종이 책으로 받아서 새로 구매할 책장에 꽂아놔야겠다.

Ryan

--

--