객체지향

프로그래밍 2007.10.03 02:56
C를 먼저 접하고 나서 JAVA를 알게 되었던 나의 슬픔ㅠㅠ


예전에 내가 만들었던 코드들을 다시 볼 기회가 있었는데

아니, 이게 왠걸....;;;


JAVA로 C코드처럼 만들어 놨잖아!!


제 블로그에 예전에 JAVA로 다이아몬드 만들기 라던가

가끔 생각나서 올려둔 JAVA코드들 좀 보세요ㅜㅜ

객체는 없고, 메소드를 C의 함수를 호출해 쓰듯이 썼잖아요..;;;



시간이 지나고나서 뒤돌아 보면 가끔 창피한 일들이 많이 있다.

나중에 또 과거의 나를 보면 창피 할 수도 있으니까

앞으로는 블로그에다 소스를 작성하는 것은 자제해야 하겠다.S


그런데 블로그에 올렸을 때 좋은건.. 내가 잘못 올려 놓으면 잘못된걸 바로 잡아주시는 분들이 많더라. 그건 무쟈게 좋다^^ㅋ

'프로그래밍' 카테고리의 다른 글

2007 JCO 오픈 소스 컨퍼런스 (10월13일)  (6) 2007.10.07
연결리스트와 스택 과제  (10) 2007.10.04
객체지향  (4) 2007.10.03
High Cohesion, Loose Coupling  (2) 2007.10.03
게시판 만들기 작업 진척도  (3) 2007.09.30
에어론체어 갖고싶다~~  (18) 2007.09.24
top
  1. Favicon of http://mewmew.tistory.com 야옹*^^* 2007.10.03 11:40 신고 수정/삭제 댓글

    우와.. 코딩한 것만 보고도 아름답다고 이야기들하시다니.. 놀라울따름입니다. @.@

    • Favicon of http://signpen.net 싸인펜 2007.10.04 01:51 신고 수정/삭제

      아름답다고 얘기했던 코드가 아마도 화현님이 작성하셨던 코드일겁니다.
      당시에 제가 봤을때 군더더기 없이 깔끔했었거든요. 그에 반해 제가 작성했던 코드는 좀 조잡했구요...;;

      마치 저는 누더기 옷을 입고 있는데, 새로산 비단 옷을 입고 지나가는 사람을 본 느낌이었습니다..ㅠㅠ

  2. Favicon of http://www.myhyuny.net/ 화현 2007.10.03 14:46 신고 수정/삭제 댓글

    음, 다아이몬드 만들기 같은건 원래 알고리즘 기초 다질때 쓰는 문제라, OOP와는 별개죠 ㅎㅎ

    • Favicon of http://signpen.net 싸인펜 2007.10.04 01:58 신고 수정/삭제

      화현님 말씀이 맞습니다. OOP와는 좀 별개이긴 합니다.

      하지만 제가 당시의 저를 회상하면서 부끄러웠던건.. OOP에 대한 이해도가 화현님보다 훨씬 떨어졌었거든요. 화현님은 그 때 댓글에 객체지향을 처음 접하셨다고 했는데 저보다 객체지향이라는 것에 대한 이해를 훨씬 더 하셨던 것 같아요.

      사실 제 코드에서 메소드들을 모두 static으로 선언했던 까닭이..
      "객체 이런건 잘 모르겠고.. 난 메소드를 C언어의 함수처럼 호출해서 쓰고 싶은데 왜 에러가 나는거야? 어라? static으로 선언하니까 되네?"

      이런 식이었거든요. OOP를 알지 못하고 자바로 작성하면 무조건 OOP가 되는냥 작성했던 그때의 제가 생각나서... 부끄부끄~

댓글 쓰기

High Cohesion, Loose Coupling

프로그래밍 2007.10.03 02:40

상속과 인터페이스

여러분은 OO 하고 있습니까??



High Cohesion, Loose Coupling

높은 응집도 그리고 낮은 결합도(또는 느슨한 결합)


  학교에서 소프트웨어 공학 시간을 통해서 배웠고, 또한 '임백준의 소프트웨어 산책'이라는 책을 읽으면서 다시한번 개념 다지기에 들어갔다. 그리고 나는 은근히 이것들에 집착(?)한다.

  소프트웨어에게도 수명이라는 것이 있다. 시간이 지날수록 나이는 먹어가고.. 그러다가 많은 시간이 흘러 나이를 많이 먹으면 죽는거다.(단순히 나이를 많이 먹어서 죽는 것은 아니지만)


  건강하게 태어난 소프트웨어는 살아가는 동안 쉼없이 자신을 확장하게 된다. 새로운 능력이 더 필요하다면 그는 얼마든지 자신을 확장한다. 부족한 부분이 있다면 그것에 대한 보완도 하며 그는 열심히 살아간다. 아~주~ 오래오래 행복하게 살아간다. 오래오래 행복하게 살아가는 소프트웨어를 보고 있자면 그를 태어나게한 개발자들도 그를 기특하게 여기며 뿌듯해 한다.


  탄생하면서 스파게티 소스를 간직하고 태어난 허약한 소프트웨어는 수명이 매우 짧다. 비운의 소프트웨어다. 아.. 상상하니 눈물이 마구 흘러내린다.ㅠㅠ

  어느날 허약한 소프트웨어에게 앞으로 해야 할 일은 오른팔을 많이 사용해야 하니 오른팔을 단련해 두라는 지시가 내려왔다. 그는 열심히 팔의 근육을 확장해서 새로운 업무에 필요한 튼튼한 오른팔을 만들어냈다. 그런데 이게 왠일인가. 오른팔만을 확장했을 뿐인데 갑작스레 왼발이 저려온다. 이유는 알 수 없지만 왼발이 자꾸 저려서 그는 쩔뚝쩔뚝 다리를 절어 가면서 일을하게 된다. 일단 일은 할 수 있으니 다행이다. 다음번엔 왼팔을 확장했는데 오른쪽 다리가 저려온다. 자꾸자꾸 몸에 원인모를 이상증세가 찾아오다 결국 그는 일을 할 수 없게 되었고 그는 얼마 지나지 않아 죽게되었다. 스파게티 소스때문에..ㅠㅠ 불쌍한 친구..ㅠㅠ

  그가 계속 살아갈 수 있는 방법은 있었다. 리팩토링(Refactoring)이라는 수술을 받으면 그는 살아갈 수 있다고 했다. 하지만 비교적 작은 수술로 재기할 수 있었던 건강한 소프트웨어와는 다르게 그는 큰 수술을 필요로 했고 수술비도 만만치가 않았다. 태어나면서부터 선천적으로 가진 '스파게티 소스'라는 병 아닌 병 때문에 말이다.


  건강한 소프트웨어를 만들고 싶다. 건강하게 오래오래 사는 소프트웨어는 높은 응집도와 낮은 결합도를 가지고 있다. 그는 유연해서 어떤 일이든 어렵지 않게 배운다. 유연하고 모든 쉽게 잘 할 수 있는 이런 녀석이 정말 튼튼하고 건강한 놈이다.

  그래서 나는 코드를 만들때 결합도와 응집도에 대한 많은 고민을 한다. 그가 다른것에 의지하지 않도록 다른 객체와는 느슨하게 결합하고, 응집도는 높게 독립적으로 만들려고 고민을 한다. 그런데 슬프게도 난 고민만 열심히 했지 High Cohesion, Loose Coupling을 충족하게 만들지는 못하고 있다. 다만 스파게티를 뽑아내지 않으려 노력하고 있을 뿐이다. 나는 요리사가 아니니까 말이다.

  여러분은 OO하고 있습니까?.... 뜬금없다..ㅋㅋㅋS

OO: Object Oriented

'프로그래밍' 카테고리의 다른 글

연결리스트와 스택 과제  (10) 2007.10.04
객체지향  (4) 2007.10.03
High Cohesion, Loose Coupling  (2) 2007.10.03
게시판 만들기 작업 진척도  (3) 2007.09.30
에어론체어 갖고싶다~~  (18) 2007.09.24
스트럿츠로 게시판 작업중  (0) 2007.09.18
top
  1. Favicon of http://www.myhyuny.net/ 화현 2007.10.03 14:48 신고 수정/삭제 댓글

    객체지향이라면 항상 생각을 해 두고 프로그래밍을 하죠 ㅎㅎ
    하지만, 나중에 보면 어느샌가 꼬여있지만요 ㄷㄷㄷ

    • Favicon of http://signpen.net 싸인펜 2007.10.04 02:04 신고 수정/삭제

      그런데 말이죠. 어디선가 읽었던 글인데.. 저 처럼 저렇게 집착하는게 초보 개발자들이 흔이 저지르는 실수라고 하더라구요.

      초보 개발자들은 소프트웨어의 유연성을 생각하며 완벽하게 만들기 위해 초기설계에 상당히 많은 시간을 할애한다고 합니다. 그런데 막상 코딩에 들어가면 원했던 유연성과 생각했던 모든 것들은 점점 사라져 가면서 소스가 스파게티화 된다고 하네요.

      그러면서 그 글의 결론은...
      "많이 개발해 보고 시간이 흐르면 자연스럽게 해결되는 문제이고 자연스럽게 능력을 얻을 수 있으니 고민하지 마라~"
      였던걸로 기억합니다. 제가 맞게 기억하는건지는 모르겠습니다..;;ㅎㅎ

댓글 쓰기