봄싹 스터디의 HelolS 님이 던지신 화두 'OOP에 대해서..' 에 대해서 한번 생각해보았습니다.

그 동안 OOP에 관해 책을 비롯해서 많은 자료를 읽어보고 뜻을 헤아려보기 위해 많은 시간을 보냈지만 아직까지 OO 에 대해 개념을 확실히 정립하기엔 많이 모자라네요. ^^

내가 알고(단지 외우고 있을뿐이지도 모르는...)있는 것을 정리해보니 짤막한 몇 줄만 나옵니다.


객체 지향이란 작지만 하나의 일을 책임질 수 있는 객체가 모여서 하나의 완전한 프로그램으로 만들어져 나아가는 것이다. 서로가 모르고 있더라도 일을 수행함이 있어 드러나는 문제를 최소화 시키고(낮은 결합도), 서로가 모여서 함께 일을 행함에 있어서도 좋은 틀을 제공해야한다.(높은 응집력)
하나의 언어를 통해 이야기 함으로 대화의 이해도를 높이고(인터페이스), 유별나게 변화를 좋아하는 녀석들을 위해서 항시 문을 열어둔다.(상속or확장)


세세하게 들어가면 이것저것 더 많은 것이 나오겠지만 지금은 저 정도밖에 정리가 되지를 않네요.

"지나친 것은 미치지 못한 것과 같다."라는 뜻을 가진 과유불급(過猶不及)이라는 고사 성어가 있습니다. 가끔 공부를 위해서 프로그램을 작성하다보면 내가 무리하게 분할해서 시스템을 오히려 복잡하는 만드는게 아닌가 라는 생각을 할때가 많습니다.

어디가 가장 적당한지를 긋는 선을 정하는게 참 어려운것 같습니다.
Posted by Arawn Trackback 1 : Comment 0