리눅스 입문 with 우분투
얼마전 읽은 책 『코드와 살아가기』는 1978년부터 20년이 넘도록 소프트웨어 엔지니어 및 컨설턴트로 일한 엘런 울먼의 에세이이다. 책에는 작가가 컴퓨터에 기본으로 설치된 윈도우를 삭제하고, 리눅스를 설치하는 부분이 있다. 리눅스를 설치하며 윈도우 운영체제가 얼마나 사용자의 자유를 제한하고 있는지 느끼는 부분을 보며 그동안 컴공 필수 과목으로만 생각해왔던 '운영체제'에 대해서 다시 생각해보게 되었다.
나는 태어나서 처음 접한 운영체제가 윈도우였고, 거의 20년이 넘는 시간동안 컴퓨터에 대한 지식 없이 사용해오면서 컴퓨터 === 윈도우
라고 생각해왔다.
그런데 소프트웨어 개발자로 일하게 되면서 고객사에서 윈도우, 맥 뿐만 아니라 다양한 환경에서 컴퓨터를 활용하는 것을 보면서 리눅스에 대해 관심을 갖게 되었다.
그러던 차에 길벗 출판사에서 글또 10기 멤버를 대상으로 책을 지원해주는 이벤트에 당첨되어 리눅스 입문서를 읽어보게 되었다.
글또에서 책 읽기
글또는 글쓰기 모임이지만 '책 읽기'와 궁합이 잘 맞는다고 생각한다. 읽는 것을 좋아하는 사람들이 보통 쓰는 것도 좋아하기 때문이다. (나 또한 읽는 것을 좋아하는 만큼 쓰는 것도 좋아한다.)
이번에는 글또 덕분에 550여 페이지에 달하는 두꺼운 책을 한달에 걸쳐 완독할 수 있었다. '책읽었또'에서 매일 읽은 책을 인증하는 방식이 두꺼운 책을 꾸준히 읽을 수 있게 하는데 도움이 되었다.
책읽는 습관이 몸에 배도록 하루도 빼먹지 않는 것을 목표로하는 독서 소모임
매일 10장(20페이지)의 책을 읽고, 그 안에서 한 문장을 공유하는 방식으로 진행

덕분에 즐겁게 읽을 수 있었다
리눅스와의 재회
학부생 시절, 리눅스의 명령어를 달달외워 시험보는 과목이 있었다. 그땐 운영체제에 대한 이해 없이 시험을 위해 CLI 명령어를 외웠다보니, 리눅스에 대한 첫인상은 부정적이었다. 검정색 프롬프트에 대한 궁금증과 두려움을 갖고 있었기 때문에 공부를 미뤄왔는데 책 첫 페이지의 베타 학습단 후기를 보면서 용기를 얻을 수 있었다.
단순하게 명령어를 외우고 리눅스 사용법을 익히는 책이 아니라, 운영체제에 대해 잘 모르는 사람도 운영체제를 이해하고 리눅스라는 새로운 운영체제를 배울 수 있도록 설명에 공을 들였습니다. - 베타 학습단 후기 중
명령어를 전부 외우는 것이 목적이 아니라 리눅스를 매개로 운영체제에 대한 이해를 높이는데 좋겠다는 생각이 들었고, 실제로 책을 읽으면서도 컴퓨터에 대한 이해도가 높아지는 것을 느꼈다.

아이폰 북; 스콧 켈비, 테리화이트 저. 에이콘 출판. 2009
마치 스마트폰을 처음 사용하시는 노인 분들이 스마트폰 사용법을 책으로 배우는 느낌이 들었는데, 명령어 입력 방법/파일 여는 방법/파일 삭제 방법 등 기본적인 컴퓨터 사용법을 다시 배우는 것 같았다. 새로운 문물이 아닌 몇 십년 전 과거의 컴퓨터 사용법을 배우고 있다니...

좋아! 이걸로 편하게 움직일 수 있겠어!
나루토의 록리가 수련을 위해서 일부러 무거운 모래주머니를 차고 있었던 것처럼, 나도 컴퓨터를 더 잘 다루기 위해 마우스 사용을 제한하는 기분이 들기도 했다.
책의 구성
일단 책은 2개의 파트로 나뉘어져 있다. 파트 1에서는 리눅스에 대한 이해를, 그리고 파트 2에서는 리눅스를 활용하는 법을 상세히 다루는데 단순히 명령어를 달달 외우는 식으로 배웠던 대학 수업과 비교했을 때 나에게 훨씬 잘 맞는 구성이었던 것 같다.
일단 목차만 봐도 책이 다루는 내용이 대략 어떤 것인지 파악할 수 있어서 너무 좋았고, 흐름이 명확해서 많은 양에 압도당하지 않고 읽어낼 수 있었다고 생각한다.
그리고 단순 명령어 설명도 지루하게 풀어내는 것이 아니라 설명이 매우 잘 쓰여있어서 읽으면서 감탄했던 기억이 있다. 대학생 때, 이런 책이 있었다면 수업이 좀 더 즐거웠을지도 모르겠다.
sudo 가 이런 역할이었구나?!
개발 환경을 구성하거나 할 때, 생각없이 복사했던 명령어들이 이제는 무슨 역할을 하는지 알게 되었다.
apt
명령어는 아파트가 아니라 'Advanced Packaging Tool'의 약자로, 리눅스 배포판의 패키지 관리 시스템이고, curl과 같은 패키지를 다운로드 받을 수 있게 한다.
sudo
명령어는 'super user do'의 줄임말로, 일반 사용자가 root 권한을 가진 사용자로 명령을 실행할 수 있게 해주는 명령어인데 작업하다가 뭐 문제가 생겨서 검색해보면 항상 sudo 명령을 사용한 명령어를 쳤던 기억이 난다.
이게 어떤 의미인지 제대로 몰랐는데, 리눅스의 파일 시스템과 유저 시스템, 사용자 권한 시스템을 이해하니 어떤 명령어인지 확 와닿아서 좋았다.
sudo
외에도 root 사용자 권한을 주는 방법으로 su
명령어와 runuser
명령어도 있다는 것을 알게 되었다.
명령어의 나열 형식으로 되어있었다면 금방 지루해졌을텐데 이 명령어들을 사용한 예제가 함께 있어서 끝까지 흥미를 잃지 않고 읽을 수 있었고, 이해에도 도움이 되었다. 그리고 각 장의 마지막에는 '요약'과 '연습문제'가 있어서 읽은 내용을 다시 한번 정리하고 복습한 것도 좋았다. 한 장에 적혀있는 수 많은 정보중에서 내가 꼭 기억해야할 중 요한 정보들이 무엇인지 요약해서 알려주는 것 같아서 나중에 복습할 땐 이 요약과 연습문제만 훑어보면 될 것 같다!
이러다 코딩 천재...?

처음엔 두려움 반, 궁금증 반으로 읽기 시작했던 책인데 책을 덮을 때쯤에는 표지의 이미지처럼 '이러다 코딩 천재...?'하는 욕심도 슬쩍 생겼다. 누가 그렸는지는 몰라도 진짜 잘 그린 것 같다ㅋㅋㅋ!
중간에 Bash 명령어가 나오는 부분에서는 'Bash 문법도 JS만큼이나 근본없구나... 이걸 누가쓰지..?' 싶은 생각이 들었는데 이제 리눅스에 대한 두려움은 다 떨쳐버렸으니 명령어도 직접 쳐보고 실전에 적용해보면서 익히는 시간을 가지면 좋을 것 같다.