손자병법과 도덕경, 편작의 이야기로 살펴보는 소프트웨어 개발

semmal의 이미지

손자병법을 통해 손자가 말하고자 하는 바는 "싸우지 않고 이기는 것"이다. 피치못하게 싸울 수 밖에 없다면 "먼저 이겨놓고 싸우는 것"을 말하며, 이길 가능성이 없다면 마지막 선택은 "도망치는 것"을 말한다. 하지만 손자가 말하는 대부분의 내용은 "이겨놓고 싸우는 것"에 집중되어 있다. 손자가 제시하는 싸우지 않고 이기는 방법과 도망치는 방법은 누구라도 할 수 있는 짧은 말이기에 어쩌면 우리의 눈에는 우습게 보일지도 모르겠다. 하지만 싸우지 않고 이기는 것과 도망치는 것은 너무나도 당연하기에 하기 힘든 것이고, 너무나도 간단하기에 말로 풀어쓸 수 없을 뿐이다. 하지만, 병법서이면서도 싸움을 하지않는 방법을 강조하는 이런 근본이 있기 때문에 다른 병법서와 달리 손자병법이 가치가 있는 것이다.

도덕경을 통해서 노자가 말하고자 하는 바는 "편안하게 사는 것"이다. 피치못하게 편안하게 살 수 없다면 "몸조심하면서 사는 것"을 말하며, 그럴 수 조차 없다면 "욕심을 버리는 것"을 말한다. 하지만 역시 노자가 말하는 대부분의 내용은 "몸조심하면서 사는 방법"인 "덕"에 대해서다. 노자가 말하는 편안하게 살면서 때로는 포기할 줄도 아는 "도"는 너무나도 당연하기에 힘든 것이고, 간단하기에 말로 풀어쓸 수 없는 것이다. 유가에서 말하는 "인의예지"가 어려움을 이겨내는 미덕이라면, 도와 덕은 그런 어려움조차 오지 않게 만드는 미덕으로서 가치가 있다.

편작에게는 두 형이 있는데 큰 형은 "병이 생기기 전"에 얼굴 빛만 보고도 병을 고친다. 둘째 형은 "병세가 미미할 때" 더 안좋아지기 전에 병을 고친다. 자신은 "병이 생겼을 때"야 환자의 살을 도려내며 병을 고친다. 하지만 세상 사람들은 편작의 이름만 기억할 뿐 두 형의 존재조차 모른다. 소 잃고 외양간 고치듯 되돌리기 힘든 지경에야 문제를 살펴보는 우리의 삶을 볼 때, 편작의 두 형의 이야기는 여러가지 의미에서 가치가 있다.

누구나 손자가 말하고, 노자가 말하고, 편작이 말하는 것을 들으면 "흥"하고 그저 우습게 생각한다. 누군가는 "그걸 누가 모르나?"라며 화를 낼지도 모른다. 하지만 "싸우지 않고 이기는 것", "어려움이 오지않게 하는 것", "병이 생기기전에 병을 고치는 것"이야 말로 가치가 있는 것이다. 나머지 말이 아무리 길고 상세하더라도 결국 이루고자 하는 것은 그 가치인 것이다. 그들은 그 가치를 진심으로 믿었고 그래서 그렇게 말할 수 있었다.

우리들은 손자병법을 알면서도 싸움을 일삼는 국왕을 본다면 그가 손자병법을 제대로 보지 않았다고 말할 것이다. 도덕경을 읽고서도 굳이 어렵게 사는 사람을 본다면 그가 도를 모른다고 말할 것이고, 편작의 이야기를 듣고서도 소 잃고 외양간 고친다면 혀를 끌끌 찰지도 모른다.

우리는 소프트웨어를 개발하다보면 수많은 이론을 접한다. Extreme Programming, Test-Driven Development, Aspect-Oriented Programming, Agile Development Process, Object-Oriented등의 갖가지 Paradigm, Design Pattern, Design by Contract등 입과 손이 아파서 도저히 알릴 수도 없을 만큼 말이다. 지금에서야 자그마한 깨달음을 얻은 나는 단지 바보 국왕이거나 그저 우매한 한 사람이 되고 싶은 마음은 없다. 이제 생각해본다. 이러한 수많은 이론이 어떠한 가치가 있을까? 어쩌면 이것이 내일 당장 납품해야하는 프로그램의 코딩보다는 더 중요한 문제일지 모른다.

댓글

권순선의 이미지

저도 최근에 손자병법을 읽었는데... 2000년도 더 이전에 쓰여진 글이라고는 도저히 생각되지 않을 정도로 내용이 깊었습니다. 안 읽어 보신 분들이라면 일독을 권합니다...

jhumwhale의 이미지

다른 사람들이 아무리 추천해도
이해하기 힘들거나, 받아들이지 못하면
그림의 떡이라는 생각을 들게끔 한 책이
손자병법이었습니다.

몇 번 읽어볼려고 서점에서 들춰봤는데
제가 받아들일 수 있게 나온 책이 없더군요..

저에게는 손자병법을 만날 운이 아직 오지 않은 듯 싶습니다..크흑 ㅜ.ㅜ

rx78gd의 이미지

아하..그렇구나 옳은 말이다. 오...2000년도 전에 이런말을... 하다가도 좀 지나면 다 까먹고 기억이 안납니다..-_-;;

아무래도 머리가 RAM인가봐요...-_-
-------------------------------------------------------------------------------------------
나에겐 할 수 있다는 의지와
하면 된다는 신념과
해야 한다는 의무가 있다.

http://rx78gd.tistory.com

-------------------------------------------------------------------------------------------
나에겐 할 수 있다는 의지와
하면 된다는 신념과
해야 한다는 의무가 있다.

http://rx78gd.tistory.com

GunSmoke의 이미지


좋은 글 잘 읽었습니다.
감사합니다.

大逆戰

大逆戰

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.