[프로그래밍 조언] 경계를 벗어나는 연습을 하라

프로그래밍/프로그래밍 메모장 2006/08/22 13:00
경계를 벗어나는 연습을 하라
2006년 8월 어느날. 정확한 날짜 기억못함.  by Xevious7
http://www.xevious7.com

<< 약간 다른 문체과 형식으로 써봅니다. >>

때는 바야흐로 인터넷의 태동기 PC통신의 절정기  94년 쯤의 하이텔 모 S 동호회
게시판, 피터지는 논쟁이 일어나고 있었다.

그 논쟁의 주제는 바로

Top-down 과 Bottom-Up 방식에 대한 것이였다. 이것이야 말로 해묵은
주제이며 내공이 약한 하수들이 게시판에는 피를 토하고 죽어버리는 전장과 같은
설전과 논리와 반박이 이어지고 있었다.

문제의 발단 OS를 만들고자 하는 소그룹에서 이루어졌다. 그리고 이 소그룹의
진행방식에 대한 하나의 글이 올라오면서 발단된 논쟁이었다.

일단  이 두가지 방식에 대해서 잠깐 이야기 해보자.

탑 다운(Top-down)방식이란 무엇인가?  대부분 이 블로그에 오는분들의
수준을 고려해서 패스하자.!!
(패스 넘겨준다는 본연의 뜻으로 건너뛴다라는 의미로 쓰여짐)
그래도 이 블로그의 고전테마인 복습을 지키기 위해서 짧게 말해본다.

단순하게 말하자면, 어떤 소프트웨어를 만들때
전체적인 큰 부분에서 작은 부분으로 점점 나누어져서 구성하는 방식을
탑-다운 방식이라고 한다. 반대로 작은 부분을 만들어 모아서 구성하는
방식을 바텀업 방식이라고 한다.

좀 다르게 말하자면  큰 디자인을 먼저하고 세세한 디자인을 가는 방식을
탑-다운이라고 하고  세세한 구현으로 부터 큰 것을 만들어 가는 방식을
바텀업 이라고 말할 수 있다.

논쟁의 촛점은 바로 그것이었다.
한쪽에서는 디자인을 중요시하고 한쪽에서는 실제 구현을 중요시 하는 설계시각의
차이가 그 두그룹을 치열하게 대립시키고 있었다.

더 깊게 들어간다면 , 드라이버를 어떻게 구현하고 어떻게 만들고 하는 그러한
부분의 기술과 지식이 훨씬더 중요하다고 말하고
또 한쪽은 그 부분보다는 전체적인 추상적 개념이 중요하다고 말하는 것이다.

결론은  있지 못했고 이 논쟁으로 인해서  소 그룹은 사라졌다.


시간이 흘러서 , 경계를 벗어나서 보니 갑자기 한동안 신문에서 수년에 걸친
추상화와 일반그림에 대한 시각차이로 서로 설전을 벌인 두 미술교수님이
이야기가 생각났다.  웃긴것은 추상화만이 바로 예술이다라고 한 교수님의
넥타이는 장미가 그려진 넥타이요. 추상화는 예술이 아니다라고 한 교수님의
넥타이는 격자의 추상무늬가 그려진 넥타이였다는 것이다.

완전히 바텀업으로 한다고 해도 결국 전체적인 모습이 들어가 있지 않고는
그것들을 서로 조립하지 못할 것이다.
마찬가지로 탑-다운이라고 해도 맨 밑단의 모듈을 구성하지 않으면 완성이
되지 않는 것이다.

경계를 벗어나면 그 둘 모두가 어울려져 있다는 것을 알게 된다. 그 둘이 모두
필요하고 그것을 적절하게 조화하는 것이 바로 올바른 방식이 되는것 이다.

그러나 여전히 그 원의 가운데에 선을 긋고 한쪽에서만 서서
구현이 중요하다만 외치는
또는 설계가 중요하다만 외치는 사람들이 항상 존재한다.

진짜 고수가 되고 싶다면 , 경계를 벗어나는 연습을 하라.

PS. 여기서 말하는 탑-다운과 바텀-업은  프로그램 설계와 구현에 대한 것을
의미하며 다른쪽에서 쓰이는 것과는 틀립니다.
top

Trackback Address :: http://xevious7.com/trackback/125

  1. hey 2006/08/22 13:37 MODIFY/DELETE REPLY

    http://agile.egloos.com/2093309

    서로 다른 고수들의 생각은 같은 곳에서 맞닿곤 하지요 :]

    • xevious7 2006/08/22 15:00 MODIFY/DELETE

      높은 곳에 올라가면 낮은곳이 보이는 이치와 같은거라고
      생각합니다. 진정한 수도자들은 종교를 초월하여
      같은동지가 되는것을 쉽게 볼수 있습니다.
      불교수행자와 수도사가 친한 친구가 되는 경우 같은것입니다.
      덧글 감사합니다. 좀더 정리된 좋은 글을 볼 수 있었습니다.

Write a comment