팔을 쳐서 일을 방해하다 in programming

By | 2012/09/11

  옛날 춘추전국시대의 얘기입니다. 공자의 제자 중 복자천(宓子賤)이라는 자가 어느 지방의 관리가 되어 갔습니다. 그런데 상관인 사람이 두 명의 부하를 같이 보냈습니다. 이는 복자천의 행동을 감시하고자 함이었습니다.

  그러자 복자천은 그 두 사람이 글을 쓸 때 팔을 일부러 쳐서 글씨를 쓸 수 없게 한 후 비웃음을 사게 만듭니다. 그것을 참지 못하고 두 명은 수도로 돌아가게 되고, 그 숨은 뜻을 알아차린 상관은 복자천에게 하고 싶은 대로 수행하고 몇 년 후에 보고만 하라고 명령을 내립니다.

  자세한 얘기는 http://www.sosok.hs.kr/~megi/gosa/l40.htm 에서 확인을 하실 수 있습니다.

 

  여기에서 얻을 수 있는 교훈은 믿음을 가지고 어떤 이에게 일을 시키면 그 믿음대로 믿고 결과를 기다려야 한다는 것입니다. 수시로 감시하며 살펴본다면 일을 제대로 할 수 없다는 문제점이 있기 때문입니다.

  사실 이 교훈은 그리 좋지 않다고 생각합니다. 그러한 믿음을 한 명에게 준다고 하더라도 다른 사람들이 같이 일을 하는 현재 세계에서는 그리 통하지 않기 때문이 아닌가 싶었습니다. 한 명이 선하여도 여러 사람 속에서 혹은 특정 환경에서 그대로 진행하지 못할 수 있기 때문입니다. 따라서 시스템적으로 감시하고 감독하는 것이 중요하지 않나 하는 생각입니다.

 

  하지만 최근 프로그래밍을 하면서 이 고사를 떠올릴 일이 있었습니다.

  저의 프로그래밍 스타일은 앞에서 얘기한 것과 비슷합니다. 즉, 어지간하면 중간에 진행률을 출력하도록 프로그램을 짜는 스타일입니다. 이는 중간에 문제가 발생하였을 경우 어느 부분에 문제가 발생하였는지 좀 더 정확하게 찾기 위함입니다. 평상시 다루는 데이터의 양이 그리 많지 않았기에 출력을 하는 것과 하지 않는 것의 속도 차이는 거의 없었기에 앞에 얘기한 장점을 취하고자 그렇게 한 것입니다.

  그렇지만 최근 대용량의 데이터를 처리하는 프로그램을 만들었습니다. 몇 백기가라는 데이터를 처리하느라 시간이 오래 걸리는 작업입니다. 이 때도 별 생각 없이 모든 진행 과정을 출력하게 만들었습니다. 그러자 진행 속도가 매우 느린 것을 확인할 수 있었습니다. 그 정도가 너무 심하다는 것이 눈에 보일 정도였습니다.

  따라서 이 프로그램을 몇 번이고 살펴보며 신뢰성을 높였습니다. 그러한 후 진행률 출력 횟수를 매우 낮추었습니다. 너무 출력하지 않으면 얼마만큼 진행하였는지를 알 수 없으니 몇 십분에 한 번씩 출력이 되도록 한 것입니다.

 

  이처럼 작은 일을 시킬 때는 일일이 확인하는 것은 일을 진행하는 사람의 입장에서도 별 문제가 없습니다. 하지만 큰 일을 시킬 때는 일일이 확인하는 것은 그리 좋지 않은 방법이라는 것을 고사에서도 알 수 있고, 이처럼 프로그래밍을 통해서도 알 수 있었습니다.

  고리타분한 경험 및 생각이라 글로 간단히 마칩니다. 

2 thoughts on “팔을 쳐서 일을 방해하다 in programming

  1. 고경민

    형 글을 읽다보니까, 코딩 깔끔하게 한다고 해서 모두 좋아지는건 아니라는걸 크게 깨달았네요…(– );;;
    덕분에 앞으로 어떤식으로 코딩을 진행해야할지 좀 감이 오네요 ㅎ

    Reply

Leave a Reply