강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

[연재잡담-02] NAZU의 Codeless Bash Script (고급편1:Module) (GPL)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문



잡담에 앞서 공부는 하시고 오셨는지요^^?
하셨다면야.. 다행이고, 안하셨다면 하시고 오세요^^
(물론 이렇게 이야기한다고 안하신분이 하시는 경우는 드뭅니다.)
흠.. 그러고보니 이런 명언이 생각나네요.
게시물 도망가지 않는다. 단지, 삭제될 뿐이다. (낵아늘:내가늘~)
(가끔 링크가 옮겨져서 안보이는 현상도 있더군요..ㅋㄷ)

주) 초급,중급편은 안씁니다. 공부하세요. ^^

====================================================================
1. NAZU가 자주보는 script 책
====================================================================

NAZU는 책장사가 아닙니다. 그렇다고해서 또, 책저자도 아닙니다.
제가 책쓰면 사주실겁니까^^? 아니잖습니까?

그럼 책소개는? 당연히 없습니다. 그럼 뭘 보겠습니까?
다 여러분이 보시는 거시기 보고 있습니다. ^^
(여기서 거시기란 검색하세요~ ^^ 자주 나오는 거시기가 있습니다.)
단지, 거시기들이 여러개라서 이것 저것 볼뿐이지요.

생각해보니 bash관련해서는 책하나 산적 음는거 같네요.
필요할때는 옆구리찔러 살짝 빌려본다능~

====================================================================
2. 공부안하신 분들을 위해..
====================================================================

하늘은 스스로 하고자하는 자를 돕는다라는 말이 있듯이
배우고자 하시는 분들을 제외하고는 궁물도 없습니다.
rollback 하신 후, 공부하시고 다시 오시기 바랍니다.

====================================================================
3. 청출어람 : papa vs son(nazu)
====================================================================

이번 제목 너무 잘지은것 같습니다. ㅡㅡ)v
어쩌면 헐렁고수님께서 싫어하실지도..쿨럭..;;
(제글은 분명히 헐렁고수님께서 한번쯤은 읽으실듯)
하긴 ㅡ.ㅡ 뜬금없이 이런 제목일리는 없고..

주말에 잠시 Linux Server Admin Bible을 정리하면서
이번 잡담거리가 생각나기에 papa님의 script를 찾아봤습니다.
이전에도 스크립트 부분이 있었는데 이번에도 있더군요..
한번 대강 읽어보니.. 역시.. nazu와 좀 차이가 있었습니다.

헐렁고수님과 조금 다른점은..
고수님께서 짜시는 방법은 hole in one인데 반해
하수놈이 짜는 방법은 with module입니다.
(실제로 저처럼 짜는 사람은 거의 없습니다.)
(멋모르고 gcc 쓰다보니 그렇게 짜게 되더군요..;;)

엥? 하고 생각하시는 분들이 꽤 계실듯 싶습니다.
Module이란, 특정기능을 뚝 때놓은 것이라 말씀드릴수 있습니다.
스크립트를 module화 시켰다면 거창한거라 생각하실수도 있습니다만..
처음 작성시 부터 이렇게 작성하다보니 거창할 것도 없습니다.

1) control-script
2) sub-scripts
3) work-script
4) util-script

수행형식은 간단히 이렇습니다.
control-script를 통해 sub-script를 실행시키고,
sub-script에서 그 내용을 받아서 임의 처리 후,
work-script를 통해 실제 수행을 합니다.

이게 무슨 뜻인지 이해하시는 분께서는 집에 가셔도 좋습니다.
금일의 잡담은 이걸로써 종료되었습니다. 감사합니다. (_ _)

====================================================================
4. 모듈화의 이유
====================================================================

우선 언제나와 마찬가지로 여러분께 질문을 드립니다.

질문 1. 스크립트를 작성하는 이유는?
질문 2. 모듈화를 하는 이유는?

1) 스크립트를 작성하는 이유는?
   a. 단순노동을 줄이기 위해서
   b. 빠른 처리를 하기 위해서
   c. 사람의 실수를 줄이기 위해서

2) 모듈화를 하는 이유는?
   a. 코드의 재사용성을 높이기 위해서
   b. 버그를 줄이기 위해서

그렇습니다. library를 작성하는 이유와 흡사합니다.
(이는 archive library를 뜻합니다. so는 조금 다릅니다.)

====================================================================
5. 모듈화의 진면목, 여러분은 알고 있었다.
====================================================================

콜롬부스의 계란 세우기 프로젝트를 기억하십니까?

"할수있는 사람 손들어봐~?"
하니깐 궁시렁대면서 아무도 손안들다가
계란을 탁~ 하고 깨서 세웠을때, 사람들이 하는 말
"그게 무슨 세운거고~, 그런건 내도 하긋다~!"
그때, 콜롬부스의 충격적인 한마디~
"그라몬 니가 아까 손들제 그렛나? 손도 못든 잡것들이~"

저런 업무를 담당하는 사람을 보통 전문용어로 "기획자"라고 하죠.
가끔은 개발자도 저런일을 한답니다.

콜롬부스의 계란 세우기 프로젝트를 언급한 이유는
이미 여러분도 잘 아시는 부분이기 때문입니다.

echo <== whereis echo           : 어딘가에 있겠지요?
subscript <== whereis subscript : 만들면 되겠죠^^?

눈치빠르신 분들이나, 아시는 분들은 아~~ 라는 탄성을 지르셨을 듯

====================================================================
6. 코드의 재사용성 및 버그를 줄이는 방법으로써의 역할
====================================================================

1. 코드의 재사용성

자, 똑같은 코드가 10번 들어갈때 똑같은 코드를 10번 삽입하는것?
vi에디터로 하면 정말 쉽습니다.
특정 파일에 저장한 후, 그걸 불러들이면 되니까..

하지만 문제는.. 재사용된 코드의 특정 부분을 수정했는데,
다른 부분에도 마찬가지로 수정이 되어야할 경우,
어디에 넣었는지도 오래되어 기억나지 않거나, 후임자가 작업할 경우,
위치를 보고 따라가서 수정을 해줘야하고, 가끔 빼먹을 가능성도 있지요

이럴때 유틸처럼 처음부터 모듈화시켜 프로그램을 해두면,
한방에 에디팅 가능합니다.

물론, 그중에 6개만 변환해야 할 경우,
다른 이름의 모듈로 뚝때서 수정한 후 호출할 모듈명만 바꿔주면 작업끝

가끔 시간남을때, 에디팅해서, 합치는 작업한번하면 사랑받습니다.
단, 버그가 없을 때만 사랑받습니다. 버그가 생기면 미움받습니다.

2. 버그를 줄이른 방법

스크립트라고해서 버그가 없을 수는 없겠지요?
어딘가 구멍이 존재할 수 있다는 신념하에 불철주야 근무하시는 분들처럼
그 어딘가를 찾기위해 테스트를 거쳐야합니다.

예를들어 특정 시스템에서는
수행하기전에 항상 확인을 해보아야 합니다.
이때, 특정 부분만을 확인하기위해서는 여러분은 어떤 수행을 하십니까?

1) 그 코드만 뚝때거나 나머지 코드를 주석으로 막고 실행한다. (초급)
2) 코드를 함수화시켜 호출한다 (중급)
3) 고급 모듈화되어 있으므로, 해당 모듈만 따로 때내서, 확인한다. (고급)

제맘대로 초,중,고급이라 달아서 죄송한 말씀이옵니다만..
쑥스럽지만 저도 저 과정을 거쳤던 것으로 기억납니다.
핑계라면, 가르쳐주는 사람이 아무도 없어서랍니다.

함수화에 대한 내용은 많으면서...
인터넷이나 책들을 들여다봐도, 보통 모듈화된 소스는 없죠^^?
있다해도 찾기 힘들고, 생각해보는 사람들도 거의 없고..

====================================================================
7. 마치며..
====================================================================

이번 잡담의 주제는 Bash Script에 관련된 내용이었습니다.
하지만, 일부러 이렇게 Code 한줄 없는 잡담을 늘어놓았습니다.
처음 말씀드렸다시피, "하늘은 스스로 하고자하는 자를 돕는다"라는 말
리눅서 여러분들께서 마음속에 항상 간직해야할 말이 아닐까 합니다.
리눅서가 아니신 분들도 마찬가지이지 않나 싶습니다.

언젠가부터 Linuxer가 아닌 Coder도 아닌
Reder로써 바라보게된 것 같습니다. 역시 교육학의 힘은 위대합니다.

다음 [잡담연재-03]에서는 실제 코드를 보실수 있을 것입니다. ^^
물론 허접한 스크립트일거지만, 누군가에게 도움이 되지 않을까 합니다.
그전까지, Script 공부 안하신분들은 꼭 하시기 바랍니다.
선무당이 사람잡지 않기를 바라며..

From 어딘가 있을 외로운 Cygnus를 찾는 NAZU가.. ㅡ.ㅡ)v


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  77 명