본문으로 바로가기
반응형

본 리뷰는 한빛미디어의 도서 서평단 <나는 리뷰어다 2021> 프로그램의 일환으로, 무상으로 도서를 증정 받고 작성된 리뷰임을 고지합니다.

개발을 공부하는 입장에서, 항상 공부를 해야겠다는 마음만 어딘가 깊숙히 넣어놓고, 실행에 미처 옮기지 못 한채로 부채감을 느끼는 것들이 몇 가지 있습니다. 예컨대, 셸 스크립트는 그 중 하나입니다.

 

학부 전공 수업을 듣다보면 많은 교수님들께서 기본기를 강조하시며, 그 중에서도 OS, Computer Architecture 등에 큰 무게를 두시곤 합니다. 이번 학기에 OS 수업을 들으며, 얼마 전에도 교수님께서 말씀하신 내용이 기억납니다. 바로, "성공한 학부생 중에서 Linux 안 쓰는 애가 없었다"는 얘기였는데요. 누구나 알만한 좋은 기업에 취업하거나, 괜찮은 랩으로 진학한 학생들 중에서 Linux를 쓸 줄 모르는 학생은 없었다...라는 논조의 얘기로 기억합니다. 

 

AWS에서 Ubuntu 인스턴스를 만들어서 배포에 사용한다던가, 라즈베리파이에서 모종의 작업을 할때, 종종 Ubuntu를 사용하곤 했지만, 정작 제대로 심혈을 기울여 공부해본 적은 없었던 것 같습니다. 특히, Vi/Vim이라던가, 셸 역시 알음 알음 필요한 내용을 검색해서 배우고, 활용할 뿐이지, 제대로 심도 깊게 공부할 생각은 미처 하지 못 했던 것 같은데요.

특히 매번 필요한 내용을 구글링 해서 단순히 타이핑을 할 뿐, 해당 셸 스크립트가 대체 무슨 뜻인지 제대로 알아먹지 못 하는 제 자신이 때때로 한탄스럽기도 했습니다. 마침 크게 관심이 갔던 도서였는데, 이번 기회에 운 좋게 리뷰를 할 기회를 얻게 되어서 정말 좋았습니다.

 

또, 책을 펼쳐 두어장 정도 넘기니, 반가운 분의 성함을 볼 수 있었습니다. 예전에 오픈소스 수업에서 많은 배움의 기회를 주셨던 교수님께서 추천사를 적어주신 내용을 발견했습니다. 문득 생각해보니, 교수님께서 수업시간에 언급하셨던, 멋진 커리어를 펼쳐나가고 계신 여러 개발자 분들 중 한분이 바로 책의 저자분이 아니셨을까... 하는 생각이 드네요 :)

 

1부부터 3부까지, 총 세개로 나누어진 책의 주제는 다음과 같습니다.

1부는 셸 스크립트 기초로, 셸 스크립트에 대한 간단한 소개와 셸 스크립트 기초 문법으로 나누어져 있습니다. 70페이지 남짓한 해당 파트에서는 셸 스크립트의 종류와 쓰임새 등, 간단한 소개 이후 바로 실습으로 넘어가게 되는데요. 사용자는 여기에서 기본적인 셸 스크립트의 사용법과 전역변수/지역변수, 예약변수와 환경변수, 매개변수와 매개변수의 확장 사용법 등을 배워나갈 수 있습니다. 또한, 조건문과 반복문, 연산자, 정규 표현식 등 여느 개발자라면 쉽게 익힐 수 있는 내용으로 되어있는데요. 좋았던 부분은, 각 파트별로 적게는 3개에서 많으면 10개까지, 다양한 케이스에 대한 예제가 풍부하여, 간단히 읽으며 내용을 따라가기만 해도 유용한 지식들을 배울 수 있다는 점입니다. 

 

2부는 좀 더 실용적인 내용으로, 명칭은 "가장 많이 쓰는 리눅스 명령어"입니다. 제목 그대로, 해당 파트는 많이 쓰이는 명령어 위주로 리눅스 명령어 사용법을 안내합니다. 총 5개의 파트로, grep, find, awk, sed, date를 배우게 되는데요. 한 장씩 넘길 때마다 정말 실용적인 지식이 많이 들어있음을 느끼게 되었습니다. 

단순히 리눅스 명령어를 정리해놓은 파트가 아니라, 마치 저자가 제 사수가 되어서 자주 쓰이는 명령어를 알려주고, 이런 것도 할 수 있다, 이런건 더 유용하다... 하면서 부가적인 지식까지 머릿속에 쏙쏙 넣어주는 느낌이었는데요. 예제1, 예제2...로 번호가 붙어있는 예제들이 이런 식으로 한발 더 나아간, 정말 유용한 지식들을 많이 안내하고 있습니다. 예컨대, 문자열을 찾아서 바꾸어주는 명령어인 sed 부분을 보면, 아래와 같은 식으로 여러가지 케이스에 대해 풍부한 사용 예시를 안내하고 있습니다. (이또한 극히 일부일 뿐입니다.)

 

3부는 '예제와 함께 하는 셸 스크립트 활용' 입니다. 2장까지는 본격적인 리눅스 사용자가 아니라면, 셸 스크립트를 배워서 어디 써먹나? 하는 느낌이 약간 들 수도 있는데, 사실 3부가 정말 책의 진국이라고 생각합니다. 셸 스크립트를 실제로 사용할 수 있는 여러 예시들이 등장하는데요. 해당 부는 시스템 구축, 환경설정, 보안, 모니터링, 클라우드 시스템 운영, 퍼블릭 클라우드 사용 파트로 나누어져 있습니다. 

다양한 케이스를 제시하고, 이 케이스에 대해 적절한 셸 스크립트를 작성하는 안내가 이어지는 구조인데요. 평소에 관심이 많은 클라우드 파트부터 먼저 읽었는데, 반갑게도 AWS가 등장합니다.

해당 파트의 주제는 AWS CLI 사용환경 만들기 였는데요, 저 또한 평소에 AWS를 사용하면서 CLI 환경으로 바꿔야지... 마음은 먹어왔는데.. 아무래도 익숙하지 않다보니 매번 GUI Console환경에서 작업하기 일수였습니다. 본 챕터는 AWS CLI를 사용할 수 있는 환경을 셸 스크립트로 구축하는 방법에 대한 안내가 나와있습니다. 또한, CLI를 통해 EC2 인스턴스를 생성하는 등의 안내도 나와있는데요. 이렇게나 간단히 인스턴스 생성이 가능했구나..하고 새삼 놀라운 마음이 들었습니다. 

 

사실 셸 스크립트를 잘 활용하고 싶다는 마음은 언제나 가지고 있었지만, 변명을 해보자면, 딱히 기회가 없었습니다. 리눅스 환경을 쓰는 실무자도 아니고, 아주 가끔 한번씩 정해진 작업만을 위해서 리눅스 환경을 사용하는게 고작이었고, 매번 필요한 명령어는 검색을 통해 찾아서 사용하면 됐으니까요. 본 도서를 한번 쭉 따라 읽으며, 실습을 겸하니, 이제 적어도 셸 스크립트에 대한 두려움이 많이 사라졌습니다. 

매번 구글링을 통해 얻은 자료를 보이는대로 따라 치기만 했던 왕초보에서, 이제 적어도 셸 스크립트의 내용을 파악하고, 아주 약간은 고쳐볼 수 있는 초보의 길로 들어선 것 같은 느낌이랄까요.

 

특히, 아래의 3부 목차 중에서 관심있는 토픽이 눈에 띄는 분들이라면, 해당 도서가 더더욱 도움이 될 것 같습니다.

 

책의 두께 자체는 그리 두껍지 않습니다.

하지만, 내부에는 저와 같은 셸 스크립트 초보자(셸린이..?)에게 무척 큰 도움을 줄 수 있는 내용으로 알차게 꽉꽉, 채워져있습니다.

 

특히 학부생들의 경우에도 OS 수업을 비롯해 여러 전공 수업에서 Linux를 활용할 일이 많을텐데요. 이들 중 상당수는 Vi/Vim으로 문서를 작성하는 것부터 난항을 겪곤 하는데, 만약 해당 도서를 통해 미리 셸 스크립트를 어느 정도 공부한 후라면... 수업 중 발생할 수 있는 수업 외적인 많은 문제를 쉽게 해결할 수 있을 것이라 생각합니다.

 

셸 스크립트, 리눅스에 관심있는 주니어 개발자와 학부생, 모두에게 강력 추천합니다 :)

(학부생이라면, 관심이 없어도 추천합니다.)

반응형