2010년 4월 27일 화요일

객체지향의 아름다움


[객체지향의 아름다움]

세상의 만물은 독립된 실체(엔티티)들과 이들 사이의 수평적인 관계로 구성되어 있다.

이들 만물들 사이에는 종적(수직적)인 관계를 가지고 있는 것이 아니라 횡적(수평적)인 관계에 그 바탕을 두고있다. 사람과 나무의 관계가 종적 관계가 아닌 횡적인 관계이며 생명체의 세포들 사이의 관계도 수평적인 관계이다. 세포들은 서로의 내부에는 전혀 신경 쓰지 않고 오직 표준화된 인터페이스를 통해서만
교류하며, 서로의 내부 구조는 가려 주어 완전히 캡슐화 되어 있다고 한다. 이러한 모습을 통해 모든 세포들이 자율적으로 움직이고 있다. 객체 지향은 하향식에서 나타나는 수직적인 관계가 아닌 평등에 기초한 수평적인 관계로의 변화를 의미한다.

 

객체 지향은 객체 각자가 독립적, 자율적이며 어느 누구에게도 일방적인 강요 없이 각자의 주어진 임무를 수행한다. 이러한 관점에서 보면 우리 주변의 자연이나 인체구조는 대단히 객체지향적이다. 사람 몸을 구성하는 세포들 사이의 관계, 장기들 사이의 관계도 수직적인 관계가 아니라 평등에 기초한 수평적인 관계이며, 이를 통해 우리 몸의 조화와 균형을 이루어 나간다. 또한 자연에 있는 세상 만물들은 독립적으로
존재하며 필요에 따라 관계를 맺고 있다.

 

자연 속의 개미나 벌을 보자. 그들의 일하는 모습을 보면 수직적인 구조나 감독 없이 일하는 모습을 볼 수 있다. 스스로들 알아서 능동적으로 찾아서 일을 한다. 아마도 개미나 벌들은 유전적으로 이러한 능력을 갖고 태어난 모양이다. 그들 사이에는 일방적으로 지배하는 수직적인 관계가 없고, 서로 돕고 전체를 위하여 최선을 다하는 오직 수평적인 관계만이 존재한다. 그들은 서로 도우며 조화를 이루어 나간다. 자연에 속한 모든 객체들은 서로 독립성을 유지하며, 관계를 가지고 필요에 따라 서로 교류한다. 자연이
만들어진 모습을 자세히 들여다보면 객체지향적인 개발기법이 적용된 결과물이라는 것을 파악할 수 있으며, 자연은 이들 구성원들 사이의 수평적인 관계를 통해 조화를 이루어 갈 수 있도록 만들어진 훌륭한 걸작품이다.

 

생물학적인 관점에서도 객체들 사이의 강요나 지배가 없는 조화와 질서가 생명체의 본질인 것처럼 인간이 만드는 시스템 개발에 있어서도 이러한 자연의 섭리가 적용된다. 소프트웨어도 다른 시스템 또는 생명체와 마찬가지로 구성 요소들이 서로 독립적인 기능을 수행하며 서로 보완적인 관계를 유지하고 균형과 조화를 이룰 때 가장 이상적인 모습을 갖게 된다. 이는 시스템의 구성요소들이 상하관계를 이루는 것이 아니라 오히려 대등 병립 관계를 가진다는 점에서, 우리에게 익숙한 기존의 구조적, 하향식 구조와는
전연 다른 모습을 띄게 된다.

 

객체지향은 객체에 대한 자율성과 철저한 업무분담을 원칙으로 한다. 객체지향은 시스템의 조직과 기능을 구성 요소로 보는 것이 아니라 시스템을 구성하고 있는 객체를 기본 요소로 인식한다. 시스템의 각 구성 요소인 객체가 자신의 기능을 독립적으로 수행하고, 객체들 사이의 조화와 균형이 이루어질 수 있도록
설계될 때 시스템은 이상적인 모습을 갖는다.

 

시스템을 구성하고 있는 객체들이 독립적, 주도적으로 움직이며, 이러한 성숙된 객체들 사이에서 원숙한 관계가 맺어질 때 진정한 객체지향 사회라 할 수 있다. 미국의 경우 책임 있는 객체들을 생성하려는 노력을 해 나가고 있는 객체 지향적 사회라고 볼 수 있으나, 사람들 사이의 원숙한 관계를 이루어나가는 데 있어서는 아직도 객체 지향 사회의 초보적인 단계라 할 수 있다.

 

반면 우리 사회는 상대적으로 구조적인 틀을 바탕으로 하고 있으며, 객체 지향화가 덜 되어 있는 상황에서 객체보다는 관계를 더욱 중요시하여 왔다. 그러나 이러한 구조적인 틀로는 빠른 변화를 요구하는 이 시대에 쉽게 대처하고 적응할 수 있는 힘을 배양하기 어렵다. 구조적인 틀에서는 개인의 자율성과 독립성이 극대화되기 어렵다. 사람은 누구나 다르다. 남이 나와 다르고 내가 남과 다를 수 있는 권리를 인정해 주어야 하지만 그러하지 못했던 것이 사실이다. 우리 사회도 각 개인의 창의력과 자율성이 극대화되는 객체 지향사회로 변할 때보다 많은 사람들이 행복해지고 아름다워 질 수 있을 것이다.

 

하향식의 구조적인 접근은 단기적인 효과를 목표로 하는 반면, 객체 지향적 접근은 장기적인 관점에서 이상적이라 할 수 있다. 이러한 객체 지향 구조는 수직적인 관계보다 효율을 극대화시킬 수 있는 장점이 있으며, 독립적으로 움직이기 때문에 변화에 적응하기 쉽게 해주어 어울림, 헤어짐 등 인간의 삶에서 나타나는 변화에 조화롭게 작용하고 균형을 찾고 순응할 수 있는 단초를 제공한다. 한편 구조적(structured)인 틀은 하향식의 체계를 가지고 있으며, 기능을 수행하기 위해 단순하고 빠르게 만들어 질 수 있다는 장점을가지고 있다. 반대로 객체지향적인 틀은 상향식의 개념을 기초로 하고 있으며, 이러한 시스템을 만들려면 시간이 걸리고 많은 에너지를 필요로 한다. 우리나라의 옛 정치구조인 왕권 중심적인 틀은 하향식의 구조적인 모습을 가지고 있다. 요사이 확산되고 있는 지방자치 제도 정치의 객체지향화이며, 이러한 객체지향적인 틀을 마련하는 데는 많은 노하우(know-how)를 필요로 한다. 우리가 겪는 지방자치제의 시행착오도 그 예라 할 수 있다.

 

가정에서도 객체 지향화가 이루어지려면 아버지는 가족구성원에게 많은 것을 양보하고 그들의 요구를 귀담아 들어야 한다. 이를 위해 가족들 사이의 관계가 새롭게 정의되어야 하고 이 과정에서 겪는 시행착오를 감수해야만 한다. 우리의 전통을 생각해 보면 자식들에게 강요하지 않고 지배하지 않는 부모와 자식 사이의 관계가 그리 쉬운 일이 아니다. 요사이 「고개 숙인 아버지」의 모습도 가정의 구조가 객체 지향으로 옮겨가며, 패러다임의 이동으로 겪는 혼동이 아닌가 생각된다.

 

인생을 살아오며 자연스러운 것보다 아름다운 것은 없다는 생각이 든다. 자연스러운 것이 아름다운 것은 객체 지향적이라는 것에서 그 이유를 찾을 수 있을 것 같다. 자연적인 것은 부드러우며 일반적으로 인간이 만든 인공적인 것보다 변화에 쉽게 적응할 수 있는 힘을 가지고 있다. 객체 지향 접근방법은 인위적인 것이 아닌 자연스러운 접근 방법이며, 우리 주변, 특히 가정, 회사, 국가 등 여러 분야에도 적용해 볼 만하다. 조직의 최소 단위라 할 수 있는 가정에서도 객체 지향화가 이루어지면 가족 모두가 행복을 누릴 수
있는 확률이 높아지며, 구성원 모두가 자신의 기량을 최대한 발휘할 수 있다. 미래의 사회는 구성원들 사이에 수직적인 관계가 아니라 수평적인 관계에 기초할 것이다.

 

조물주가 만든(엔지니어링한)제품인(?)사람이나 자연을 보면 객체 지향으로 만들어진 훌륭한 시스템이며 가히 걸작품이라 할 만하다. 현재 인간은 조물주가 만든 사람과 동물의 설계도면인 염색체 구조를 밝혀 내어 복제를 하기에 이르렀다. 시간이 지나면 조물주가 만든 각종 제품의 요구사항까지 규명하여, 완전한 역공학을 실현할 시대가 올지도 모른다. 다음의 질문들은 우둔하거나 인간으로서 주제넘은 질문일까? 조물주는 공학에서 요구되는 분석,설계, 구현 등 체계적인 엔지니어링과정을 거쳐 사람을 만들었을까?
사람을 설계하기 전에 요구사항을 완벽히 정의하였을까? 사람을 만들 때 요구사항을 미리 완벽히 정의하고 하향식으로 만들었을까? 필자의 생각으로는 조물주가 이렇게 사람이라는 훌륭한 시스템을 만든 것을 보면 미리 완벽히 요구사항을 정의하고 차곡차곡 엔지니어링한 것이 틀림없어 보인다. 조물주의 엔지니어링 기법을 밝히는 것은 대단히 위험스럽고 신비스러운 일일 것이다.
 
참고문헌 : 성공적인 소프트웨어 개발 기법 - 윤청 저

 

 

저의 객체지향 개념은 이렇습니다. = 책임과 소통을 명확히 하고 서로 느슨히 협업하게 하라


 

이 글은 스프링노트에서 작성되었습니다.

댓글 없음:

댓글 쓰기