2012년 9월 11일 화요일

make: phony target

Phony Targets


"make의 타겟과 동일한 이름을 가진 파일과 충돌을 피하고, 퍼포먼스 개선을 하기 위해서 사용한다. " 라고 하는데 말이 어렵다. 하나 하나 뜯어 보자

make에서 타겟이란?
make를 구성하는 기본적인 형태는 다음과 같다.

target: prerequisite1 prerequisite2 ...
        command


make는 target을 생성하기 위해 prerequisite들이 update되었는지를 확인한 후 command를 사용하여 target파일을 update한다. 실제 예를 들어 설명해보겠다.

test: test.c
      cc -o test test.c

위의 예제에서 target은 test가 되고 prerequisite는 test.c가 된다. 그리고 command는 cc -o test test.c가 된다.  make는 test.c가 변했는지를 확인한 후 test.c에 변경된 내용이 있다면 cc -o test test.c를 사용하여 test라는 파일을 새롭게 작성할 것이다.

타겟과 동일한 이름을 가진 파일과 충돌을 피하고?

clean:
      rm *.o

위의 예제에서는 target과 command는 있지만 prerequisite가 존제하지 않는다. 이럴 경우 만약 clean이라는 파일이 있다면 prerequisite가 존제하지 않기 때문에(prerequisite가 변경되었는지 판단을 할 수 없기 때문에) make는 update된 내용이 없다고 판단하고 command를 수행하지 않는다. 어려운 말로 묵시적 규칙(Using Implicit Rules)이라고 한다.

그래서 다음과 같이 clean이 가짜 목적물(target 파일이 생성되지 않는 목적물)이라는  규칙을 사용하여야 된다 .

.PHONY: clean
clean:
      rm *.o

퍼포먼스 개선은?

실제 파일의 존재 여부를 신경쓰지 않고 command를 수행하기 때문에 실제 파일이 존재 하는지 않하는지 검사하는 루틴이 make에서 제거된다. 따라서  성능적 효과를 볼 수 있다는 이야기...

2012년 9월 9일 일요일

yum: repositore 추가 하기


Webtatic Yum Repository

The Webtatic Yum repository is a CentOS/RHEL repository containing updated web-related packages. Its main goals are:
  • to provide CentOS/RHEL administrators with the latest stable minor releases of web development/hosting software, which are not provided in CentOS/RHEL distribution minor releases.
  • to serve as an additional installation option for some of Webtatic’s projects.
All packages are signed using GnuPG, and are verified using the Webtatic GPG key:
Installation

To set up the repository, install the webtatic-release RPM:

CentOS/RHEL 6:




rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm

CentOS/RHEL 5:
rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm

Additional information
The RPMs are built from the also provided SRPMs. The Mock build system is used to build both i386 and x86_64 RPMs which satisfy the base, updates and extra repositories of CentOS, which are set up in the base installation of CentOS.

CentOS/RHEL 6 usage
As of el6, Webtatic avoids using the same package names as the base repositories that CentOS/RHEL 6 uses, so that packages are not implicitly automatically upgraded without consent. This also means that the repository can be run enabled=1.

To install packages you just need to use the correct package name as described in the packages wiki:




yum install package-name

CentOS/RHEL 5 usage
It is recommended to use the “enabled=0″ parameter in the webtatic.repo file (which is provided in this state wherever it can be downloaded/installed on this site). This can be used to limit which packages you would like to update, as you may prefer to keep some packages at their CentOS-provided versions.

Packages can then be installed using the flag –enablerepo=webtatic to explicitly enable the repository for only that command, e.g.:









yum install --enablerepo=webtatic package-name








  
http://www.webtatic.com/projects/yum-repository/

2012년 8월 26일 일요일

사서삼경(四書三經)을 공부하는 이유

우리가 흔히 얘기하는 사서삼경이란 사서와 삼경을 하나로 통칭하는 말로, 옛날에 글공부를 하는 사람이라면 반드시 익혀야 할 유학(儒學)의 기본 경전으로 7개의 책명(七書)을 지칭한다. 오늘날에도 공부를 하는 데 있어서 순차적 과정이 있듯이 옛날에도 순차적 과정에 따라 소학을 마친 뒤에는 칠서, 곧 사서삼경을 차례대로 공부해 나갔다. 그 이유와 궁극적인 목표는 무엇인지 알아보자.

사서(四書)에 해당하는 대학(大學) ․ 중용(中庸) ․ 맹자(孟子) ․ 논어(論語)는 공자의 문인 또는 후대의 현인이 지은 글이다. 이에 반해 삼경(三經)은 시경(詩經) ․ 서경(書經) ․ 역경(易經, 흔히 周易이라 함)으로 공자가 직접 손을 대었다. 성경현전(聖經賢傳)이란 말로 나눠 볼 수 있는데 사서는 ‘현인의 전(傳)’에 해당하고, 삼경은 공자가 직접 편찬하였으므로 ‘성인의 경(經)’에 해당한다. 다만 주역의 경우 예외적으로 성인 공자가 지은 십익(十翼)을 대전(大傳)이라 하여 전(傳)으로 본다. 이것은 역(易)의 괘를 긋고 글을 붙인 복희씨와 문왕 ․ 주공이 공자보다 앞선 시대의 성인들이므로 이들을 먼저 받들고 높이는 것이 예(禮)에 합당하기 때문이다.

칠서 가운데 맨처음 배우는 글은 대학으로 중용과 서로 표리(표리)를 이룬다. 대학이 겉이라면 중용은 속이고, 중용이 겉이라면 대학은 속이 되는 것이다. 이 사서삼경을 놓고서 단적으로 말한다면, 대학은 ‘착할 선(善)’, 중용은 ‘정성 성(誠)’, 맹자는 ‘옳을 의(義)’, 논어는 ‘어질 인(仁)’으로 말할 수 있고, 시경은 사무사(思無邪 : 생각에 간사함이 없음)로서 ‘바를 정(正)’, 서경은 백성을 다스리는 데 가장 중요한 ‘공경 경(敬)’, 주역은 음양불측(陰陽不測 : 음과 양으로 헤아리지 못함)의 ‘귀신 신(神)’으로 요약할 수 있다.

대학에는 삼강령(三綱領)과 팔조목(八條目), 즉 세 가지의 강령과 여덟 가지의 조목이 있는데, 강령이 뿌리하면 조목은 그 가지가 된다. 삼강령은 명명덕(明明德)과 신민(新民 : 경문에는 親民, 경문을 해설한 전문에는 新民으로 풀이), 지어지선(止於至善) 세 가지로서 밝은 덕을 밝히는 것(明明德), 백성을 새롭게 해주는, 즉 모두 새로운 백성을 만들어주는 것(新民), 그리고 지극히 선한 데 그치는 것(止於至善)을 가리킨다. 이 세 가지 강령은 ‘벼리 강(綱)’, ‘옷깃 령(領)’, 즉 그물로 말하면 벼리에 해당하고 옷으로 말하면 옷깃에 해당한다.

팔조목은 격물(格物) ․ 치지(致知) ․ 성의(誠意) ․ 정심(正心) ․ 수신(修身) ․ 제가(齊家) ․ 치국(治國) ․ 평천하(平天下)이다. 격물(格物)은 모든 사물에 부딪쳐보는 것으로 ‘이를 격(格)’자 그대로 이른다는 뜻이다. 내가 이 세상에 살면서 온갖 사물과 마주하고 살아야 하는데, 모든 사물을 ‘사물은 사물이고 나는 나’ 하고 본체만체한다면 사물의 이치를 알지 못하여 답답한 사람이 된다. 그래서 그러한 이치를 알려고 접촉을 하는 것이다.

치지(致知)는 격물한 다음 그 속에 있는 이치를 알아내는 것으로 ‘이룰 치(致)’와 ‘알 지(知)’ 곧 앎을 이루는 것입니다. 이렇게 앎을 이루었으면 성의(誠意), 곧 뜻을 성실히 가지게 된다. 뜻을 성실히 가짐에 따라서 정심(正心), 곧 마음을 바로하게 된다. 수신(修身)은 마음을 바로해서 몸을 닦는 것이다. 자기 몸을 닦은 다음에는 제가(齊家), 곧 집을 가지런히 하는 것이다. 수신도 못한 사람이 제가할 수 있고, 제가도 못하는 사람이 치국할 수 있느냐는 말들을 한다. 제가 이후에는 치국(治國), 곧 나라를 다스리고, 나라를 다스린 뒤에는 평천하(平天下), 즉 천하를 평치하는 데에 이르게 된다.

이러한 여덟 가지 격물 ․ 치지 ․ 성의 ․ 정심 ․ 수신 ․ 제가 ․ 치국 ․ 평천하를 하나하나 체계적으로 설명한 책이 대학이다. 대학에서 이러한 삼강령이나 팔조목에 대한 공부를 하다보면 밖으로 정신이 산만해지므로 대학 다음에는 안으로 정신을 집중하기 위해 중용을 공부한다.



그 머릿장에는 “천명지위성(天命之謂性)이요 솔성지위도(率性之謂道)요 수도지위교(修道之謂敎)니라”고 되어 있는데, 하늘이 우리에게 명해준 것이 성품이므로 곧 천명지위성이고, 하느님에게서 타고난 성품을 그대로 따라가는 것이 길(道)이므로 곧 솔성지위도이고, 그 성품을 따르는 도를 잘 닦아 나가 마름질해놓는 것이 가르침이므로 곧 수도지위교이다.



도를 잘 닦아 나가는 것, 즉 마름질하는 것이 하나의 교육적인 가르침(敎)이 되는 것이다. 성(性) ․ 도(道) ․ 교(敎), 여기에서 시작하는 중용을 공부하다보면 안으로 정신집중이 잘된다. 그래서 중용의 핵심을 ‘정성 성(誠)’ 한 글자로 표현하는데, 이렇게 해서 대학의 선(善)과 중용의 성(誠)은 겉과 속이 된다(內誠外善).

그런데 중용만을 공부하면 속으로 육조배포(六曹配布)만 했지 밖으로 발표를 못할 우려가 있으므로 표현력을 기르기 위해서 다음에 맹자를 공부한다. “맹자(孟子)ㅣ 견양혜왕(見梁惠王)하신대, 왕왈(王曰) 수(叟)ㅣ 불원리이래(不遠千里而來)하시니 역장유이리오국호(亦將有以利吾國乎)잇가?” (맹자가 양혜왕을 찾아가시니까 양혜왕 하는 말이, 노인네가 천릿길을 멀다 않고 이렇게 날 찾아오셨으니, 앞으로 우리 나라를 이롭게 해주시렵니까?) 이렇게 ‘이로울 리(利)로 말했다. 이에 대해 “맹자(孟子)ㅣ 대왈(對曰) 왕(王)은 하필왈리(何必曰利)잇고? 역유인의이이의(亦有仁義而已矣)니이다” (맹자가 답하시기를 왕은 하필 이를 말하시오? 또한 인의가 있을 뿐입니다) 하였다. 인의(仁義)를 설명하는 것으로 시작하여 맹자를 공부하면 표현력이 좋아지고 발표를 잘하게 된다. 참으로 호변(好辯)이다. 그래서 예로부터 맹자 7편을 읽은 사람하고는 말하지 말라는 이야기가 있다.

그러나 거기에서 그치고 말면 말로만 한몫 보기 쉽고 말만 앞세울 수가 있으므로 이를 행동에 옮겨 실천하라고 논어를 가르친다. 논어는 위기지학(爲己之學)으로서, 남을 위해서나 남한테 잘 보이려고, 또는 배운 것이 많음을 남한테 보여주려고 공부하는 것이 아니고 남이야 뭐라 하든 나 스스로 사람이 되기 위한 공부를 하는 것이다. 논어 첫 대목에 보면 “자왈(子曰) 학이시습지(學而時習之)면 불역열호(不亦說乎)아! 유붕(有朋)이 자원방래(自遠方來)면 불역낙호(不亦樂乎)아! 인부지이불온(人不知而不慍)이면 불역군자호(不亦君子乎)아!” (공자 말씀에 배우고 때때로 다시 익히면 또한 기쁘지 않으랴! 나를 알아주는 벗이 먼 곳에서 오게 되면 또한 즐겁지 않으랴! 남들이 나를 알아주지 않아도 성내지 아니하면 또한 군자가 아니랴!)고 하였다.

또한 논어를 보면 안자(顔子)가 공자에게 인(仁)을 여쭈니까 극기복례(克己復禮), 즉 자기 몸의 편벽된 기질과 사사로운 욕심 때문에 인을 행할 수 없으니 이를 다 이겨내고서 하늘로부터 본래 타고난 예를 회복해야 한다고 말씀하시며 “일일극기복례(一日克己復禮)면 천하귀인언(天下歸仁焉)이라” (하루라도 극기복례를 잘하면 온 천하가 인으로 돌아간다)고 하였다. 공자는 이런 사람이 있다면 인을 아주 잘 하는 사람으로 인정해주겠다고까지 말씀하셨다.

논어를 공부하면 참 점잖아지고 행동을 잘합니다만 좀 고리타분한 데가 있게 된다. 본래 사람은 이성(理性)만 있는 것이 아니라 감성(感性)을 아울러 갖추고 있으므로 흥도 제때에 풀어야 하는데 그걸 못하는 것이다. 그리고 “남녀칠세부동석(男女七歲不同席)이라”(남녀가 일곱 살이 되면 한자리에 앉으면 안 된다) 해서 어려서부터 이성교제를 엄격히 규제하고, “신체발부(身體髮膚)는 수지부모(受之父母)라”(몸과 터럭은 모두 부모에게 받은 것이다)고 해서 어떻게 손톱을 깍아내고 머리털을 베어낼 수 있느냐고 한다. 그래서 이렇게 너무 고지식한 데에서 탈피하고 흥을 좀 풀라고 시경을 가르친다.

시경의 첫 구절에는 쌍쌍이 끼룩끼룩 울며 물가에 노니는 물수리들을 보고서 하는 말이, “관관저구(關關雎鳩)ㅣ 재하지주(在河之洲)로다. 요조숙녀(窈窕淑女)ㅣ 군자호구(君子好逑)로다”(한번 만나 제 짝을 정하면 다시 다른 짝을 구하지 않고 늘 쌍쌍이 노니는 저 물수리처럼 요조숙녀는 군자의 좋은 배필이니 서로 만나야 한다)고 하였다. 이 시구는 주나라 문왕(文王)과 그 후비(后妃)인 사씨(太姒)를 두고 한 말인데, 시경의 이 글귀에 따라 덕성과 행실이 훌륭한 여자를 요조숙녀라 하고 그러한 남자를 구자라고 일컫는 것이다. 또 “참치행채(參差荇菜)를 좌우류지(左右流之)로다”, 즉 마름나물을 이리저리 구하듯이 요조숙녀를 자나깨나 찾고 구해서 결국은 만나 “요조숙녀(窈窕淑女)를 금슬우지(琴瑟友之)로다”, 즉 거문고 뜯고 비파 뜯어가며 서로 즐긴다고 하였다.

이렇게 시경을 배우며 흥을 푸는 데만 빠지면 나라가 어떻게 되는지 또 정치가 부패하는지 나는 모른다 하고서 ‘흥야(興也)라, 부야(賦也)’라‘하며 낙관적이고 낭만적으로만 놀게 된다. 그래서 백성과 나라를 생각하고 정치를 할 줄 알라고 서경을 가르친다.

“왈약계고제요(曰若稽古帝堯)한대 왈방훈(曰放勳)이시니 흠명문사(欽明文思)ㅣ 안안(安安)하시며 윤공극야(允恭克讓)하사 광피사표(光被四表)하시며 격우상하(格于上下)하시니라”, 저 요임금의 세상을 다스린 덕을 생각해보니 햇빛과 같은 광명함이 온 누리에 가득찼다는 내용이다.

이 서경에는 이제삼왕(二帝三王)의 치천하지대경대법(治天下之大經大法), 즉 천하를 잘 다스린 요순과 삼대(하 ․ 은 ․ 주)의 시조인 우임금 ․ 탕임금 ․ 무왕이 세상을 다스린 큰 벼리와 큰 법이 있으므로 이를 공부하면 정치도 할 줄 알게 되지만 앞일은 몰라 막상 눈 뜨고 앞 못 보는 봉사나 다름없다. 그래서 앞을 멀리 내다보아 정치를 잘 하고 사람이 생을 영위하는 데도 미래를 예측해가면서 슬기롭게 살아보라고 주역을 가르친다.

‘건(乾)’ 하면 하늘이 열리고 ‘곤(坤)’하면 땅이 열리며, 또 ‘원(元)’코 하면 화창한 봄에 만물이 파릇파릇 싹터 나오고, ‘형(亨)’코 하면 여름 더위에 무럭무럭 자라고, ‘이(利)’코 하면 서늘한 가을 기운에 결실을 맺고, ‘정(貞)’하니라 하면 모두 땅 속에 수장(收藏)된다. 그 원형이정 춘하추동 생장수장으로부터 배우는 주역, 이 주역을 배우면 드디어 완전한 인격이 이루어진다는 것이다. 모든 학문이 여기에서 다 끝나기에 주역이 칠서의 우두머리이며 끝을 이루는 책이 된다.

사서삼경이 아주 오래된 옛 글이기는 하지만 오늘날에도 여전히 유효한 내용이 담긴 보배로운 글이다. 켸켸묵은 먼지를 털어내고 차근차근 배워 익혀 나간다면 현대문명이 가진 많은 문제점들을 해결할 수 있는 실마리를 찾는데 큰 도움을 주리라고 본다. 누가 알랴, 알라딘의 마술램프가 될런지...



[산사에 향기 혜룡스님]