본문 바로가기

언어

상속과 폴리모피즘 - 수필 객체지향 객체지향 대부분의 장점은 상속과 폴리모피즘으로부터 출발한다. C등의 절차지향 개념을 공부한 사람이 처음 상속과 폴리모피즘 개념을 배울때도, 난생 처음 프로그래밍을 배우는 사람도, 상속과 폴리모피즘 개념을 이해하는데 어려움을 표시한다. 그러다가 결국 나는 절차지향이 좋아~하며 다시 익숙한 방식의 프로그래밍으로 돌아가거나, 상속과 폴리모피즘 개념을 이해하지 않은체 객체지향 언어지만 절차지향적으로 프로그래밍을 하곤 한다. 그러나 상속과 폴리모피즘은 마치 대한민국 젊은 남자의 군대생활 처럼 반드시 거쳐야 하고 반드시 이해해야 하는 과정이다. 상속은, 스승과 제자사이와 비슷하다. 스승은 제자에게 자신의 모든 기술을 전수한다. 제자는 스승의 기술을 고스란히 체득한다. 또는 스승의 기술을 완전히 습득하기 전까지는 스.. 더보기
객체지향과 관계형 데이터베이스의 조화, 수필 객체지향 처음 봤는데도 왠지 끌리는 사람이 있고 물건이 있고 기술이 있다. 나는 처음 프로그래밍을 배울때부터 객체지향 관련 기술을 좋아했다. 아마도 철학같은 깊이가 느껴지는 기술이라 좋아했던 것 같다. 객체지향을 배우면 어떤 요구사항이라도 고스란히 내 프로그램으로 옮길수 있을 것 같았다. 그러나 공부와 실전은 달랐다. 나는 객체지향 기술 공부와 실전 개발을 병행하면서 종종 알기 힘든 괴리감을 느꼈다. 처음에는 단순한 웹코딩을 했기 때문에 객체지향을 써먹을 일이 없었다. 그때 프로그래머는 머리를 쓰는 지식 노동자가 아니고 단순 복사/붙여넣기 노동자 일수도 있구나라는 생각을 했다. 드디어 기회가 왔다. 회사 업무에 쓰일 프레임워크를 개발해 보라는 지시였다. 그때 그동안 배운 객체지향, 디자인패턴, 리팩토링 기술을 총.. 더보기
수필 객체지향, 응집도와 결합도 객체지향 개발을 하는 이유는 객체지향적으로 제대로 개발하면 유연하고 확장성 높고 유지보수 편리한 개발이 가능하기 때문이라고 한다. 객체지향적으로 개발하면 왜 유연하고 확장성 높고 유지보수가 편리하냐고 누가 단도직입적으로 묻는다면 나는 총으로 겨냥당한것처럼 돌부처가 될것 같다. 그래도 우격다짐으로 말해보면 객체지향적으로 개발하면 모듈간 응집도는 높고 결합도는 낮아지기 때문이라고 말할것이다. 하지만 역시 열심히 공부하려는 우리를 당혹스럽게 하는 뜬구름 잡는 얘기이기도 하다. 응집도는 높고 결합도는 낮아야 된다는 이 공대 용어 스러운 말이 무슨 뜻이야? 응집도가 높다는 말은 비슷한 일을 하는 기능들이 하나의 모듈로 얼마나 잘 뭉쳐 있냐와 비슷한 말이고 결합도가 낮다는 말은 그 일을 완수하기 위해서 얼마나 다른.. 더보기
수필 객체지향, 객체(Object) 객체(Object)란 단어는 낯설다. 객체지향 개발이 두려우면서 범접하기 어려운 기술로 느껴지는 이유중에 하나는 객체(Object)란 단어부터 낯설기 때문이다. 객체(Object)의 사전적인 뜻은 ‘실체로 존재하는 대상 또는 개념’ 이다. 이 뜻을 우리 사람사는 세상에서는 어떻게 표현하면 되는지 불러보았다. 저 사람~, 저 사물~, 저 물건~, 저 동물~, 저 것은~, 그것은~, 이것은~ 으로 불리는 것 같다. 그러고보니 저 사람, 사물, 물건, 동물, 그것은, 이것은 등을 하나로 통합하여 사람 입에 불리어지는 단어는 없다. 그냥 저 사람이고 저 물건으로 불리어질 뿐이다. ‘실체로 존재하는 대상 또는 개념’이라고 정의되는 대상을 우리는 저 사람~ 저 물건~ 하며 친숙하게 부르는데 다만 하나로 통합하여 부.. 더보기