C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[16002] 도대체, OOP가 모길래 ?
류종택 [ryujt] 3994 읽음    2009-04-27 09:54
OOP, 디자인 패턴, 리팩토링...
다소 지겹다면 지겨운 주제일 수도 있다.

하지만, 나의 경우에는,
오랫동안 강의를 하고, 공부를 해오면서도
아직도 무엇인가 부족하다는 느낌이다.

그런데, 놀랍게도,
OOP, 디자인 패턴, 리패토링 그까짓것 이라고 생각하는 개발자들을 간혹 만나게 된다.
물론, 우리는 표현의 차이에서 서로를 오해할 수 있는 빌미를 제공하고 있다.
하지만, 필요 이상으로 OOP 등의 필요성을 낮게 평가하는 경우가 종종 있는 듯 하다.

무엇인가에 익숙해지기 시작하면, 대상을 잘안다고 바로 착각하기 쉽다.
부부나 친구의 관계도 그러하다.
가장 어렵고 힘든 이야기는 가족과 친구에게 하기 힘들다.
어찌보면 가장 가까운 이가 가장 멀리 떨어져 있는 존재일 수도 있다.

  *****************************************************

  어떤 이가 친구 앞에서 음악을 연주하고 난 후,

      "이 곡이 어떤가?"
      "그 곡의 의미를 가르켜줄 수 없나?"

  그러자 그는 다시 한 번 연주를 처음부터 되풀이 한 후,

      "이게 바로 이곡의 의미야!"

  *****************************************************

대상을 이해한다는 것은 시간이 필요하다.
그저 무의미한 시간일지라도 숙성에 도움이 된다.

  ********************************************************************************
 
  "우린 우리가 길들이는 것만을 알 수 있는 거란다" 여우가 말했다.
  "사람들은 이제 아무 것도 알 시간이 없어졌어.
   그들은 상점에서 이미 만들어져 있는 것들을 사거든.
   그런데 친구를 파는 상점은 없으니까 사람들은 이제 친구가 없는 거지.
   친구를 가지고 싶다면 나를 길들여줘"

  "그럼 어떻게 해야 하는거지?" 어린 왕자가 물었다.

  "참을성이 있어야 해" 여우가 대답했다.
  "우선 내게서 좀 떨어져서 이렇게 풀 숲에 앉아 있어.
   난 너를 곁눈질해 볼꺼야. 넌 아무 말도 하지 말아.
   말은 오해의 근원이지. 날마다 넌 조금씩 더 가까이 다가앉을 수 있게 될꺼야....."

  다음날 어린 왕자는 그리로 갔다.

  "언제나 같은 시각에 오는 게 더 좋을 꺼야" 여우가 말했다.
  "이를 테면, 네가 오후 네 시에 온다면 난 세시부터 행복해지겠지.
   네 시에는 흥분해서 안절부절 못할 꺼야.
   그래서 행복이 얼마나 값진 것인가 알게 되겠지!"

  ********************************************************************************

그저 피상적인 앎의 시작도 "아는 것"에 포함시킬 수 있다고 하자,
그렇지만 여전히 "아는 것"과 "할 줄 아는 것"에는 커다란 차이가 있다.
누구나 배트를 휘둘러 공을 쳐내는 "이론" 자체는 쉽게 이해할 수 있지만,
실재로 멋지게 공을 쳐내기 위해서는 수없이 헛 방망이질을 해야 하는 것처럼...

스스로 코딩에 적용해보고,
이미 적용한 것은 다시 살펴보고,
다시 부족한 이론을 찾아 공부하고,
그러한 과정을 수없이 반복하지 않는 한,
진정한 이해도 진정한 성장도 있을 수가 없다.

그리고, 스스로가 성장하지 못한 채 경력만을 쌓으며 타성에 젖게 되면,
모든 것이 다 허망하고 쓸 때 없어 보이는 것이 당연하다.

미꾸라지는 바가지 정도의 물만으로도 헤엄치기에 부족함이 없다고 한다.

마치 산에 오를 때,
그 높이에 따라 보이는 정도가 다르듯이,
자신의 능력에 따라, 모든 것의 의미가 달라진다.

어쩌면 오해의 근원은
OOP의 진정한 힘이 규모가 크고 복잡한 프로젝트에서 발휘되기 때문일지도 모른다.

소규모 작은 프로그램에서는 막코딩이 휠씬 위력적일 경우가 많다.
아직 OOP의 위력이 발휘될만한 프로젝트를 경험하지 못한 경우에,
아마도 무용론에 가까운 주장을 할 수 있지 않을 까 하는 생각이다.

시간에 쫓기기 때문에 제대로 할 여유가 없기 때문이라는 변명도 있을 수 있다.
상당히 현실적이며, 80% 공감한다.
하지만, 제대로 하지 못하기 때문에 쫓기는 경우가 더 많다고 생각한다.
그리고, 현실적이고 객관적인 80%의 실패자의 뒤를 쫓을 이유가 있을까?

  *****************************************************

  미국 어느 기관에서 조사한 결과,
  프로젝트의 27% 정도를 제외한 모든 프로젝트는 실패였다고 한다.
  27% 중에서도 만족스럽지 못한 프로젝트가 많았다.

  *****************************************************

정석은 정석일 뿐이고, 이론은 이론일 뿐이다.
아는 것은 시작일 뿐이다.
중요한 것은 스스로 반복하여 제대로 이해하고, 활용할 수 있는 수준을 이끌어내는 것이다.

그리고, OOP, 디자인 패턴, 리패토링을 이론으로만 바라보는 사람은
그것들의 진면모를 10%도 보지 못한 경우라고 할 수 있다.

진정한 완성은 실전 중에 무의식적으로 코드로 표현될 수 있어야 한다.

완벽한 수준을 위해서가 아니라,
조금씩이라도 성장하기 위해서 노력해야한다.
그러한 면에서 진정한 완성은 존재하지 않을 수도 있겠지만...
양병규 [bkyang]   2009-04-27 10:54 X
OOP를 교육하는 입장에서는 OOP의 필요성을 논하는 것과 OOP의 방법을 논하는 것은 완전히 별개의 문제인데...

대부분의 OOP를 논하는 단행본들이나 류종택님이 말하는 'OOP의 필요성'에 대한 글들을 보면... 음... 뭐랄까... 홍보효과가 떨어진다고 생각합니다.

예를 들면 이런겁니다.

류종택님의 어느 글(책인가? --a )에서 보면 'OOP의 최대의 작업은 분업화이다'라는 내용을 본 적이 있습니다.

물론 OOP를 잘하면 막강한 분업화를 할 수 있지요. 아주 좋은 표현입니다.

제가 주장하는 OOP의 가장 큰 장점은 '워드프로세서, 컴파일러, 문자인식등 하이테크니컬한 기술을 구현하는데 용이하다'입니다.

분명히 류종택님의 표현과 저의 표현은 둘 다 OOP의 장점임에는 틀림없는데.. 그것을 듣는 사람의 입장에서는 분업화는 OOP가 아니어도 당장 팀원들과 할 수 있는 일인데... 제가 말한 것들은 기존에는 자신이 구현하지 못하던건데.. OOP를 하면 마치 쉽게 할 수 있다는 것처럼 느껴지고... 자신이 못하는 것을 할 수 있게 만드니 대단하게 느껴질 수 있습니다.

물론 둘 중에 정말로 어떤 것이 더 장점이냐...하는 문제는 지극히 주관적인 문제입니다. 이미 워드프로세서는 만들 줄 아는 사람이 혼자서는 잘하는데 팀작업을 잘못한다..라고하면 그 사람에게는 분업화가 더 중요하겠고 팀작업은 좀 하는데 워드프로세서를 못만드는 사람에게는 하이테크닉이 더 중요하겠지요...

OOP, 디자인 패턴, 리패토링를 그까짓거라고 생각하는 사람은...
그것을 적용하기 위한 노력 대비 결과물에 대한 효율이 만족스럽지 못하기 때문일 것입니다.

그 결과물이 실제로 결과물로써의 실체가 아닌 '분업화'와 같은 '방법론'이라면 개발자 개인으로써는 그다지 대단한 결과물이라고는 생각하지 않을 것이고 워드프로세서, 컴파일러, 문자인식과 같은 실체를 만들어 내는 것이라면 대단한 결과물이라고 느껴질 수 있는거지요. 비록 지금 당장 자신에게 필요한 것은 하이테크닉이 아니라 팀내에서의 분업화가 절실하다고 할지라도 개발자는 팀원이기 이전에 개인이기 때문에 자신에게 유익한 것에 더 관심을 갖는 경향이 있습니다.

그런면에서 OOP를 교육하는 입장에서는 많은 장점 중에서 어떤 점을 부각시키느냐는 대단히 중요한 문제라고 생각하며.. 그까짓거라고 생각하는 사람은 진짜 OOP 장점들을 제대로 알고 있지 못할 확률이 매우 높습니다.

물론 장점만 부각시키고 방법을 제대로 교육시키지 못하면 안되겠지만 서두에 말한것처럼 필요성을 논하는 것과 방법을 논하는 것은 별개라고 봐야합니다.

지금까지 류종택님이 진행해온 내용들은 대부분 방법을 많이 논하고 있습니다.
제가 지금까지 했던 세미나등은 OOP의 방법을 논하고 있는 것처럼 보이지만 사실은 OOP의 장점을 부각시키고 있었지요.
2~3시간동안 날코딩으로 간단한 워드프로세서를 만들어 본다거나...
원격제어를 개발함에 있어서 키보드데이터 화면데이터등 여러 종류의 데이터를 한 포트로 처리하면서 여러 포트를 쓰는 것과 같이 개발하는 방법.
신텍스 파서 기반 계산기를 만들어 보기.
등등..
이런 종류의 세미나들은 실제로 그 방법을 알려주기 위한것이 목적이 아니라 OOP를 잘하면 2~3시간 만에 간단한 워드프로세서도 만들 수 있다... 포트 하나로 여러 종류의 데이터를 따로따로 처리할 수 있다... 델파이같은 언어를 처리할 수 있는 신텍스 파서도 간단하게 된다...등등 OOP의 장점을 자랑하는게 주 목적이었지요...(하지만 그걸 보고도 정작 방법은 잘 생각이 안난다는...넘 후다닥해버려서....머.. 그게 목적이 아니었으니깐...)

그렇기 때문에 류종택님을 비롯해서 많은 OOP를 교육하는 사람들은 그까짓거..라는 말을 듣게 되는 것 같습니다.

일단은 그 사람의 기를 확 죽이고 시작해야하는데...
기를 죽이기에는 표현 방법이 좀 약했다고 할 수 있다는거지요...

결국 제 말의 결론은..

'그리고, OOP, 디자인 패턴, 리패토링을 이론으로만 바라보는 사람은
그것들의 진면모를 10%도 보지 못한 경우라고 할 수 있다.'

라고 한 류종택님의 결론의 원인이 OOP의 장점을 팀작업, 대규모에서의 효율등과 같은 방법론에 치중해 있기 때문이고 결과물이나 개발자의 스킬업에 대한 부분과 같이 개발자들이 '혹'할만한 부분에 대한 강조가 부족하기때문이다..라는 것입니다.

그래서 제 생각에는 저의 방법과 류종택님의 방법은..  결국은 통합되어져야한다는 생각입니다.
자랑만해서도 안되고 방법만 알려줘도 안되고... 둘이 적절히 융합되어져야 될 것 같다고 생각은하는데...

일단 지금은 열심히 일을해야 할 때인듯.... ^^;

(아씨.. 결론 참 더럽네... ^^; )
양병규 [bkyang]   2009-04-27 11:13 X
한가지만 더 추가하면... 저의 경우는 그와는 반대의 이야기를 많이 듣습니다. OOP를 잘하면 좋은데.. 어려워서 못하겠다..라는 것지요... 너무 장점만 부각시키고 제대로 된 방법을 알려주지 않으니 그런 소리를 듣는것 같습니다.

전에 건대에서 개인세미나했을 때는 처음으로 방법을 알려주기 위해 노력했었는데.... 사람들은 기존에 제가 장점을 부각시키기 위한 강좌가 더 좋았다..라고들 평해서 OOP의 방법을 교육하는건 이리도 힘든 일인가...라고 좌절을 했었습니다. 에혀..... --;
류종택 [ryujt]   2009-04-27 11:13 X
다음 강의에는 스트림쇼라도,  쿨럭 ㅡ.ㅡ
언제 듀엣으로 강의를 함 해보는 것도 ^^*

조언하신 내용은 책쓸때 최대한 반영하겠습니다.
아니면, 흐음 그부분만 도움을 주시면 ㅋㅋ  (얼렁뚱땅 일을 떠넘기고 아자!!)

그러나 저나 언제 책쓰냐 ㅠ.ㅠ

저도 지금은 열심히 일해야하는 시기ㅡ.ㅡ;;

좋은 주말 되세요!!
류종택 [ryujt]   2009-04-27 11:15 X
음..  덧글 새치기 ㅡ.ㅡ;;
건대 세미나는 아깝게 듣지 못했지만, 경문군에게 전해 들으니 아주 좋았다고 하던데요 ^^*
사실 글이나 말로 깨달음(?)을 전하는 것은 고승도 못해낸 일이자나요 ^^*
류종택 [ryujt]   2009-04-27 11:17 X
OOP를 기술로만 바라볼 수 있다면,
쉽게 가르치고 배우는 길이 충분히 있겠지만,
역시 그것은 10%도 안되는 면모인지라 ㅡ.ㅡ;;

강의할 때 가끔 그런 이야기 합니다.
"제가 아는 어떤 분이 1개월간만 스파르타로 가둬놓고 가르치면 될거 같은데"
라고 한다고..  (ㅋㅋ 본인이 정작 기억 안나실지 모르겠지만)

사실, 저는 3개월은 옆에 두고 때려가면 가르쳐야 겨우 감각을 익힐 수 있을 거 같다고 생각합니다.
아제나 [azena]   2009-04-30 01:41 X
오픈 소스 프로젝트들이 대부분 C로 작성된 것들을 보면 OOP의 의문을 제기하고 싶을 때도 많습니다....
C로도 OOP를 할 수 없는 것도 아니고 말이죠.
정작 프로그래밍 SKILL에 정신이 팔려서 진정 중요한 것(로직,알고리즘)을 놓치고 있는 것은 아닌지 깊게 생각해보아야 할 것 같습니다.
아제나 [azena]   2009-04-30 01:43 X
우리나라 프로그래머들 프로그래밍 테크닉은 세계 어디에다 내놔도 뒤지지 않을거 같은데, 쓸만한 압축 알고리즘이나 암호화 기법, 프로토콜 등을 내놓지 못 하는 것을 보면, 어딘가 심각한 문제가 있는 것 같습니다.
양병규 [bkyang]   2009-04-30 09:23 X
아제나님 저는 이렇게 생각합니다....

저 역시도 빵집을 하고 있지만 압축 알고리즘에는 관심조차 없습니다. 왜냐하면... 투자가치가 없기 때문입니다. 머.. 다른 이유 없습니다. 그냥 해봐야.. 아무 도움이 안된다고 생각하기 때문입니다. 물론 덕분에 공부는 많이 하겠지만 공부하기위해서 그것을 할 필요는 없다는거지요.. 만약에 빵집을 사람들이 한카피에 만원씩 주고 산다면 그렇게해서 지금만큼만 사용률이 나온다면.. 그때는 당연히 압축알고리즘에 관심을 갖게될겁니다.

다른 분야도 다르지 않다고봅니다. 안철수씨가 처음 V3를 개발해서 괜찮은 기업으로까지 발전했는데.. 이젠 돈주고 엔진사다가 쓴 알약이 더 많이 쓰인다고합니다. 알고리즘에 관심이 없어서가 아니라 투자가치때문이라고 생각합니다.

어딘가 심각한 문제가 있지요... 바로 돈이 안된다는 점.... 이것보다 더 심각한 이유는 없을겁니다. 그러다보니 돈이 되는 SI시장이나 모바일 시장, 웹에서의 회원제등 이런데만 집중하게 되는게 아니겠습니까.. 에혀~

+ -

관련 글 리스트
16002 도대체, OOP가 모길래 ? 류종택 3994 2009/04/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.